В этой статье я попытаюсь обобщить опыт полученный во время автоматизированной установки MeeGo OS на нетбук Samsung n148 используя Kubuntu 10.04 в качестве PXE сервера.
1. Для начала нам потребуется собственно образ установочного диска. Так как я затевал весь этот процесс с прицелом на автоматизированное тестирование последнего билда, то и версию я вам предлагаю скачивать отсюда:
http://download.meego.com/testing-daily/builds/trunk/latest/images/meego-netbook-ia32
Данный пункт стоит первым, так как необходимый файл имеет размер чуть менее одного гигабайта и в связи с этим довольно долго качается.
2. PXE сервер
После того как закачка началась можно приступить к установке PXE сервера. Весь процесс установки описан здесь: http://wiki.meego.com/PXE_boot_server, но так как, после прочтения этой инструкции, остались неясными некоторые моменты, я опишу процесс установки который довелось пройти мне.
2.1 Устанавливаем inetutils-inetd, tftpd-hpa и dhcp3-server
sudo apt-get install inetutils-inetd, tftpd-hpa, dhcp3-server
2.2. Настраиваем tftpd-hpa
tftpd-hpa по умолчанию не запускается демоном и чтобы он начал это делать редактируем файл "/etc/default/tftpd-hpa". После редактирования файл должен выглядеть приблизительно вот так:
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
tftpd-hpa вызывается inetd. Параметры запуска которые передаются tftpd-hpa при старте находятся здесь "/etc/inetd.conf"
Настройки по умолчанию вполне сгодятся, достаточно чтобы в "/etc/inetd.conf" была строка такого вида:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Затем перезапускаем tftpd-hpa чтобы он стартовал демоном
/etc/init.d/tftpd-hpa restart
2.3. Настраиваем dhcpd
DHCP сервер должен иметь адрес 192.168.2.14 , а ip-address для нетбука должен быть 192.168.2.15. Эти адреса вшиты в скрипт автоматическо установки MeeGo, так что я даже не пытался ничего поменять.
Затем следует получить MAC-адрес сетевого адаптера вашего нетбука.
Файл "/etc/dhcp3/dhcpd.conf" должен выглядеть следующим образом
ddns-update-style interim;
next-server 192.168.2.14;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.15;
default-lease-time 36000;
max-lease-time 48000;
option routers 192.168.2.14;
option domain-name-servers 192.168.2.14;
option subnet-mask 255.255.255.0;
option domain-name "meegoai";
option time-offset -8;
}
host netbook {
#set to the mac address of YOUR netbook
hardware ethernet 00:24:54:81:E6:45;
fixed-address 192.168.2.15;
option host-name "meegonetbook";
filename "pxelinux.0";
}
Не забудьте сменить MAC-address.
Перезапустите dhcp-сервер
sudo /etc/init.d/dhcp3-server restart
2.4 Кладём файлы на свои места
Создайте файл "boot.txt" внутри каталога /var/lib/tftpboot. Всё что находится в этой папке будет доступно пользователю при удалённой загрузке. Созданный мной "boot.txt" выглядит так:
- Boot Menu -
=============
meegoai
local
Затем сюда же, в tftpboot, следует добавить еще два каталога - pxelinux.cfg и meegoai:
mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /var/lib/tftpboot/meegoai
В директории pxelinux.cfg создаём файл "default" с таким содержимым:
DISPLAY boot.txt
DEFAULT meegoai
LABEL meegoai
kernel meegoai/vmlinuz
append rootdelay=1 root=/dev/ram0 initrd=meegoai/initrd.img --
LABEL local
localboot 0
PROMPT 3
TIMEOUT 0
3 Финальные штрихи
Скачиваем архив http://wiki.meego.com/File:Autoinstaller-netbook.tar.gz В этом архиве вы найдете скрипт автоустановщика autoinstaller-netbook.sh, а также файлы vmlinuz и initrd.img. Скопируйте initrd.img и vmlinuz в папку /var/lib/tftpboot/meegoai и поместите autoinstaller-netbook.sh рядом с уже наверняка скачавшимся образом из пункта 1. Установите syslinux чтобы получить pxelinux.0 и скопируйте этот файл в /var/lib/tftpboot:
apt-get install syslinux
cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
4. Запуск
Теперь можно (пере)запустить netbook. Во время загрузки нажатие F12 должно сигнализировать о том что пользователь хочет загрузиться с PXE.. После этого netbook попытается получить ip-address с сервера и если всё прошло без ошибок выдаст загрузочное меню. В нём естественно выбираем meegoai но будьте бдительны! В ходе установки все ваши данные включая таблицу разделов будут затёрты. После всех операций загрузки вы увидете следующее сообщение:
Starting netcat for initial connection check
Теперь вы можете запустить скрипт удалённой установки:
sudo bash autoinstaller-netbook.sh meego-netbook-ia32-1.2.80.0.20110504.90.img
Если у вас не установлен netcat это легко исправить следующей командой:
sudo apt-get install netcat6
Скрипт выдаст сообщение о том что процесс установки займет около 5 минут, но в моём случае потребовалось в 3 раза больше времени. По окончании копирования мой нетбук показал сообщение следующего вида
925892608 bytes (926 MB) copied, 1020.34 s, 907 kB/s
После этого нужно перезапустить компьютер, который после загрузки встретит вас приветливым интерфейсом MeeGo.
Ссылки:
http://wiki.meego.com/Quality/QA-tools/Autotest-guide
https://help.ubuntu.com/community/PXEInstallServer
http://www.debian-administration.org/articles/478