Mailinglist Archive: opensuse-bugs (4510 mails)

< Previous Next >
[Bug 963336] 'yast2 bootloader' crashes in detect_disks() or to_kernel_device() if any ZFS filesystems are mounted
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Sat, 27 Feb 2016 15:10:05 +0000
  • Message-id: <bug-963336-21960-CjDei083Lz@http.bugzilla.opensuse.org/>
http://bugzilla.opensuse.org/show_bug.cgi?id=963336
http://bugzilla.opensuse.org/show_bug.cgi?id=963336#c12

--- Comment #12 from Ben Kelly <bk@xxxxxxxxxx> ---
If it helps any, the /etc/mtab entry for a ZFS mount point looks like this:

thoth/root / zfs rw,relatime,xattr,noacl 0 0

The "device name" is the name of the ZFS dataset; it might correspond to one or
more actual block devices, depending on pool geometry.

The correct way to boot from this:
- set the `bootfs` property on the containing pool (`# zpool set
bootfs=thoth/root thoth`)
- make sure the `zfs` module is included in the initrd when it's generated;
dracut seems to handle this automatically
- and *do not* include a `root=` parameter to the kernel or embed on in the
initrd, which requires dracut to be invoked with --no-hostonly-cmdline.

Then you load the kernel and initrd and away you go. The zfs module in the
initrd will find / automatically based on the `bootfs` property, and then find
the other pools/datasets based on the contents of `/etc/zfs/zpool.cache`.

If booting from grub or extlinux, this requires /boot to be on a non-ZFS
partition (extlinux doesn't support ZFS at all; grub's support is unreliable).
If booting using EFISTUB, it merely requires a copy of the kernel and initrd in
/boot/efi/EFI somewhere.

All that aside, even if there are no plans to support ZFS in yast, it should at
least not crash when it can't match up / with a block device. :)

(Related to this, being able to select EFISTUB or extlinux as bootloaders would
be fantastic. Should I open separate feature requests for those?)

--
You are receiving this mail because:
You are on the CC list for the bug.
< Previous Next >