Сервер сетевой загрузки (PXE) на Freebsd ч.2 - Установка Unix-like систем.
Продолжим тему сетевой загрузки операционных систем, в предыдущей части мы сделали первоначальные настройки и рассмотрели запуск некоторых утилит. В этой части мы рассмотрим сетевую установку Unix-like систем на примере Ubuntu, OpenSuse и FreeBSD.
">Для реализации данной задачи, помимо описанных настроек предыдущей главы, еще нам понадобиться NFS сервер и rsync, приступим к настройке.
По умолчанию поддержка NFS во FreeBSD включена и если Вы не отключали опцию NFSSERVER в ядре, то все должно работать.
Создаем файл /etc/exports и добавляем в него нашу папку.
ee /etc/exports
/usr/tftpboot -alldirs,ro -mapall=nobody:nobody -network 192.168.1.0/24
Далее добавляем в файл /etc/hosts.allow разрешения для доступа из нашей сети (Добавляем перед строкой rpcbind : ALL : deny)
rpcbind : 192.168.1.0/24 : allow
В rc.conf добавляем
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r -n"
И запускаем NFS Server (или перезагружаемся)
/etc/rc.d/rpcbind start
/etc/rc.d/nfsd start
Проверяем нашу шару -
showmount -e
Если все хорошо, то получим -
Exports list on localhost:
/usr/tftpboot 192.168.1.0
Ставим rsync
cd /usr/ports/net/rsync/
make install clean
rehash
Загрузка Ubuntu сети.
mkdir /usr/tftpboot/images/ubuntu
wget h ttp://mirror.yandex.ru/ubuntu-releases/11.10/ubuntu-11.10-desktop-i386.iso
mount -t cd9660 /dev/`mdconfig -f ubuntu-11.10-desktop-i386.iso` /mnt
rsync -a /mnt/ /usr/tftpboot/images/ubuntu/
umount /mnt
mdconfig -d -u 0
В файл /usr/tftpboot/pxelinux.cfg/default добавляем -
label kubuntu
menu label ^Ubuntu
kernel images/kubuntu/casper/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.1.1:/usr/tftpboot/images/kubuntu
initrd images/kubuntu/casper/initrd.lz
Загружаемся по сети и видим обычный убунтовский LiveCD c возможностью установки.
Для автоматической установки необходимо использовать файлы ответов, их пример Вы можете посмотреть в папке дистрибутива /preseed, в пределах этой части статьи я их разбирать не буду.
Установка OpenSUSE
Создаем папку -
mkdir /usr/tftpboot/images/opensuse
Загружаем ядро -
wget http://download.opensuse.org/distribution/12.1/repo/oss/boot/$(arch)/loader/linux
wget http://download.opensuse.org/distribution/12.1/repo/oss/boot/$(arch)/loader/initrd
Помещаем их в папку /usr/tftpboot/images/opensuse, туда же копируем дистрибутив и прописываем в файл конфигурации сетевой загрузки (default) -
label openSUSE
menu label ^OpenSuSe
kernel images/opensuse/linux
append initrd=images/opensuse/initrd install=nfs://192.168.1.1:/usr/tftpboot/images/opensuse/
Установка FreeBSD.
C установкой FreeBSD вышла некоторая накладка из-за использования вендового DHCP, но обо всем по порядку.
Итак, скачиваем образ -
wget ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/8.2/FreeBSD-8.2-RELEAS...
Создаем папку, монтируем и копируем -
mkdir /usr/tftpboot/images/freebsd
mount -t cd9660 /dev/`mdconfig -f FreeBSD-8.2-RELEASE-i386-disc1.iso` /mnt
rsync -a /mnt/ /usr/tftpboot/images/freebsd/
umount /mnt
mdconfig -d -u 0
В default добавляем -
label freebsd
menu label FreeBSD LiveFS
pxe images/freebsd/boot/pxeboot
В DHCP (вендовый) добавляем корневой путь (пункт 017 - Корневой путь)
/usr/tftpboot/images/freebsd и .......
Сколько я не бился, но передать root path через вендовый dhcp у меня так и не получилось, все равно принимает /. Если кто поделится секретом (без ковыряния исходников pxe) буду премного благодарен.
В качестве временного решения (даже не временного, а для теста), заглушил вендовый DHCP и поставил на фрю.
Настройку DHCP сервера здесь я не рассматриваю, приведу только описание области -
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
next-server 192.168.1.1; # Адрес TFTP сервера
filename "gpxelinux.0"; # имя загрузчика PXE
option root-path "/usr/tftpboot/images/freebsd"; # NFS root
}
добавляем в файл /usr/tftpboot/images/freebsd/boot/loader.conf -
vfs.root.mountfrom="ufs:/dev/md0"
И пробуем загрузиться, появляется окно sysinstall, где мы после всех настроек выбираем с чего устанавливаться, соответственно - Install over NFS и вводим путь до нашей шары с дистрибутивом.
Также можно автоматизировать процесс установки, создав файл install.cfg, который в последствии должен быть перемещен внутрь mfsroot.gz
cd /usr/tftpboot/images/freebsd
gzip -d boot/mfsroot.gz
mdconfig -a -t vnode -f boot/mfsroot -u 9
mount /dev/md9 /mnt/tmp
cp install.cfg /mnt/tmp
umount /mnt/tmp
mdconfig -d -u 9
gzip boot/mfsroot
Как я уже говорил, автоматическую установку в этой части статьи мы не рассматриваем
Пример файла автоматической установки можно посмотреть здесь
В дальнейшем я постараюсь рассмотреть установку Windows систем, автоматическую установку ОС, возможно еще создание и использование различных LiveCD, соотвественно в разрезе сетевой загрузки.
Буду благодарен любым комментариям, особенно ответам на вопросы озвученными в статье.
Комментарии
help
День добрый, сделал все как описано, до слов "Загружаемся по сети и видим обычный убунтовский LiveCD c возможностью установки" но процесс загрузки дальше не пошел. выдает NFS over TCP not available from 192.168.1.2.
freebsd тоже замирает но с другим сообщением сначала mounting from ufs:/dev/md0 failed with error 19
затем сразу идет попытка монтирования nfs и тут уже замирает с сообщением
NFS ROOT: 192.168.1.2:/pxe/freebsd
re0: link state changed to UP
ос freebsd9.0
Re: help
К сожалению смоделировать ситуацию смогу только по окончанию праздников, то бишь 9-го числа.
Вы к Вашим NFS ресурсам подцепляться пробовали? Он вообще работает?
Посмотрите еще здесь похожая проблема и здесь.
Отпишитесь пожалуйста в любом случае, если не получится, постараюсь помочь, а если получится, то поможет другим.
Спасибо
Наверно что то перемудрил, NFS работало, все как-бы было в порядке..Снес девятку, поставил 9.1, перекинул конфигурации и все завелось на раз. грешу на апач, может права на папку были не полные..забыл проверить. по идее надо делать chmod +x /pxedir. если ошибаюсь поправьте.
один момент.
не делал
По второй ссылке ушел на этот адрес http://freebsd.so14k.com/freebsd9_pxe.shtml
пункт8 закоментировать загрузку с cd.
В общем свелось к копированию содержимого iso-образа и отключению загрузки с сд.
iSCSI-target + PXE boot
Приветствую люди добрые..
собсно, субж обсуждается здесь http://sysadmins.ru/topic386496.html
очень хоцца универсального решения..
подскажте.. а то вокруг да около.. истина гдето рядом, но никак не победю.. :(