Дмитрий Борисович уже писал об установке Solaris 10 с помощью FreeBSD: Сетевая загрузка Solaris с FreeBSD. Но мы как известно, пойдем своим путем, и будем использовать в качестве инсталл-сервера Ubuntu, а вместо ISC DHCP - более примитивный dnsmasq, включающий в себя форвардер DNS-запросов (он нам понятное дело, не нужен), dhcp-сервер и tftp-сервер. Описанное в статье касается SPARC-платформы, хотя легко масштабируется и для x86/PXE.
Подготовка системы
Итак, устанавливаем необходимое ПО:
# sudo apt-get install dnsmasq nfs-kernel-server
Теперь, нужно вытащить файлы из образа системы. После того, как я скачал образ Solaris 10 Update 9 по SPARC-архитектуру, я положил его в папку /home/myaut/ISO/ и подмонтировал как loop-устройство. В /etc/fstab создается следующая строчка:
/home/myaut/ISO/sol-10-u9-ga-sparc-dvd.iso /media/sol10u9-sparc iso9660 ro,loop 0 0
И образ монтируется:
# mkdir /media/sol10u9-sparc
# mount -a
Выключим network-manager и поднимем интерфейс, с которого будет вестись сетевая установка:
# service network-manager stop
# ifconfig eth0 192.168.100.1/24 up
Также создадим каталог /tftpboot и скопируем туда файл inetboot:
# mkdir /tftpboot
# cp /media/sol10u9-sparc/Solaris_10/Tools/Boot/platform/sun4u/inetboot /tftpboot/inetboot.sun4u
Настройка NFS и dnsmasq
Теперь приступим к настройке nfs-сервера. По умолчанию nfs-kernel-server работает по протоколу NFSv4, что не годится для JumpStart. Решается это передачей параметра --no-nfs-version 4
демону nfsd. К счастью, редактировать init-скрипты не придется, согласно описанному здесь Disabling nfsv4 on Ubuntu how-to достаточно поменять опцию RPCNFSDCOUNT в файле /etc/default/nfs-kernel-server на:
RPCNFSDCOUNT='8 --no-nfs-version 4'
Теперь делаем публичной директорию с Solaris, добавляя в /etc/exports следующую строчку:
/media/sol10u9-sparc *(ro,async,no_subtree_check,insecure,no_root_squash)
и перезагружаем nfs:
# service nfs-kernel-server restart
Убедимся, что публичная ФС доступна:
# sudo exportfs -v
/media/sol10u9-sparc <world>(ro,async,wdelay,insecure,no_root_squash,no_subtree_check)
dnsmasq хранит настройки в файле /etc/dnsmasq.conf, также часть настроек можно вынести в другие файлы и директории, используя директивы conf-*.
У меня получился следующий конфиг:
# IP-адрес интерфейса, на котором будет слушать dhcp-сервер
listen-address=192.168.100.1
# Диапазон IP-адресов (он динамический), действует 1 час (значение по умолчанию)
dhcp-range=js,192.168.100.100,192.168.100.200
# Имя загрузочного файла для TFTP. net:js я добавил на случай,
# если позже захочется расширить функционал dnsmasq
dhcp-boot=net:js,inetboot.sun4u
# Включаем TFTP-сервер и устанавливаем корневую директорию
enable-tftp
tftp-root=/tftpboot/
# Настройки логов dnsmasq
log-queries
log-dhcp
log-facility=/var/log/dnsmasq.log
# Ссылка на каталог с конфигурацией
conf-dir=/etc/dnsmasq.d/
В /etc/dnsmasq.d/ я поместил единственный файл c именем js и следующей конфигурацией:
# Список хостов в нотации mac-адрес,IP,имя_хоста
dhcp-host=00:03:ba:5b:6e:3f,192.168.100.101,blade
# Опции DHCP. JumpStart использует vendor encapsulated options,
# поэтому я добавил параметр vendor:SUNW (иначе указанные номера опций
# будут пересекаться со стандартными опциями DHCP).
# Root server IP address
dhcp-option-force=net:js,vendor:SUNW,2,192.168.100.1
# Root server hostname
dhcp-option-force=net:js,vendor:SUNW,3,"myaut-nb"
# Root server path
dhcp-option-force=net:js,vendor:SUNW,4,"/media/sol10u9-sparc/Solaris_10/Tools/Boot"
# Install server IP address
dhcp-option-force=net:js,vendor:SUNW,10,192.168.100.1
# Install server hostname
dhcp-option-force=net:js,vendor:SUNW,11,"myaut-nb"
# Install server path
dhcp-option-force=net:js,vendor:SUNW,12,"/media/sol10u9-sparc"
Тестирование
Rebooting with command: boot net:dhcp -v
Boot device: /pci@1f,700000/network@2:dhcp File and args: -v
100 Mbps FDX Link up
100 Mbps FDX Link up
Using BOOTP/DHCP...
BOUND: IP address is: 192.168.100.101
Found 192.168.100.1 @ 0:26:22:6:12:df
BOUND: Hostname is blade
root server: myaut-nb (192.168.100.1)
root directory: /home/install/Solaris_10/Tools/Boot
<...>
SunOS Release 5.10 Version Generic_142909-17 64-bit
Copyright (c) 1983, 2010, Oracle and/or its affiliates. All rights reserved.
Установка успешно прошла и я тестирую Solaris 10 Upgrade 9.