«Вороне где-то бог послал кусочек SUNa. Домой Ворона воротясь, включить его уж было собралась, да позадумалась...»
Приветствую всех читателей.
Прошу прощения за столь одиозный заголовок в виде вольной трактовки известной басни Крылова, но именно такое ощущение я получил при распаковке из пузырьковой пленки сервера SunFire V240.
По тексту немного фото будут иметь место быть.
Я достаточно давно хотел "пощупать" настоящий SUN на UltraSPARC именно в железе.
Solaris 10 я увидел на x86 достаточно давно, еще в то время когда SUN, при заполнении простой формы, рассылала установочные DVD по всему миру. Попробовал, не впечатлило. Может не понял философию OS, может Debian на тот момент был логичнее и понятнее для меня, да и для x86 в частности, но диск был заброшен на полку и забыт, а мысль попробовать SUN именно в "железе" периодически всплывала в голове.
И если не в даваться в подробности, как то случайно я стал владельцем SunFire V240.
Так как железка досталась "условно бесплатно", я особо не вникал в особенности комплектации, и получив ответ — "рабочая", согласился стать ее хозяином.
Сервер оказался без… видеокарты, интерфейса PS/2 (видимо были "дернуты" вместе со 2-м блоком питания) и DVD-ROM (его видимо не подразумевалось комплектацией, так как заводская "заглушка" была на месте). Но 4 HDD имели место быть и в душе затеплилась надежда...
"Погуглив" просторы интернета, как что и где, нашел в хозяйстве кабель для CISCO — "RS232-RJ45", подключил к хосту с putty и… надежда пропала.
Система проходила POST, но с HDD не грузилась, выпадая в ошибку (я думаю система была намеренно испорчена, так как потом выяснилось через информацию в ALOM, что сервер использовался в достаточно знакомом на слух банке), пароль для входа в ALOM предыдущий хозяин не помнил или не знал, батарейка BIOS была севшая, настроение ни к черту.
Гуглим...
Поиск показал, что есть возможность установки OS по сети, но разрозненность вариаций установки очень сильно смущала, да и в конечном итоге все статьи сводились к установке из под solaris, когда в наличии был только Debian. Желание "громоздить" даже на "виртуалку" Sunos отсутствовало напрочь. Ну не выполнимых задач не бывает, начнем изучать материал, имея в хозяйстве домашний сервер под управлением Debian Stretch.
Предварительные ласки (настройки)
Для загрузки по сети на сервере под управлением Debian необходимы следующие пакеты:
- rarpd — обратный протокол преобразования адресов, который применяется во время загрузки «SUN-железяки», когда она посылает групповое сообщение-запрос со своим физическим адресом. Именно благодаря этому сервису «SUN-железяка» получит IP-адрес для дальнейшей загрузки.
- tftpd — тут все понятно, с помощью данного протокола «SUN-железяка» загрузит ядро для дальнейшей загрузки процесса установки OS.
- bootparamd — Ну тут чистый копипаст — «Команда bootparamd представляет собой серверный процесс, предоставляющий информацию, необходимую для загрузки бездисковых клиентов. Он получает информацию из файла /etc/bootparams».
Практика показала, что при недостатке информации в этом файле, загрузка не пойдет. - nfs-kernel-server — по данному протоколу «SUN-железяка» будет вытаскивать необходимые установочные файлы дистрибутива.
- isc-dhcp-server — назначит IP-адрес интерфейсу в процессе установки дистрибутива OS, так же даст все необходимые параметры типа NETMASK, DEFAULT GATEWAY и так далее.
Для того, что бы получить исходные данные для загрузки (MAC-адрес) и запустить саму загрузку, нам нужен доступ к OpenBoot Prompt (получаем доступ нажимая в подключенной "putty-сессии" ctrl + Break) и выпадаем в приглашение:
набираем: boot net -v — install
Теперь у нас есть MAC-адрес интерфейса с которого идут запросы на загрузку.
Принимаем имя "SUN-железяки" для дальнейшей работы с ней — "v240"
Переходим к настройке «загрузочного сервера»
правим файл /etc/ethers добавив строку:
0:3:ba:d0:3b:23 v240
правим /etc/hosts добавив строку:
192.168.1.50 v240
Естественно сервис должен быть перезапущен:
etc/init.d/rarpd restart
Теоретически, при наборе команды boot net -v — install в среде OpenBoot Prompt "SUN-железяка" уже должна получать IP-адрес посредством RARP:
tail -f /var/log/syslog
...
... gate rarpd[21993]: RARP request from 00:03:ba:d0:3b:23 on eth0
... gate rarpd[21993]: RARP response to 00:03:ba:d0:3b:23 192.168.1.50 on eth0
...
Далее проконтролируем, что в файле /etc/inetd.conf присутствует строка, приведенная ниже.
Это говорит о том, что tftpd как минимум, корректно установлен:
...
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
...
проверяем, что порт 69 прослушивается:
root@gate:~# netstat -lnp | grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 19521/inetd
root@gate:~#
Далее создаем папку /exports/v240/ и монтируем туда образ загрузочного DVD-диска. Как создать образ или где его скачать останавливаться не буду, приведу только команду монтирования для сохранения логики изложения:
mount -oro,loop ./sol-10-u11-ga-sparc-dvd.iso /exports/v240/
Теперь необходимо скопировать из точки монтирования загрузочного DVD файлы, которые будут нужны "SUN-железяке" для первоначальной загрузки по сети, посредством tftp-протокола, в каталог, который используется по умолчанию tftpd — /srv/tftp. В нашем случае нам понадобится файл inetboot из каталога — /exports/v240/Solaris_10/Tools/Boot/platform/sun4u
Далее создаем symlink файла inetboot с именем в виде HEX транскрипции IP-адреса, котрый будет присваиваться "SUN-железяке".
Вот какой вывод команды ls /srv/tftp/ у меня:
root@gate:/# ls /srv/tftp/
C0A80132 inetboot.sun4u
root@gate:/#
C0A80132 — это и есть symlink на файл inetboot.sun4u (который называется inetboot и находиться на DVD диске в каталоге /Solaris_10/Tools/Boot/platform/sun4u) в виде HEX-транскрипции IP-адреса 192.168.1.50:
C0 — 192
A8 — 168
01 — 1
32 — 50
Теперь если попробовать снова загрузиться с помощью команды boot net -v — install
в syslog загрузочного сервера мы должны увидеть:
...
... gate rarpd[3616]: RARP request from 00:03:ba:d0:3b:23 on eth0
... gate rarpd[3616]: RARP response to 00:03:ba:d0:3b:23 192.168.1.50 on eth0
... gate in.tftpd[4365]: connect from 192.168.1.50 (192.168.1.50)
... gate tftpd[4366]: tftpd: trying to get file: C0A80132
... gate tftpd[4366]: tftpd: serving file from /srv/tftp
... gate rarpd[3616]: RARP request from 00:03:ba:d0:3b:23 on eth0
... gate rarpd[3616]: RARP response to 00:03:ba:d0:3b:23 192.168.1.50 on eth0
...
Это говорит о том, что запрос на IP-адрес был обработан, далее прошло соединение по TFTP и далее был запрошен IP-адрес на получение bootparams.
Настраиваем /etc/bootparams:
```v240 root=gate:/exports/v240/Solaris_10/Tools/Boot
install=gate:/exports/v240
boottype=gate:in
rootopts=gate:rsize=32768
где <b>gate</b> - имя загрузочного сервера под управлением Debian
<b>root</b> - откуда тянем необходимые файлы для дальнейшей загрузки
<b>install</b> - "корень" установочного диска
Параметры <b>boottype</b> и <b>rootopts</b> необходимы "SUN-железяке" как служебные, без описания которых загрузка не пойдет.
<cut />
далее добавляем в /etc/eхports следующую строку:
…
/exports/v240 192.168.1.50(ro,async,no_root_squash,anonuid=0,anongid=0)
...
Проверяем загружен ли NFS-сервеер:
root@gate:/# ps aux | grep nfs
root 1425 0.0 0.0 0 0? S< окт29 0:00 [nfsiod]
root 8022 0.0 0.0 0 0? S< окт29 0:00 [nfsd4_callbacks]
root 8025 0.0 0.0 0 0? S окт29 0:00 [nfsd]
root 8026 0.0 0.0 0 0? S окт29 0:00 [nfsd]
root 8027 0.0 0.0 0 0? S окт29 0:00 [nfsd]
root 8028 0.0 0.0 0 0? S окт29 0:02 [nfsd]
root 8029 0.0 0.0 0 0? S окт29 0:12 [nfsd]
root 8030 0.0 0.0 0 0? S окт29 0:22 [nfsd]
root 8031 0.0 0.0 0 0? S окт29 0:27 [nfsd]
root 8032 0.0 0.0 0 0? S окт29 1:19 [nfsd]
root 23646 0.0 0.0 4728 844 pts/3 S+ 17:44 0:00 grep nfs
root@gate:/#
Проверяем доступ к дистрибутиву через NFS:
root@gate:/# mount -t nfs4 gate:/exports/v240 /mnt
root@gate:/# cd /mnt/
root@gate:/mnt# ls
boot Copyright installer Offer_to_Provide_Source_Code.txt platform Solaris_10
root@gate:/mnt#
Доступ есть.
Теперь правим /etc/dhcp/dhcpd.conf добавив нижеприведенную секцию (dhcp-сервер должен быть предварительно настроен и проверен на факт раздачи IP-адресов клиентам)
…
host v240 { hardware ethernet 00:03:ba:d0:3b:23;
fixed-address 192.168.1.50; }
...
Теперь момент истины, в среде <b>OpenBoot Prompt</b> набираем <b>boot net -v - install</b> и в syslog bootup-сервера наблюдаем:
…
… gate rarpd[12496]: RARP request from 00:03:ba:d0:3b:23 on eth0
… gate rarpd[12496]: RARP response to 00:03:ba:d0:3b:23 192.168.1.50 on eth0
… gate in.tftpd[13905]: connect from 192.168.1.50 (192.168.1.50)
… gate tftpd[13906]: tftpd: trying to get file: C0A80132
… gate tftpd[13906]: tftpd: serving file from /srv/tftp
… gate rarpd[12496]: RARP request from 00:03:ba:d0:3b:23 on eth0
… gate rarpd[12496]: RARP response to 00:03:ba:d0:3b:23 192.168.1.50 on eth0
… gate rpc.bootparamd: whoami got question for 192.168.1.50
… gate rpc.bootparamd: This is host v240
… gate rpc.bootparamd: Returning v240 (none) 192.168.1.1
… gate rpc.bootparamd: getfile got question for "v240" and file "root"
… gate rpc.bootparamd: returning server:gate path:/exports/v240/Solaris_10/Tools/Boot address: 192.168.1.1
… gate rpc.bootparamd: getfile got question for "v240" and file "rootopts"
… gate rpc.bootparamd: returning server:gate path:rsize=32768 address: 192.168.1.1
...
Далее должно "проскочить" в syslog bootup-сервера:
…
… gate rpc.bootparamd: getfile got question for "v240" and file "install"
… gate rpc.bootparamd: returning server:gate path:/exports/v240 address: 192.168.1.1
...
"И он сказал поехали..."
<!--<spoiler title="«Экран» V240 в процессе инициализации и установки OS">-->
<img src="https://habrastorage.org/webt/ie/xd/mf/iexdmftd6xla9fn3-vqjmpgqrwc.jpeg" alt="image"/>
<img src="https://habrastorage.org/webt/z_/sk/kt/z_skktqmipzju2b7nwhdsqlghdo.jpeg" alt="image"/>
<img src="https://habrastorage.org/webt/9k/wx/5h/9kwx5hwwgdom2w4j3jztgxxalo8.jpeg" alt="image"/>
<img src="https://habrastorage.org/webt/gt/wk/iy/gtwkiybeokio40p6kxqrwy-ogag.jpeg" alt="image"/>
<img src="https://habrastorage.org/webt/di/xv/3_/dixv3_hls8crcu7f_5wxynd45tq.jpeg" alt="image"/>
<img src="https://habrastorage.org/webt/z7/ue/f8/z7uef8fezdlrvk22q4xvjxreg58.jpeg" alt="image"/>
<!--</spoiler>-->
И вуаля! Нам предлагают выбрать язык и продолжить установку.
За сим откланиваюсь, но не прощаюсь.
<!--<spoiler title="P.S.">-->
denyhosts, битый switch, который "режет" ARP и тихонько молчит об этом (у D-LINK это вообще тема), и iptables (при некоторых настройках) вам могут изрядно попортить крови. Отсюда лишний раз следует, что если хотите предсказуемости результата, то проверьте hardware и выключите не нужный, на данный момент software, тем самым, вы сохраните свои нервные клетки и время.
<cut />
Так же, можно создать папку /exports/v240_cfg и в ней создать файл **sysidcfg** со следующим содержимым:
system_locale=ru_RU.UTF-8
install_locale=en_US
timeserver=192.168.1.1
network_interface=primary {dhcp protocol_ipv6=no}
name_service=DNS {domain_name=homenet name_server=192.168.1.1 search=homenet}
security_policy=NONE
и добавить в /etc/exports строку:
…
/exports/v240_cfg 192.168.1.50(ro,async,no_root_squash,anonuid=0,anongid=0)
...
Это избавит вас от ответов на некоторые вопросы в процессе установки OS, но это уже немного другая история...
<!--</spoiler>-->
Автор: Ботинок