В статье "Booting FreeBSD 5.0 on a Sun machine over the network" была поставлена задача показать как организовать бездисковую загрузку FreeBSD 5.0 по сети (для проверки готовности новой версии FreeBSD, тестов, без необходимости установки на диск) на аппаратном окружении имеющем не i386 архитектуру (Sun Ultra 2).
Краткое излодение статьи:
Настройка DHCP:
host divine {
hardware ethernet 08:00:20:89:cf:f3;
option host-name "divine.local.non-standard.net";
fixed-address 192.168.1.5;
always-reply-rfc1048 on;
filename "loader.nfs";
next-server 192.168.1.3;
option root-path "192.168.1.3:/storage3/sparc64-nfsroot";
}
Активация tftp в inetd.conf:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Качаем в /tftpboot образ loader.nfs c http://non-standard.net/freebsd/loader.nfs
chown -R nobody:nobody /tftpboot
chmod -R 755 /tftpboot
Копируем FreeBSD 5.0 на сервер:
ISO FreeBSD 5.0 можно взять в ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-sparc64/
vnconfig vn0 5.0-DP2-disc2.iso # associate vn0 with the cd image
mount -t cd9660 /dev/vn0c /mnt
cd /storage3/sparc64-nfsroot # go into the future nfsroot directory
rsync --progress -avr /mnt/ . # extract contents
umount /mnt
vnconfig -u vn0
Настраиваем NFS:
/etc/fstab
192.168.1.3:/storage3/sparc64-nfsroot / nfs rw 0 0
/etc/exports:
/storage3/sparc64-nfsroot -maproot=root 192.168.1.5
Для работы NFS должны быть запущены процессы:
portmap, nfsd -u -t -n 4, mountd -r, rpc.statd, rpc.lockd
/etc/rc.conf
portmap_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"
Пересобираем ядро:
options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
options BOOTP_NFSV3 # Use NFS v3 to NFS mount root
options BOOTP_COMPAT # Workaround for broken bootp daemons.
options BOOTP_WIRED_TO=hme0 # Use interface fxp0 for BOOTP
cd /usr/src/
make TARGET_ARCH=sparc64 buildworld # buildworld for the sparc64 port
make TARGET_ARCH=sparc64 buildkernel # build the sparc64 kernel
mv /storage3/sparc64-nfsroot/boot/kernel /storage3/sparc64-nfsroot/boot/kernel.GENERIC
mkdir /storage3/sparc64-nfsroot/boot/kernel
cp /usr/obj/sparc64/usr/src/sys/DIVINE/* /storage3/sparc64-nfsroot/boot/kernel/
На Sun машине в OpenBoot приписываем:
ok (0) boot net:dhcp,192.168.1.3,loader.nfs
|