Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Сетевая установка Ubuntu 11.04

Автор: Александр Тарасов aka oioki
Дата публикации: 5 мая 2011 года

нетбук китайского производства под отечественной маркой DNS Сегодня приобрел нетбук китайского производства под отечественной маркой 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.