Бездисковая загрузка FreeBSD с помощью PXE
Материал из Xgu.ru
- Короткий URL: pxe/freebsd
Содержание |
[править] Автоматическая установка ОС FreeBSD с помощью PXE
Создание каталога, в котором будет находиться содержимое установочных дисков ОС
mkdir /opt/freebsd_inst/
Экспортирование этого каталога
echo "/opt/ltsp/freebsd_inst *(rw,no_root_squash,async,no_subtree_check)" >> /etc/exports
Настройка dhcp-сервера
egrep -v "^#|^\ *$" /etc/dhcpd.conf option domain-name "unix.nt"; option domain-name-servers 192.168.16.254; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; subnet 192.168.16.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.16.200 192.168.16.220; option subnet-mask 255.255.255.0; option root-path "192.168.16.254:/opt/ltsp/freebsd_inst/"; option routers 192.168.16.254; filename "pxeboot"; #filename "pxelinux.0"; }
TFTP-сервер в конфиге inetd
grep tftp /etc/inetd.conf tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot/ltsp/i386/
Содержимое каталога tftp-сервера
ls -l /var/lib/tftpboot/ltsp/i386/ итого 216 -r--r--r-- 1 root root 219136 Фев 25 13:01 pxeboot
Копирование содержимого инсталляционных дисков
mount | grep Free /data/images/FreeBSD_6.2/6.2-RELEASE-i386-disc1.iso on /media/cdrom0 type iso9660 (rw,loop=/dev/loop0) sudo rsync -auv /media/cdrom0/ /opt/freebsd_inst/ sudo mount /data/images/FreeBSD_6.2/6.2-RELEASE-i386-disc2.iso /media/cdrom0 sudo cp -r /media/cdrom0/packages/* /opt/freebsd_inst/packages/
Для запуска sysinstall до 7 версии включительно:
grep vfs /opt/freebsd_inst/boot/loader.conf vfs.root.mountfrom="ufs:/dev/md0c"
Для запуска sysinstall 8 версии вместо md0c нужно указывать md0 В 9 версии файл mfsroot.gz в каталоге boot и вовсе отсутствует, поэтому строки приведенные выше не сработают (они определяют загрузку корневой файловой системы из архива).
Для автоматизации установки можно использовать файл install.cfg в образе mfsroot.gz
ls -l /opt/freebsd_inst/boot/mfsroot.gz* -r--r--r-- 1 root root 1071538 Фев 25 16:14 /opt/freebsd_inst/boot/mfsroot.gz -r--r--r-- 1 root root 1069919 Фев 25 13:01 /opt/freebsd_inst/boot/mfsroot.gz_dist
Редактирование install.cfg
gunzip mfsroot.gz mdconfig -a -t vnode -u0 -f ./mfsroot mount /dev/md0 /mnt vim /mnt/install.cfg umount /mnt mdconfig -d -u0 gzip -9 mfsroot
Пример файла install.cfg
# egrep -v "^\ *$|^#" install.cfg debug=yes hostname=fbsd1 domainname=unix.nt nameserver=192.168.16.254 defaultrouter=192.168.16.254 ipaddr=192.168.16.21 netmask=255.255.255.0 nfs=192.168.16.254:/opt/freebsd_inst netDev=em0 mediaSetNFS distSetEverything disk=ad8 partition=all bootManager=boot diskPartitionEditor ad8s1-1=ufs 4194304 / ad8s1-2=swap 4194304 none ad8s1-3=ufs 6291456 /var 1 ad8s1-4=ufs 6291456 /tmp 1 ad8s1-5=ufs 2097152 /home 1 ad8s1-6=ufs 0 /usr 1 diskLabelEditor installCommit package=bash-3.1.17 packageAdd package=cvsup-without-gui-16.1h_2 packageAdd package=firefox-1.5.0.8,1 packageAdd package=gdm-2.16.1_1 packageAdd package=gmake-3.81_1 packageAdd package=gnome2-2.16.1_2 packageAdd package=rsync-2.6.8_2 packageAdd package=vim-lite-7.0.94 packageAdd
[править] Загрузка установленной ОС FreeBSD по PXE
Способ загрузки FreeBSD по сети с использованием технологии PXE.
[править] Сервер
Каталог для системы загружаемой системы выбран /data/thinstation. Сюда помещаем систему, которая будет в последствии загружаться по сети. Это либо готовая сборка, либо скачанный с официального сайта и распакованный образ.
Правим следующие конфигурационные файлы:
# Добавляем разрешение регистрации RPC сервисов с указанной подсети, иначе выдаст RPC: Program not registered rpcbind : 192.168.0.0/255.255.255.0 : allow
/data/thinstation -maproot=root -alldirs -network 192.168.0.0/24
# DHCP dhcpd_enable="YES" # dhcpd enabled? dhcpd_flags="-q" # command option(s) dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file dhcpd_ifaces="em1" # ethernet interface(s) dhcpd_withumask="022" # file creation mask # NFS nfs_server_enable="YES" nfsv4_server_enable="YES" # Inetd inetd_enable="YES"
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /data/thinstation
# Добавляем путь загрузки option root-path "192.168.0.1:/data/thinstation"; # Ну и сам загрузочник filename "/boot/pxeboot";
Ну и все это дело запускаем:
# /etc/rc.d/nfsd start # /etc/rc.d/inetd start # /usr/local/etc/rc.d/isc-dhcpd start
[править] Клиент
192.168.0.1:/data/thinstation / nfs rw 0 0 proc /proc procfs rw 0 0
# Network ifconfig_DEFAULT="DHCP"
# SSH sshd_enable="YES"
[править] Дополнительная информация
- Использование для загрузки сжатой файловой системы - geom_uzip
- Пример инсталляции FreeBSD c сетевого диска, через NFS.
- install.cfg — пример файла install.cfg
- Using Sysinstall's install.cfg to Automate FreeBSD Installations
[править] Материалы на Xgu.ru посвящённые загрузке системы
Бездисковая загрузка:
- PXE
- pxe/rhel — Инсталляция RHEL/CentOS с помощью PXE
- Бездисковая загрузка FreeBSD с помощью PXE
- Бездисковая загрузка узла Xen с помощью PXE
- pxe/win7 — Бездисковая загрузка Windows 7 с помощью PXE
- pxe/win2008 — Бездисковая загрузка Windows Server 2008 с помощью PXE