George Mitchell posted on Sun, 03 Aug 2014 21:00:19 -0700 as excerpted:

>>> I cannot mount my root with anything other than an explicit /dev/sdx
>>> reference until I manually run a scan. Then UUID etc all work. I've
>> That sounds like a problem with the Ubuntu initrd, probably filing an
>> Ubuntu bug report would be the best thing to do.  Is BTRFS supported in
>> that version of Ubuntu?
>>
>> But just changing your boot configuration to use /dev/sdx is probably
>> the best option.
>>
> Assuming you are booting with grub2, you will need to use /dev/sdx in
> the grub2 configuration file.  This is known issue with grub2. Example
> from my script:
> 
> ------------------------------------------------------------------------
> echo    'Loading Linux desktop ...'
> linux   /vmlinuz-desktop root=/dev/sda7 ro splash quiet
> echo    'Loading initial ramdisk ...'
> initrd  /initrd-desktop.img
> 
> ------------------------------------------------------------------------

??

Known issue with ubuntu's grub2, perhaps?  Or perhaps with separate 
initrds as opposed to kernel-appended initramfss?  Or maybe it's with 
loadable kernel modules as opposed to a custom-built monolithic kernel?  
Or maybe it's an issue with mbr style grub2 but not gpt with a dedicated 
BIOS boot partition, or perhaps with grub2 in EFI mode instead of BIOS 
mode?

Because it works just fine here, grub2, root=LABEL= style root= line 
pointed at a multi-device btrfs rootfs, BIOS mode gpt partitions with a 
dedicated BIOS partition for grub2 to use, custom built monolithic kernel 
with all necessary modules builtin and an appended initramfs, not a 
separately loaded initrd.

As rootfs /is/ a multi-device btrfs I /do/ have to have an initramfs, 
because apparently the kernel's command-line parser doesn't properly 
handle the btrs device= mount option in rootflags=device= parameters, and 
without a userspace btrfs device scan, the btrfs device= mount option 
must be passed for multi-device filesystems or btrfs will refuse to mount 
the device without degraded.  But with an appropriate initramfs, it most 
certainly does work here.

FWIW, my initramfs is dracut-based, btrfs and udev dracut modules loaded 
of course, with or without the systemd dracut module also loaded (I 
recently converted to systemd and was running the non-systemd dracut 
before that.

And root=LABEL= works just fine.

In fact, I have grub2 variables setup with the labels for several 
different rootfs choices, working multi-device btrfs rootfs, primary 
backup multi-device btrfs rootfs, and secondary backup reiserfs rootfs.  
I then have a grub2 menu setup that lets me choose between the three, 
substituting in the appropriate grub2 variable based root=LABEL= kernel 
commandline option as necessary.  With the previously mentioned exception 
of having to use the initramfs in the first place in ordered to work 
around the kernel's rootflags=device= parsing issue instead of being able 
to direct-boot the rootfs without an initramfs at all, it all works 
exactly as expected.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to