BigAdmin System Administration Portal
Feature Article
Print-friendly VersionPrint-friendly Version

FAQ for GRUB and the Solaris 10 1/06 OS: The New Bootloader for x86 Platforms

December 2005

General Questions
  1. What is GRUB?
  2. Is GRUB the new bootloader for the Solaris OS on SPARC platforms, too?
  3. Do I have to upgrade my x86 computer to the Solaris 10 1/06 OS to get GRUB?
  4. How do I get the system to come up on the GRUB menu on the Solaris OS all the time?
  5. I want the system to stay at the GRUB menu and not autoboot. How do I do that?
  6. Can I use GRUB to boot old Solaris releases?
  7. I have installed a new Solaris release on an fdisk partition with an old Solaris release on another slice in the same partition. How can I boot the old release?
  8. I edited /boot/grub/menu.lst, but the changes do not show up on the GRUB screen.
  9. How do I set up a netinstall server to serve multiple Solaris images?
  10. Can I use pxelinux to load the Solaris OS?
  11. Can I boot from the network without a PXE/DHCP server?
  12. How do I apply driver updates when booting the new Solaris release?
  13. The output of prtconf -pv does not provide what I used to get. What should I do?
  14. I have an old machine with no ACPI table. Can I still boot the Solaris OS?
  15. Can I customize the failsafe archive and put it on a USB stick as a portable rescue image?
  16. How do I redirect the GRUB console to the serial line?
  17. I somehow trashed my boot archive after going into failsafe mode and fixing a configuration file. No matter how many times I rebooted into failsafe mode, I couldn't get it to regenerate the archive and allow me to boot up.
  18. GRUB is normally installed in the Solaris slice. Would there be circumstances where it should be installed in the Master Boot Record (MBR) instead?
  19. I have installed the Solaris OS on a system, but I cannot boot it.
  20. Should I create a Solaris boot partition at install time?
 
 

Q:
What is GRUB?
A:
The new bootloader for the Solaris OS on x86 platforms is based on the popular open source GNU GRUB (Grand Unified Bootloader) project. A bootloader is a software program that runs when a computer is first powered up. It is responsible for loading the operating system kernel into memory and then transferring control to that kernel.

Back to top


Q:
Is GRUB the new bootloader for the Solaris OS on SPARC platforms, too?
A:
No, GRUB is only for the Solaris OS on x86 systems starting with the Solaris 10 1/06 release. (The new bootloader is available prior to the formal release of the Solaris 10 1/06 OS from either the OpenSolaris Project or the Solaris Express program.)

Back to top


Q:
Do I have to upgrade my x86 computer to the Solaris 10 1/06 OS to get GRUB?
A:
Upgrading is one mechanism to get the new bootloader. Another method is to install Solaris 10 security patches that include kernel patch 118844-21 (or above).

Back to top


Q:
How do I get the system to come up on the GRUB menu on the Solaris OS all the time?
A:
Install Solaris GRUB stage1 on the master boot section by running

installgrub -m <stage1> <stage2> /dev/rdsk/<root slice>.

See the installgrub(1) command for specifics on “stage1” and “stage2” arguments.

Back to top


Q:
I want the system to stay at the GRUB menu and not autoboot. How do I do that?
A:
Set timeout=-1 in /boot/grub/menu.lst.

Back to top


Q:
Can I use GRUB to boot old Solaris releases?
A:
Not directly. Older Solaris kernels are not multiboot compliant and cannot be loaded by GRUB directly. However, you can chainload by adding the following lines to the GRUB menu in /boot/grub/menu.lst:
        
	title Solaris 3/05
        root (hd0,1)    <== Solaris partition
        chainloader +1
        makeactive

The makeactive command is necessary for the chainloader to work.

Back to top


Q:
I have installed a new Solaris release on an fdisk partition with an old Solaris release on another slice in the same partition. How can I boot the old release?
A:
Make sure that the old Solaris version's root fs is on a slice with the root tag. The GRUB-boot Solaris slice must have any tag other than root. This is not the default setting after install; the user must edit the slice tags with format(1M).

If the old Solaris release has a boot partition, chainload to the boot partition.

If not, install pboot in the first sector of the slice. For example, for the first slice, use:

   dd if=/usr/platform/i86pc/lib/fs/ufs/pboot of=/dev/rdsk/c0d0s0 bs=512 count=1

Then chainload the slice:

	title Solaris 03/05
        root (hd0,1,a)
        chainloader +1
        makeactive

