<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<pre>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.</pre>
<pre>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 <a class="moz-txt-link-freetext" href="http://www.skytale.net/blog/archives/27-Changing-the-rpool-disk-in-Solaris.html">http://www.skytale.net/blog/archives/27-Changing-the-rpool-disk-in-Solaris.html</a> </pre>
<pre>Grub uses the following entry<b>
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS</b>
and translates it to something like<tt><b>
kernel /platform/i86pc/kernel/$ISADIR/unix -B zfs-bootfs=rpool/328 \
bootpath="/pci@0,0/pci8086,2942@1c,1/pci-ide@0/ide@0/cmdk@0,0:a"</b></tt></pre>
<br>
From above link:<br>
<i>"The interesting part here is the </i><i><code>bootpath</code></i><i>
parameter. This is the device that Solaris will </i><i>try to
mount the rpool from. Even if the rpool consists of several mirror
devices, only one </i><i>is used in the initial boot process.
Where does </i><i><span class="caps">GRUB</span></i><i> get the
device path from? It’s read from </i><i>the rpool header, from
the disk </i><i><span class="caps">GRUB</span></i><i> was loaded
from. Every </i><i><span class="caps">ZFS</span></i><i> pool disk
contains the device </i><i>path it was last found under. This
usually does not matter much, a </i><i><span class="caps">RAIDZ</span></i><i>
will still mount </i><i>if you swap the disks around when the
machine is off, but the boot process relies on the rpool </i><i>disks
not wandering around. My new disk still had the </i><i><span
class="caps">USB</span></i><i> device path embedded, which </i><i><span
class="caps">GRUB</span></i><i> read </i><i>and passed to the
kernel, which then failed to find the disk.</i><i>"</i><br>
<b><br>
</b>
<pre><b>Now the question:</b><b>
</b><b>Is there a way not to use the "last bootpath" but always the current that is used for booting grub?
</b></pre>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>