понедельник, 16 мая 2011 г.

Инсталляция Ubuntu 11.04 с сетевой консоли


Около недели назад мне понадобилось установить Ubuntu http://www.ubuntu.com на один из серверов. К сожалению монитора под рукой не оказалось. Можно было бы достать монитор в офисе, но спортивный интерес возможности установки системы без монитора и клавиатуры взял верх. Кто знает, возможно это может понадобится в будущем. Описанное решение позволяет выполнить установку ubuntu только с помощью одной флешки. Конечно же при условии, что в BIOS уже установлена загрузка с USB.

Специалисты по безопасности конечно же возразят, что разрешение загрузки системы с USB - это серьезное нарушение безопасности. С этим сложно не согласиться, поэтому вопросы безопасности опустим.

Для подготовки инсталяционного образа понадобится:
- флешка емкость не менее 32 Мбайт
- операционная система linux, в моем случае я использовал Ubuntu 11.04
- приложение ISO Master
- минимальные инсталляционные образы Ubuntu

Я покажу на примере подготовки образа для платформы i386. Думаю, что идея будет практически одинакова для всех платформ. Для x86_64 так точно. Про PowerPC, Itanium, Sparc сложно сказать, никогда не пробовал.

Загруженный образ необходимо открыть в ISO Master и удалить все файлы кроме: boot.cat, initrd.gz, isolinux.bin, linux, syslinux.cfg

Для активации сетевой консоли для начала необходимо извлечь файл initrd.gz и распаковать его во временную директорию.
# mkdir initrd.i386
# cd initrd.i386
# gzip -d < ../initrd.gz | cpio --extract --verbose --make-directories --no-absolute-filenames 
В корне директории initrd.i386 необходимо создать файл preseed.cfg: # nano -w preseed.cfg cо следующим содержимым:
### activate network console 
d-i anna/choose_modules string network-console 
d-i network-console/password password r00tme 
d-i network-console/password-again password r00tme 
Создание нового initrd.gz и удаление временной директории:
# find . | cpio -H newc --create --verbose | gzip -9 > ../initrd.gz
# cd ../
# rm -fr initrd.i386/ 
С помощью ISO Master новый initrd.gz переписывается на место старого. Заключительным шагом является изменение syslinux.cfg:
default console

label console
    kernel linux
    append vga=normal initrd=initrd.gz  auto=true priority=critical
Если сервер, на который устанавливается ubuntu, находится за proxy, его поддержку следует добавить в syslinux.cfg:
append vga=normal initrd=initrd.gz mirror/http/proxy="http://<proxy>:<port>" auto=true priority=critical
Сохранив новый iso и записав его на USB флешку, например, с помощью UNetBootin, можно переходить к инсталляции операционной системы на компьютер.

При загрузке с инсталляционного образа система будет запрашивать IP адрес динамически у DHCP сервера, поэтому его наличие в сети крайне желательно. Так же с помощью него можно определить какой IP адрес был выделен. После получения IP адреса, в ходе инсталляции система подгрузит необходимое программное обеспечения для инсталляции системы через сетевую консоль. Спустя некоторое время, которое зависит от пропускной способности внешнего канала, сетевая консоль будет доступна:

ssh installer@<ip адрес сервера>

Пароль: r00tme

Образы для i386 и для amd64,x86_64 платформ доступны в репозитории sources-ownport.

ubuntu-11.04-mini-netconsole-i386.iso
ubuntu-11.04-mini-netconsole-amd64.iso

Не могу гарантировать, что данные образы будут работать на всех платформах. По крайней мере, на двух моих тестовых серверах на i386 и x86_64 установка прошла без проблем.

Полезные ссылки:
Debian-Installer: How to modify an existing CD image to preseed d-i
New Headless Ubuntu Server Guide
Linux Home Networking - Tutorials and Forums

0 комментариев:

Отправить комментарий