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

Jim Klimov jimklimov at cos.ru
Thu Apr 18 14:53:34 UTC 2013


On 2013-04-18 16:31, Guenther Alka wrote:
> 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"*

Interesting, this is different from my assessment due to an "educated
guess" - though I might have mis-guessed, and did not go into code
too far yet to prove or disprove my hypothesis.

I thought (and posted) that rpool import might go through a separate
procedure involving the values recorded in the pool device headers -
indeed, not unlike what you posted above. However, I thought that it
was the kernel (or boot scripts on the miniroot) detecting and using
the wrong value. Anyhow, I suggested and it holds, that the rpool
mount routine should not panic if it finds a mismatch between expected
and actual device names, but rather should try to find the rpool like
any other pool. If what you wrote about GRUB and bootpath is true,
then perhaps this mechanism could be enhanced to pass bootguid as
the less ambiguous variant than the textual pool name? Even with
the current variant, although not very unambiguous and thus reliable,
the rpool importer might search storage device headers and find the
device which was last mounted at a particular device node name, and
import it as the rpool (if the verbatim device node was not found).

I was sure I posted an illumos RFE/bug, but can't find it. Maybe I just
planned to, after initial discussions which led nowhere in particular...

//Jim




More information about the OpenIndiana-discuss mailing list