<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>