Установка Solaris 2.6 в QEMU, эмулирующем SparcStation 5 с поддержкой сети

В предыдущей статье мы подготовили машину в QEMU к установке Solaris и загрузили её с CD с Solaris 2.6.

В этот раз произведём установку Solaris 2.6 и убережёмся от возникающих подводных камней.

Запускаем QEMU командой из прошлой статьи и подключаемся через telnet к localhost:13666.

qemu-system-sparc \
 -M SS-5 -m 256 \
 -bios ss5.bin \
 -nographic \
 -serial mon:telnet:127.0.0.1:13666,server,nowait \
 -hda hda_qcow_36g.img \
 -drive media=cdrom,index=6,file=solaris_2.6_598_sparc.iso \
 -net nic -net tap,ifname=tap0

Видим приглашение командной строки (если нет - поотбивайте Enter) и загружаемся с cdrom в Single user режиме для записи метки на наш чистый диск (boot cdrom -s):

Type  help  for more information
ok
ok boot cdrom -s
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@6,0:d  File and args: -s
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
Configuring devices...
fdintr: nobody sleeping (c0 0 0)
NOTICE: SBus clock frequency out of range.
/
INIT: SINGLE USER MODE
# 

Вызываем команду format и доходим до этапа выбора параметров диска:

# format
Searching for disks...WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):
        corrupt label - wrong magic number

done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 <drive type unknown>
          /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0
Specify disk (enter its number): 0



AVAILABLE DRIVE TYPES:
        0. Auto configure
        1. Quantum ProDrive 80S
        2. Quantum ProDrive 105S
        3. CDC Wren IV 94171-344
        4. SUN0104
        5. SUN0207
        6. SUN0327
        7. SUN0340
        8. SUN0424
        9. SUN0535
        10. SUN0669
        11. SUN1.0G
        12. SUN1.05
        13. SUN1.3G
        14. SUN2.1G
        15. SUN2.9G
        16. other
Specify disk type (enter its number): 16

Их берём, например, из прошлой статьи:

SUN1.0G cyl 1703  alt 2 hd 15 sec 80
SUN9.0G cyl 4924  alt 2 hd 27 sec 133
SUN18G  cyl 7506  alt 2 hd 19 sec 248
SUN36G  cyl 24620 alt 2 hd 27 sec 107

Для нашего диска в 36G, соответственно, последняя строчка:

Enter number of data cylinders: 24620
Enter number of alternate cylinders[2]:
Enter number of physical cylinders[24622]:
Enter number of heads: 27
Enter physical number of heads[default]:
Enter number of data sectors/track: 107
Enter number of physical sectors/track[default]:
Enter rpm of drive[3600]:
Enter format time[default]:
Enter cylinder skew[default]:
Enter track skew[default]:
Enter tracks per zone[default]:
Enter alternate tracks[default]:
Enter alternate sectors[default]:
Enter cache control[default]:
Enter prefetch threshold[default]:
Enter minimum prefetch[default]:
Enter maximum prefetch[default]:
Enter disk type name (remember quotes): SUN36G
selecting c0t0d0
[disk formatted]

Стоит отметить, что использование слишком большого раздела root, приводит к невозможности загрузки системы. Так что стоит либо использовать меньший объём, либо разделять дисковое пространство между / и /usr.

Продолжаем создание разделов на диске:

format> label
Ready to label disk, continue? y

WARNING: /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0 (sd0):
        corrupt label - wrong magic number

format> partition


PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition> modify
Select partitioning base:
        0. Current partition table (SUN36G)
        1. All Free Hog
Choose base (enter number) [0]? 1

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0                0         (0/0/0)            0
  1       swap    wu       0                0         (0/0/0)            0
  2     backup    wu       0 - 24619       33.92GB    (24620/0/0) 71127180
  3 unassigned    wm       0                0         (0/0/0)            0
  4 unassigned    wm       0                0         (0/0/0)            0
  5 unassigned    wm       0                0         (0/0/0)            0
  6        usr    wm       0                0         (0/0/0)            0
  7 unassigned    wm       0                0         (0/0/0)            0

Do you wish to continue creating a new partition
table based on above table[yes]?
Free Hog partition[6]?
Enter size of partition '0' [0b, 0c, 0.00mb, 0.00gb]: 1gb
Enter size of partition '1' [0b, 0c, 0.00mb, 0.00gb]: 512mb
Enter size of partition '3' [0b, 0c, 0.00mb, 0.00gb]:
Enter size of partition '4' [0b, 0c, 0.00mb, 0.00gb]:
Enter size of partition '5' [0b, 0c, 0.00mb, 0.00gb]:
Enter size of partition '7' [0b, 0c, 0.00mb, 0.00gb]:

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -   725        1.00GB    (726/0/0)    2097414
  1       swap    wu     726 -  1088      512.06MB    (363/0/0)    1048707
  2     backup    wu       0 - 24619       33.92GB    (24620/0/0) 71127180
  3 unassigned    wm       0                0         (0/0/0)            0
  4 unassigned    wm       0                0         (0/0/0)            0
  5 unassigned    wm       0                0         (0/0/0)            0
  6        usr    wm    1089 - 24619       32.42GB    (23531/0/0) 67981059
  7 unassigned    wm       0                0         (0/0/0)            0

