В начало → Описание альтернативных способов установки 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 |