Back to the main page

GRUB booting on Solaris x86

Let's talk bit more about booting the Solaris on x86 architecture (NOT on SPARC)

Now, on Solaris 10, the default boot loader is GRUB (GRand Unified Bootloader).

The GRUB loads boot archive in system's memory.

Okay so what's boor archive now?

Well, simply it's bunch of critical files that's needed during boot time before / (root) file system is mounted. And these critical files are kernel modules and configuration files.

Sun says, "Boot archive is interface that is used to boot Solaris OS". Remember, there is not boot archive on SPARC, only on x86 architecture.

The GRUB has menu so you can select OS instance you want to boot.

Sometimes you may need to perform next two tasks below and luckily, there are nice commands for that. I'll talk about them more later.

But let's do first thing first and this is overview of booting.
GRUB functional components are:
The boot behavior can be modified using command eeprom which will edit file /boot/solaris/bootenv.rc. See the file for more info.

Update a corrupt boot archive

Well, sooner or later you will have to do this, trust me :(
Primary boot archive has files below (if any of them is updated, rebuild boot archive with "bootadm update-archive".


Actually, beside primary boot archive, there is one more - Failsafe boot archive. It can boot on its own, require no maintenance and is created during OS installation.

Installing GRUB

This is also something you may need to do, say you are mirroring two disks using SVM and want to install GRUB on second disk in case you need to boot from there.

So to install GRUB in master boot sector run (replace c1t0d0s0 with yours if needed):

installgrub -fm /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t0d0s0

See man page for "installgrub"
Back to the main page