Solaris grub

From Lolly's Wiki
Jump to navigationJump to search

Set SP-console on x86-systems to 115200 Baud

You need to set the new speed in all three places:

  1. grub
  2. SP host serial
  3. BIOS serial

Solaris 11

Set speed and port in grub

# bootadm set-menu console=serial serial_params=0,115200,8,N,1
# bootadm generate-menu -f
# eeprom console=ttya
# eeprom ttya-mode=115200,8,n,1,-

Solaris 10

Set speed and port in grub


title Oracle Solaris 10 X86
findroot (pool_rpool,0,a)
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS,console=ttya,ttya-mode="115200,8,n,1,-"
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot -s -B console=ttya,ttya-mode="115200,8,n,1,-"
module /boot/amd64/x86.miniroot-safe

Set speed


setprop ttya-mode '115200,8,n,1,-'

Active after reboot.

Set console login speed


console115200:115200 hupcl opost onlcr:115200::console
# svccfg -s svc:/system/console-login setprop ttymon/label= astring: "console115200"
# svcadm refresh svc:/system/console-login
# svcadm restart svc:/system/console-login

Set speed in BIOS

Enter BIOS setup with F2 or CTRL+E, then go to

Advanced -> Serial Port Console Redirection -> Bits per second : 115200

Set speed for SP host serial

-> set SP/serial/host pendingspeed=115200 commitpending=true
Set 'pendingspeed' to '115200'
Set 'commitpending' to 'true'

-> show SP/serial/host speed

        speed = 115200

grub rescue>

The problem:

GRUB loading...                                                                 
Welcome to GRUB!                                                                
error: couldn't find a valid DVA.                                               
Entering rescue mode...                                                         
grub rescue>

Get into the normal grub

Find your devices:

grub rescue> ls
(hd0) (hd0,gpt9) (hd0,gpt2) (hd0,gpt1) (hd1)

Find the directory where the normal.mod file resides

In this example the boot environment is named Solaris11.3SRU1. Remember to replace Solaris11.3SRU15 with your boot environment name.

grub rescue> ls (hd0,gpt2)/ROOT/Solaris11.3SRU15/@/boot/grub/i386-pc
... normal.mod ...

Set the prefix to the right place

Remember to replace Solaris11.3SRU15 with your boot environment name.

grub rescue> set
grub rescue> set prefix=(hd0,gpt2)/ROOT/Solaris11.3SRU15/@/boot/grub/i386-pc

Now you can load and start the module called "normal"

grub rescue> insmod normal
grub rescue> normal
                  GNU GRUB  version 1.99,

   Minimal BASH-like line editing is supported. For the first word, TAB
   lists possible command completions. Anywhere else TAB lists possible
   device or file completions.


Normal grub is bootet, now start the Solaris

At the grub> prompt enter the following lines. Remember to replace Solaris11.3SRU15 with your boot environment name.

insmod zfs
zfs-bootfs /ROOT/Solaris11.3SRU15/@/ zfs_bootfs
set kern=/platform/i86pc/kernel/amd64/unix
$multiboot /ROOT/Solaris11.3SRU15/@/$kern $kern -B $zfs_bootfs
insmod gzio
$module /ROOT/Solaris11.3SRU15/@/platform/i86pc/amd64/boot_archive