Back to top


Q:
I edited /boot/grub/menu.lst, but the changes do not show up on the GRUB screen.
A:
Most likely the system is booting from the Solaris boot partition. In this case, the boot partition is mounted at /stubboot. The active GRUB menu is /stubboot/boot/grub/menu.lst.

Back to top


Q:
How do I set up a netinstall server to serve multiple Solaris images?
A:
See Appendix B of the article "GRUB and the Solaris 10 1/06 OS: The New Bootloader for x86 Platforms": http://www.sun.com/bigadmin/features/articles/grub_boot_solaris.html.

Back to top


Q:
Can I use pxelinux to load the Solaris OS?
A:
You can use pxelinux to load pxegrub and then load the Solaris OS.

Back to top


Q:
Can I boot from the network without a PXE/DHCP server?
A:
Yes, but only with some kind of local media (floppy or CD-ROM). You can create a GRUB floppy and configure the network via the GRUB command rarp or ifconfig, and download multiboot and boot_archive via tftp.

Back to top


Q:
How do I apply driver updates when booting the new Solaris release?
A:
When booting the miniroot, choose 5 from the Install menu. Insert the floppy disk or CD-ROM containing the software when prompted to do so. The software layout on the CD-ROM must follow the same directory hierarchy defined for ITU floppies.

Back to top


Q:
The output of prtconf -pv does not provide what I used to get. What should I do?
A:
The kernel is now responsible for device enumeration. All device information should be available via prtconf -v.

Back to top


Q:
I have an old machine with no ACPI table. Can I still boot the Solaris OS?
A:
Yes, if no ACPI table is found, the boot code automatically uses a set of defaults, which configures standard PS/2 keyboard/mouse and serial/parallel ports. You can manually disable ACPI by adding the boot option -B acpi-user-options=2 (see also eeprom(1M)).

Back to top


Q:
Can I customize the failsafe archive and put it on a USB stick as a portable rescue image?
A:
The current failsafe archive is the miniroot in gzipped UFS format. It can be mounted as a lofi device and operated using file system operations. You may add drivers to the archive for enhanced hardware support. Adding application packages is generally not supported because the miniroot is a minimal environment intended only for OS install and upgrade operations.

Back to top


Q:
How do I redirect the GRUB console to the serial line?
A:
In the Solaris OS, use eeprom console=ttya (or ttyb) to redirect the OS console. If BIOS console redirection is available, set that. If the BIOS console cannot be redirected, you can redirect GRUB output to ttya by adding the following lines to /boot/grub/menu.lst:
        serial --unit=0 --speed=9600
        terminal serial

Setting both BIOS console redirection and GRUB console redirection is not recommended. They may interfere with each other.

Back to top


Q:
I somehow trashed my boot archive after going into failsafe mode and fixing a configuration file. No matter how many times I rebooted into failsafe mode, I couldn't get it to regenerate the archive and allow me to boot up.
A:
Boot into failsafe mode, and after answering 'yes' to the 'updated archives' question, your real disk-based root file system should be mounted on /a. Run the command - bootadm update-archive -f -R /a.

Back to top


Q:
GRUB is normally installed in the Solaris slice. Would there be circumstances where it should be installed in the Master Boot Record (MBR) instead?
A:
If you install GRUB into the Master Boot Record (installgrub -m <stage1> <stage2> /dev/rdsk/<slice>) the system will start with GRUB, no matter if the Solaris partition is activated or not.

But if you install a second OS that overwrites the MBR there is no chance to recover the Solaris version of GRUB except by booting from an installation DVD and running the installgrub command again.

So from the recovery perspective, you are probably better off leaving the Solaris 10 1/06 version of GRUB in the Solaris partition.

Back to top


Q:
I have installed the Solaris OS on a system, but I cannot boot it.
A:
Verify that the BIOS boot disk is set to the one the Solaris OS is installed on, and the Solaris partition is active.

Back to top


Q:
Should I create a Solaris boot partition at install time?
A:
No. From Solaris 10 1/06 forward, a fresh install will not create a boot partition or reuse an existing boot partition. When upgrading from a previous Solaris release, the boot partition is retained and mounted at /stubboot.

Back to top

Discuss and comment on this resource in the BigAdmin Wiki


Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License.


BigAdmin
  
 
 
 
 
Would you recommend this Sun site to a friend or colleague?
Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright Sun Microsystems, Inc.