В началоОписание альтернативных способов установки Gentoo Linux → Бездисковая установка с загрузкой через PXE
Gentoo-doc HOME Пред.: Установка со Stage 1 без доступа в сетьВ началоУровень выше: Описание альтернативных способов установки Gentoo LinuxСлед.: Установка Gentoo из существующей Linux-системы

5. Бездисковая установка с загрузкой через PXE

Что необходимо

Нужна сетевая карта на бездисковом клиенте, которая способна загружаться по протоколу PXE (многие карточки 3com). BIOS тоже должен поддерживать такой способ загрузки.

Настройки на стороне сервера

Создание папок: Во-первых, следует создать папки, в которых будет размещена ваша бездисковая система. Начнем с /diskless, в ней будет находиться по отдельной папке для каждого бездискового клиента. Дальше мы рассмотрим работу с клиентом 'eta'.

Листинг 8. Создание папок

# mkdir /diskless
# mkdir /diskless/eta
# mkdir /diskless/eta/boot


Настройка DHCP и TFTP: Клиент получает загрузочную информацию, используя DHCP, затем загружает необходимые файлы с помощью TFTP. Собираем DHCP командой emerge и настраиваем его для наших нужд. Добавляем следующее в /etc/dhcp/dhcpd.conf:

Листинг 9. dhcp.conf

option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}


Примечание

Мы получим статический IP для клиента и путь к загрузочному образу PXE, здесь pxegrub. Вам необходимо подставить соответствующий MAC-адрес сетевой карты вашего клиента и определиться с директорией, где будут храниться клиентские файлы.

Для DHCPd, запустите emerge dhcp (или любой другой сервер DHCP на свое усмотрение). Убедитесь, что в /etc/conf.d/dhcp выбран верный интерфейс.

Для установки TFTP, соберите app-admin/tftp-hpa. Впишите следующее в /etc/conf.d/in.tftpd:

Листинг 10. in.tftpd

INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"


Настройка GRUB: Я использую GRUB для PXE-загрузки. Чтобы можно было использовать PXE, вы должны самостоятельно скомпилировать GRUB ... ведь это просто. Во-первых, скачайте самую свежую версию исходников GRUB (emerge -f grub поместит tarball в /usr/portage/distfiles). Скопируйте tarball в /diskless и скомпилируйте GRUB, чтобы получить доступный для pxe бинарник. Готовый бинарник копируем в boot-папку бездискового клиента. И редактируем файл grub.lst:

Листинг 11. Установка grub

# tar zxvf grub-0.92.tar.gz
# cd grub-0.92
# ./configure --help
(Среди опций вы увидите список поддерживаемых драйверов сетевых интерфейсов.)
(Выберите драйвер, совместимый с вашей картой. Здесь он фигурирует как $nic)
# ./configure --enable-diskless --enable-$nic
# make
# cd stage2
# cp pxegrub /diskless/eta/boot/pxegrub
# nano -w /diskless/eta/boot/grub.lst


Листинг 12. grub.lst

default 0
timeout 30
title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta
(В опции nfsroot указывается IP адрес сервера и путь к директории,)
(в которой на сервере лежат файлы нашего бездискового клиента.)


Настройка NFS: NFS легко сконфигурировать. Все что нам надо — это добавить одну строку в конфигурационный файл /etc/exports:

Листинг 13. /etc/exports

# nano -w /etc/exports
#/etc/exports: NFS file systems being exported.  See exports(5).
/diskless/eta eta(rw,sync,no_root_squash)


Обновление hosts: Еще одно важное дело — изменение файла /etc/hosts.

Листинг 14. /etc/hosts

127.0.0.1 localhost
192.168.1.10 eta.example.com eta
192.168.1.20 sigma.example.com sigma


Создание системы на сервере

Вы можете захотеть перезагрузить сервер с установочного диска Gentoo, хотя точно так же можете немедленно продолжить, если знать, как выполнять инструкции по установке Gentoo на установленной системе. Следуйте стандартной процедуре установки, как описано в Gentoo Install Howto, НО с учетом следующих отличий: Для монтирования файловой системы сделайте следующее (здесь hdaX — раздел, в котором создана папка /diskless). Вам не надо монтировать другие разделы, так как все файлы располагаются в /diskless/eta.

Листинг 15. Монтирование файловой системы

# mount /dev/hdaX /mnt/gentoo


Stage tarballs и chroot: Этот пример использует tarball stage3. Смонтируйте /proc в вашу бездисковую директорию и выполните chroot в нее(директорию) для продолжения установки. Дальше — по инструкции вплоть до конфигурации ядра.

Внимание

Будьте очень внимательны при разархивировании stage tarball. Не распакуйте его в существующую систему.

Листинг 16. Извлечение stage tarball

# cd /mnt/gentoo/diskless/eta/
# tar -xvjpf  /mnt/cdrom/gentoo/stage3-*.tar.bz2
# mount -t proc /proc /mnt/gentoo/diskless/eta/proc
# cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
# chroot /mnt/gentoo/diskless/eta/ /bin/bash
# env-update
# source /etc/profile


Конфигурация ядра: При выполнении make menuconfig во время конфигурации ядра, не забудьте сделать доступными следующие опции (помимо рекомендуемых в руководстве по установке):

Листинг 17. Опции menuconfig

- Your network card device support
(в ядре, *не* как модуль!)
- Under "Networking options" :
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
- Under "File systems --> Network File Systems" :
<*> NFS file system support
    [*] Provide NFSv3 client support
    [*] Root file system on NFS


Сохраните ядро в / своей изолированной среды (не в /boot), в соответствии с настройкой pxegrub, определенной ранее. Затем настройте /etc/fstab своего бездискового клиента.

Листинг 18. /etc/fstab

# nano -w /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs nodev,nosuid,noexec 0 0


Вам также потребуется предотвратить запуск на клиенте проверки файловой системы:

Листинг 19. Исключение запуска проверки файловой системы на клиенте

# touch /fastboot
# echo "touch /fastboot" >> /etc/conf.d/local.start


Установите nfs-utils, так как ваш клиент будет сильно зависеть от них:

Листинг 20. Установка nfs-utils

# emerge nfs-utils


Загрузчик. Не устанавливайте других загрузчиков, так как один у нас уже есть — pxegrub. Просто завершаете установку и перезагружаете сервер. Запустите службы, необходимые для загрузки новоиспеченного клиента: DHCP, TFTPD и NFS.

Листинг 21. Запуск служб

# /etc/init.d/dhcp start
# /etc/init.d/in.tftpd start
# /etc/init.d/nfs start


Загрузка нового клиента

Чтобы клиент загрузился, надо настроить bios и сетевую карту для использования PXE как первого способа загрузки — до CD-ROM или floppy. Помощником вам будет документация к оборудованию или website производителя. Сетевая карта должна получить IP адрес от DHCP и загрузить PXE-образ GRUB при помощи TFTP. Дальше вы увидите симпатичное черно-белое меню GRUB, в котором можно выбрать ядро для загрузки, а нажав Enter, и загрузить его. Если все в порядке, ядро примонтирует корневую файловую систему, используя NFS, и выведет на терминал приглашение для входа в систему. Вот и все.

Пред.: Установка со Stage 1 без доступа в сетьВ началоУровень выше: Описание альтернативных способов установки Gentoo LinuxСлед.: Установка Gentoo из существующей Linux-системы
В началоОписание альтернативных способов установки Gentoo Linux → Бездисковая установка с загрузкой через PXE