| В начало → Описание альтернативных способов установки Gentoo Linux → Бездисковая установка с загрузкой через PXE |
![]() |
Что необходимо
Нужна сетевая карта на бездисковом клиенте, которая способна загружаться по протоколу PXE (многие карточки 3com). BIOS тоже должен поддерживать такой способ загрузки.
Настройки на стороне сервера
Создание папок: Во-первых, следует создать папки, в которых будет размещена ваша бездисковая система. Начнем с /diskless, в ней будет находиться по отдельной папке для каждого бездискового клиента. Дальше мы рассмотрим работу с клиентом 'eta'.
Настройка 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, НО с учетом следующих отличий: Для монтирования файловой системы сделайте следующее (здесь
hda — раздел, в котором создана папка X/diskless). Вам не надо монтировать другие разделы, так как все файлы располагаются в /diskless/eta.
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, так как ваш клиент будет сильно зависеть от них:
Загрузчик. Не устанавливайте других загрузчиков, так как один у нас уже есть — 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, и выведет на терминал приглашение для входа в систему. Вот и все.
| В начало → Описание альтернативных способов установки Gentoo Linux → Бездисковая установка с загрузкой через PXE |