null

Сетевая загрузка Solaris с FreeBSD

В случае, если необходимо проинсталировать единственную в организации Sun-овскую систему, не имеющую привода DVDROM...
В случае, если хочется используя ClusterSSH параллельно проинсталировать несколько одинаковых серверов или доменов...
Да мало ли в каком случае. Есть FreeBSD и с неё по сети надо загрузить Solaris.

Приведённые ниже рекомендации подходят как для сетевой инсталяции Solaris, так и, например, для сетевой загрузки Solaris Utility Environment, а основная часть по идее должна быть применима и к ОС на базе Linux. Итак...

Для начала расшариваем смонтированный каталог по NFS добавляя в /etc/exports:
/cdrom  -ro -alldirs -maproot=0
и запускаем, если еще не запущен, NFS сервер.

Нам нужно скачать и смонтировать .iso образ систему, которую собираемся ставить:
mount -t cd9660 /dev/`mdconfig -a -t vnode -f sol-10-u8-ga-sparc-dvd.iso` /cdrom

Далее копируем загрузчик для нужной нам платформы в /tftpboot:
cp /cdrom/Solaris_10/Tools/Boot/platform/sun4u/inetboot /tftpboot/inetboot.sun4u.10

Разрешаем tftp в /etc/inetd.conf:
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot
и перезапускаем inetd любимым Вами способом.

В /etc/hosts добавляем запись для загружаемого хоста:
192.168.1.2 sun

А вот для перехода к следующему шагу, нужно определиться, что мы будем использовать RARP или DHCP. Если RARP то всё достаточно просто.

В /etc/ethers добавляем строку с MAC-адресом загружаемой системы:
00:14:4f:a2:ef:2c sun

Запускаем rarpd на том интерфейсе, который Вами используется, например:
rarpd sk0

Через /etc/bootparams указываем откуда брать ядро и откуда ставимся:
sun root=192.168.1.1:/cdrom/Solaris_10/Tools/Boot install=192.168.1.1:/cdrom boottype=:in

И запускаем самого демона:
bootparamd

Создаём символическую ссылку в /tftpboot для назначенного нами адреса:
cd /tftpboot
ln -s inetboot.sun4u.10 `printf "%02X%02X%02X%02X" 192 168 1 2`

Вот и всё. Теперь на Sun-овской машине можно сказать:
boot net

и наблюдать за процессом загрузки системы.

Если же хотим обойтись DHCP, то при использовании ISC DHCPD, в конфигурационный файл /usr/local/etc/dhcpd.conf необходимо дописать примерно следующее:

# Jumpstart Support
option space SUNW;
option SUNW.root-mount-options code 1 = text;
option SUNW.root-server-ip-address code 2 = ip-address;
option SUNW.root-server-hostname code 3 = text;
option SUNW.root-path-name code 4 = text;
option SUNW.swap-server-ip-address code 5 = ip-address;
option SUNW.swap-file-path code 6 = text;
option SUNW.boot-file-path code 7 = text;
option SUNW.posix-timezone-string code 8 = text;
option SUNW.boot-read-size code 9 = unsigned integer 16;
option SUNW.install-server-ip-address code 10 = ip-address;
option SUNW.install-server-hostname code 11 = text;
option SUNW.install-path code 12 = text;
option SUNW.sysid-config-file-server code 13 = text;
option SUNW.JumpStart-server code 14 = text;
option SUNW.terminal-name code 15 = text;
option SUNW.SbootURI code 16 = text;
group {
  filename "inetboot.sun4u.10"; # Имя файла загрузчика, который будет читаться через TFTP
  next-server 192.168.1.1; # Адрес сервера для TFTP
  use-host-decl-names on;
  vendor-option-space SUNW;
  option SUNW.install-server-hostname "kot"; # Имя системы, с которой ставимся
  option SUNW.install-server-ip-address 192.168.1.1; # Её IP адрес
  option SUNW.install-path "/cdrom";
  option SUNW.root-server-hostname "kot";
  option SUNW.root-server-ip-address 192.168.1.1;
  option SUNW.root-path-name "/cdrom/Solaris_10/Tools/Boot";
  host sun {
  hardware ethernet 00:14:4f:a2:ef:2c;
  fixed-address sun;
  option host-name "sun";
}
}

И перезапустить dhcpd. После этого мы готовы к загрузке Sun-овской железки по сети:
boot net:dhcp

Какой из этих двух путей использовать зависит от конкретной ситуации, где-то в сети может быть запрещён RARP, где-то существовать другой DHCP сервер, который мы не может администрировать, поэтому выбор останется за Вами.