[OpenIndiana-discuss] Booting OpenIndiana from USB stick and different ports and different machines (One stick for all)

Guenther Alka alka at hfg-gmuend.de
Thu Apr 18 14:31:53 UTC 2013


I have installed OpenIndiana server and OmniOS on 16 GB USB sticks.
This works very well especially with modern fast sticks, ZFS boot mirror and atime set to off.

The problem is, that I can only boot from the USB port that was used during setup.
On other ports or mainboards, it crashes after selecting a Grub entry.

I would like to boot from any USB ports or on other machines with similar hardware.
According to http://www.skytale.net/blog/archives/27-Changing-the-rpool-disk-in-Solaris.html

Grub uses the following entry*
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS*

and translates it to something like*
kernel /platform/i86pc/kernel/$ISADIR/unix -B zfs-bootfs=rpool/328 \
bootpath="/pci at 0,0/pci8086,2942 at 1c,1/pci-ide at 0/ide at 0/cmdk at 0,0:a"*


 From above link:
/"The interesting part here is the //|bootpath|//parameter. This is the 
device that Solaris will //try to mount the rpool from. Even if the 
rpool consists of several mirror devices, only one //is used in the 
initial boot process. Where does //GRUB//get the device path from? It’s 
read from //the rpool header, from the disk //GRUB//was loaded from. 
Every //ZFS//pool disk contains the device //path it was last found 
under. This usually does not matter much, a //RAIDZ//will still mount 
//if you swap the disks around when the machine is off, but the boot 
process relies on the rpool //disks not wandering around. My new disk 
still had the //USB//device path embedded, which //GRUB//read //and 
passed to the kernel, which then failed to find the disk.//"/
*
*

*Now the question:**
**Is there a way not to use the "last bootpath" but always the current that is used for booting grub?
*










More information about the OpenIndiana-discuss mailing list