Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

Бездисковая загрузка FreeBSD с помощью PXE

Материал из Xgu.ru

(Перенаправлено с pxe/freebsd)
Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.



Короткий 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. Сюда помещаем систему, которая будет в последствии загружаться по сети. Это либо готовая сборка, либо скачанный с официального сайта и распакованный образ.

Правим следующие конфигурационные файлы:

/etc/hosts.allow

# Добавляем разрешение регистрации RPC сервисов с указанной подсети, иначе выдаст RPC: Program not registered
rpcbind : 192.168.0.0/255.255.255.0 : allow

/etc/exports

/data/thinstation -maproot=root -alldirs -network 192.168.0.0/24

/etc/rc.conf

# 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"

/etc/inetd.conf

tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /data/thinstation

/usr/local/etc/dhcpd.conf

# Добавляем путь загрузки
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

[править] Клиент

/etc/fstab

192.168.0.1:/data/thinstation /     nfs    rw     0    0
proc                          /proc procfs rw     0    0

/etc/rc.conf

# Network
ifconfig_DEFAULT="DHCP"
# SSH
sshd_enable="YES"

[править] Дополнительная информация


[править] Материалы на Xgu.ru посвящённые загрузке системы

Бездисковая загрузка: