Библиотека сайта rus-linux.net
Сетевая установка Ubuntu 11.04
Автор: Александр Тарасов aka oiokiДата публикации: 5 мая 2011 года
Сегодня приобрел нетбук китайского производства под отечественной маркой DNS и у меня встал вопрос, как установить новенькую Ubuntu 11.04 на сей девайс. Так как CD-привода в комплекте не было, вариантов оставалось два - загрузочная флешка и установка по сети. Лишней флешки у меня нет, поэтому решено было ставить через сеть. Далее - краткое решение поставленной задачи.
Пока настраиваем сервисы, поставим на закачку новенький дистр, вот ссылка на торрент.
Отмечу, что все действия выполняются на десктопе с установленной Ubuntu 10.10, от имени пользователя root.
DHCP-сервер
DHCP-сервер предназначен для выдачи нетбуку IP-адреса и информации о том, откуда грузиться далее. Устанавливаем DHCP-сервер и настраиваем.
# apt-get install dhcp3-server # vi /etc/dhcp3/dhcpd.conf option domain-name "home"; option domain-name-servers 8.8.8.8; default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; range 192.168.0.10 192.168.0.20; filename "pxelinux.0"; option root-path "/srv/tftp/linux"; } # /etc/init.d/dhcp3-server restart
Здесь мы указываем, что DHCP-сервер работает в локальной сети 192.168.0.0/24, шлюз 192.168.0.1, IP-адрес клиенту (т.е. нетбуку) будет выдан из диапазона 192.168.0.10-192.168.0.20. Также указываем имя файла сетевого загрузчика pxelinux.0, а также какой каталог будет выступать в качестве корня будущей файловой системы. Откуда брать эти файлы, описано ниже.
TFTP-сервер
TFTP-сервер - это крайне упрощенная версия FTP, предназначенная как раз для наших целей - начальной передачи кода загрузчика pxelinux.0. TFTP работает через службу inetd. Устанавливаем необходимые пакеты и настраиваем inetd следующим образом:
# apt-get install openbsd-inetd tftpd # vi /etc/inetd.conf tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /srv/tftp # mkdir -p /srv/tftp/linux # /etc/init.d/openbsd-inetd restart
В каталоге /srv/tftp у нас будут лежать файлы, которые TFTP-сервер будет отдавать клиентам, а подкаталог linux будет хранить корневую систему установочного диска Ubuntu.
К этому моменту у нас уже скачался дистрибутив, и мы монтируем скачанный iso-образ в этот каталог:
# mount -o loop ~/download/ubuntu-11.04-desktop-i386.iso /srv/tftp/linux
Сам сетевой загрузчик мы можем взять из файлов проекта syslinux. Скачиваем последнюю версию и изымаем pxelinux.0:
# wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.04.tar.bz2 # tar xf syslinux-4.04.tar.bz2 # cp syslinux-4.04/core/pxelinux.0 /srv/tftp/
Также необходимо настроить загрузчик. Для этого в каталог TFTP-сервера кладется каталог pxelinux.cfg, в котором различные конфигурации загрузки. Нам нужна только одна, и по умолчанию она называется, как это ни странно, default:
Собственно, тут указывается, откуда брать ядро Linux для загрузки (linux/casper/vmlinuz), что монтировать в качестве корня (/srv/tftp/linux) и какой использовать Initial RamDisk (linux/casper/initrd.lz). Опции quiet и splash соответственно убирают текстовую информацию при загрузке и показывают логотип убунты, а prompt 0 лишает пользователя какого-либо выбора - грузится сразу ядро Ubuntu.
По протоколу TFTP у нас будет отдаваться лишь загрузчик, а все остальное (initrd, ядро и корневой каталог) клиент будет получать по более надежному протоколу NFS.
NFS-сервер
Устанавливаем, настраиваем и запускаем:
# apt-get install nfs-kernel-server # vi /etc/exports /srv/tftp/linux/ *(ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure) # /etc/init.d/nfs-kernel-server restart
Сетевая загрузка
Если все прошло успешно, то при загрузке включенного в сеть нетбука (и выбранной в BIOS опции сетевой загрузки), вы увидите примерно следующее:
Realtek PCI Express Fast Ethernet Controller Series v1.15 (090224) CLIENT MAC ADDR: 44 87 FC 15 25 7D GUID: 01010101-0101-0101-0101-010101010101 CLIENT IP: 192.168.0.11 MASK: 255.255.255.0 DHCP IP: 192.168.0.1 GATEWAY IP: 192.168.0.1 PXELINUX 4.04 2011-04-18 Copyright (C) 1994-2011 H. Peter Anvin et al !PXE entry point found (we hope) at 9B17:0109 via plan A UNDI code segment at 9B17 len 19CA UNDI data segment at 910A len A0D0 Getting cached packet 01 02 03 My IP address seems to be C0A8000B 192.168.0.11 ip=192.168.0.11:192.168.0.1:192.168.0.1:255.255.255.0 BOOTIF=01-44-87-fc-15-25-7d SYSUUID=01010101-0101-0101-0101-010101010101 TFTP prefix: Trying to load: pxelinux.cfg/default ok boot:
Далее появится заставка Ubuntu и рабочий стол. Кликаем по "Install Ubuntu 11.04" и поехали.
Автор статьи - Александр Тарасов. Работает системным администратором в одной барнаульской фирме. Увлекается отказоустойчивыми системами, а также футболом. Ведет личный блог oioki.ru и рекомендует всем системным администраторам почаще бекапиться. С ним можно связаться по e-mail oioki@yandex.ru, а также по Jabber: oioki@jabber.ru.