2016-06-16

victor_sudakov: (Default)
2016-06-16 05:07 pm

Перенос Solaris x86 на другое железо

В Solaris файлы устройств в /dev являются линками на физические устройства в /devices, например

$ ls -al /dev/dsk/c1t3d0s6
lrwxrwxrwx   1 root     root          60 Jun 16 13:06 /dev/dsk/c1t3d0s6 -> ../../devices/pci@0,0/pci15ad,7a0@15/pci15ad,1976@0/sd@3,0:g


что является основным источником проблем при переносе на другое железо, в виртуалку, или даже просто при перестановке дисков в другие слоты. Проблема аналогична виндовой "буковки дисков съехали". Общий рецепт оживления системы после переноса или перетасовки железа такой.

1. Грузимся с LiveCD или в Failsafe режим, монтируем системный диск в /a

2. Восстанавливаем grub, если есть необходимость:
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t0d0s0


Имя диска, куда ставить grub, узнать из "mount | grep /a"

3. Правим /a/boot/solaris/bootenv.rc, там в setprop bootpath должно быть физическое имя загрузочного диска, узнать его из "ls -al /dev/rdsk/c1t0d0s0", например

setprop bootpath /pci@0,0/pci15ad,7a0@15/pci15ad,1976@0/sd@0,0:a


4. делаем chroot в /a для восстановления корректных линков /dev на /devices

chroot /a /bin/tcsh
devfsadm -C
devfsadm
exit


5. Правим /a/etc/vfstab на предмет новых имен в /dev/dsk и /dev/rdsk.

6. Обновляем бут-архив
bootadm update-archive -R /a


7. reboot