Установка FreeBSD 9.0-RELEASE по сети

Принесли как-то мне компьютер, который должен выполнять функцию офисного маршрутизатора, быть сервером внутренней почты и давать возможность VPN-подключения к офисной сети извне.

Машинка неплохая, но в ней было привода оптических дисков и IDE-разъемов для его подключения. Только SATA-слоты. SATA-привода у меня, увы, не нашлось, а MP3-плеер в качестве флеш-накопителя для установки использовать я не захотел.

Решил на рабочем компьютере поднять FreeBSD 9.0-RELEASE в VirtualBox’е и сделать из него сервер для установки через сеть.

В данном случае на виртуальной машине на сетевом интерфейсе стоял IP-адресс 10.0.1.190/24 (тип подключения в свойствах ВМ был выбран «Мост»)

Настраиваем tftpd. В /etc/rc.conf добавляем строчку:

inetd_enable="YES"

Создаем каталог:

mkdir /tftpboot

В /etc/inetd.conf раскомментируем строчку:

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

Запускаем сетевую файловую систему. В /etc/rc.conf добавляем:

dhcpd_enable="YES"
rpcbind_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
mountd_enable="YES"
mountd_flags="-r -p 59"

Создаем каталог:

mkdir /usr/local/pxeboot

Добавляем в /etc/exports строку:

/usr/local/pxeboot -network 10.0.1.0 -mask 255.255.255.0

Устанавливаем dhcpd:

cd /usr/ports/net/isc-dhcp42-server
make install clean

После сборки dhcpd правим /usr/local/etc/dhcpd.conf:

authoritative;


option domain-name "local";
option domain-name-servers ваш.DNS.сервер;


subnet 10.0.1.0 netmask 255.255.255.0 {
    range 10.0.1.61 10.0.1.63;
    option routers 10.0.1.128;
    next-server 10.0.1.190;
    filename "/pxeboot";
    option root-path "10.0.1.190:/usr/local/pxeboot";
}

range 10.0.1.61 10.0.1.63 поставил, чтобы адреса не пересекались с уже занятыми, 10.0.1.190, как я уже писал выше, это адрес на сетевой карте ВМ, 10.0.1.128 — адрес локального NAT’а, через который локальные машины ходят в мир

Теперь необходимо скачать загрузочный диск FreeBSD 9.0-RELEASE и примонтировать его:

fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-i386-bootonly.iso
mdconfig -a -t vnode -f FreeBSD-9.0-RELEASE-i386-bootonly.iso
mount_cd9660 /dev/md0 /mnt

Копируем содержимое диска в /usr/local/pxeboot:

cp -R /mnt /usr/local/pxeboot

И копируем загрузчик в /tftpboot:

cp /mnt/boot/pxeboot /tftpboot/

Теперь запускаем необходимые службы:

/etc/rc.d/inetd restart
/usr/local/etc/rc.d/isc-dhcpd start
/etc/rc.d/rpcbind start
/etc/rc.d/nfsd start
/etc/rc.d/mountd reload

Если все сделано правильно, то showmount -e должен вывести:

showmount -e
Exports list on localhost:
/usr/local/pxeboot 10.0.1.0

Вывод sockstat | grep inetd должен содержать строку:

root inetd 847 6 udp4 *:69 *:*

Далее подключам машину, на которую через сеть надо поставить FreeBSD 9.0-RELEASE, в нашу локальную сеть, в BIOS’е выбираем загрузку через PXE.

Если все сделано правильно, и я нигде не ошибся ;-), запустится загрузчик и начнется установка. Все необходимые компоненты для установки установщик будет тянуть с интернета.

P. S.: У меня, почему-то, во время начальных этапов установки затиралось содержимое /etc/resolv.conf. Но это не беда. Перед выбором distributions я на виртуальной машине просто отредактировал /usr/local/pxeboot/etc/resolv.conf

P. P. S.: Прошу прощения, если где-то что-то пропустил — по возможности исправлю.

Добавить комментарий

Ваш адрес email не будет опубликован.