Okay to make this the current partition table[yes]? yes
Enter table name (remember quotes): sparc

Ready to label disk, continue? y

partition> 

Выходим из format, останавливаем систему (halt) и загружаемся с cdrom в интерактивный установщик (boot cdrom):

partition> quit
format> quit
# sync
# halt
syncing file systems... done
Program terminated
ok 
ok boot cdrom
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@6,0:d  File and args:
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
Configuring devices...
fdintr: nobody sleeping (c0 0 0)
NOTICE: SBus clock frequency out of range.

The system is coming up.  Please wait.

Далее выполняем установку Solaris в соответствии с вашими предпочтениями, она состоит большей частью из тривиальных этапов, таких как:

Select a Language: English
Select a Locale: USA - English (ASCII only)
What type of terminal are you using: X Terminal Emulator (xterms)
Host name: sparc
Networked: Yes
IP address: 10.0.0.1
Name service: None
System part of a subnet: Yes
Netmask: 255.0.0.0
Regions: other - offset from GMT
Hours offset: 3
System identification is completed.
Allocate Client Services: Continue
Select Languages: None

Доходим до этапа выбора устанавливаемого набора софта:

  Select the Solaris software to install on the system.

  NOTE: After selecting a software group, you can add or remove software by
  customizing it. However, this requires understanding of software
  dependencies and how Solaris software is packaged.

      [ ]  Entire Distribution plus OEM support .. 720.00 MB
      [ ]  Entire Distribution ................... 701.00 MB
      [ ]  Developer System Support .............. 633.00 MB
      [X]  End User System Support ............... 374.00 MB (F4 to Customize)
      [ ]  Core System Support ................... 181.00 MB

Выбираем по своему вкусу. Также отмечаю, что от выбора того или иного варианта, зависит время установки.

Select Disks: c0t0d0
Select Boot Disk: c0t0d0
Reconfigure EEPROM: Don't Reconfigure EEPROM
Preserve Data: Continue
Automatically Layout File Systems: Manual Layout
File System and Disk Layout: Customize
  Slice  Mount Point                 Size (MB)
     0   /                                1024
     1   swap                              512
     2   overlap                         34730
     3                                       0
     4                                       0
     5                                       0
     6   /usr                            33193
     7                                       0
File System and Disk Layout:
        File system/Mount point           Disk/Slice             Size
        =============================================================
        /                                 c0t0d0s0            1024 MB
        swap                              c0t0d0s1             512 MB
        overlap                           c0t0d0s2           34730 MB
        /usr                              c0t0d0s6           33193 MB

Mount Remote File Systems: Continue
Profile: Continue
Reboot After Installation: Manual Reboot

Важно выбрать ручную перезагрузку в последнем пункте, так как в состоянии сразу-после-устаноки система не загружается с ошибкой:

Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@0,0:  File and args:
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
Cannot assemble drivers for root /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0:a
Cannot mount root on /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@0,0:a fstype ufs
panic: vfs_mountroot: cannot mount root
rebooting...
Resetting ...

После завершения установки попадаем в shell и выполняем следующую команду:

echo 'set scsi_options=0x58' >> /a/etc/system

Теперь можно перезагружаться в нашу систему с помощью reboot.

Если же, вы пропустили этот этап и оказались с незагружаемой системой, загружаемся с cdrom в single user режиме и исправляем это недоразумение:

ok boot cdrom -s
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@6,0:d  File and args: -s
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
Configuring devices...
fdintr: nobody sleeping (c0 0 0)
NOTICE: SBus clock frequency out of range.
/
INIT: SINGLE USER MODE
# mount /dev/dsk/c0t0d0s0 /a
# echo 'set scsi_options=0x58' >> /a/etc/system
# reboot

Установка завершена, можно загружать систему с помощью (boot disk0):

ok boot disk0
Boot device: /iommu/sbus/espdma@5,8400000/esp@5,8800000/sd@0,0  File and args:
SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1997, Sun Microsystems, Inc.
/

При первом запуске будет предложено задать пароль root'а.

На этом установка Solaris 2.6 завершена, в следующей статье разберём конфигураию и запуск install server'а, и загрузка другой Sparcstation 5 по сети с эмулированного Sparcstation 5 в QEMU.