Автоматизированная установка MeeGo на нетбук

В этой статье я попытаюсь обобщить опыт полученный во время автоматизированной установки 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.

Hello meego

Ссылки:

http://wiki.meego.com/Quality/QA-tools/Autotest-guide

https://help.ubuntu.com/community/PXEInstallServer

http://www.debian-administration.org/articles/478

http://wiki.debian.org/PXEBootInstall

http://habrahabr.ru/blogs/sysadm/82552/