<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Sadly I cannot help to overcome this behaviour.</div><div>If one could plugin any bootable device in any slot</div><div>(sata, ide or usb) and it would bootup just like</div><div>plain old stupid DOS with the bios bootup order- </div><div>that would be a huge improvement in handling - </div><div>allowing " preconfigured deploy and emergency disks"</div><div><br></div><div>I really hope someone with more Grub knowledge</div><div>is willing to look at this item as well and help to fix it.</div><div><br></div><div>Gea</div><div><br></div><br><div><div>Am 01.11.2013 um 14:04 schrieb Jim Klimov:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On 2013-10-31 18:28, Günther Alka wrote:<br><blockquote type="cite">Only problem: currently you can only boot from usb when you plugin the<br></blockquote><blockquote type="cite">sticks in those ports<br></blockquote><blockquote type="cite">that were used during setup. It would be perfect it you may boot from<br></blockquote><blockquote type="cite">any usb port maybe on similar<br></blockquote><blockquote type="cite">mainboards. But this seems a Grub restriction where the physical<br></blockquote><blockquote type="cite">bootdevice is hardcoded during setup.<br></blockquote><br>This is also a problem in other cases, such as attempts to switch from<br>LegacyIDE to SATA on the motherboard. In my case on a laptop, booting<br>from USB causes the SATA devices to be enumerated differently than if<br>I boot from a SATA disk, so legacy-ide is the only practically working<br>option :(<br><br>My research into the problem led me to believe that it is possible to<br>code a different solution into the bootloader and rpool-importer, but<br>my attempts to complete this have stalled :(<br><br>I may be wrong (some time has passed) but somewhere here:<br><a href="http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libgrubmgmt/common/libgrub_fs.c">http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libgrubmgmt/common/libgrub_fs.c</a><br>...grub locates the "physpath" strings from the rpool-component labels<br>and passes these strings to the kernel (as well as the rootfs dataset<br>by number, not name).<br><br>Then in zfs_mountroot() at<br>http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs/zfs_vfsops.c<br>the booted kernel tries to mount the provided device path - which<br>fails due to renamed devices.<br><br>I tried to make GRUB also detect and pass the GUID of the pool for the<br>process to fall back in case of absent devices, and this required to<br>implement appropriate ascii_to_uint64() and/or ascii_to_uint64_hex(),<br>and the opposite functions in both GRUB and ZFS, as well as to figure<br>out the proper use of nvlists and spa_import_rootpool() and stuff like<br>that. In short, this seemed like an easy quest for someone who knows<br>their way around the ZFS code, but I was blind there and did fail.<br>I believe the GUID value passing from GRUB to kernel worked (but not<br>completely certain of that though), and mounting of an rpool by GUID<br>apparently did not succeed, and then I had other pressing quests :(<br>If anyone is interested to pick up, I can share the diffs of what<br>I did though :)<br><br>HTH,<br>//Jim Klimov<br><br>_______________________________________________<br>OmniOS-discuss mailing list<br>OmniOS-discuss@lists.omniti.com<br>http://lists.omniti.com/mailman/listinfo/omnios-discuss<br></div></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">--<br><br></div></span></span>
</div>
<br></body></html>