Remco Hosman - Yerf IT.nl posted on Sun, 31 Aug 2014 09:37:38 +0200 as
excerpted:
> issue:
> on my system i have 2 entries for /, one with the type ‘rootfs’ and a
> 2nd one with the type ‘btrfs’. find_mount_root() uses the first one and
> reports a fail.
>
> My change:
> if (longest_matchlen < len) {
> into:
> if (longest_matchlen <= len) {
>
> i have not tested this, but in my understanding it will use the last
> longest match instead of the first.
>
> I have no idea if this rootfs entry is normal nor if its always there
> before the ‘proper’ one.
>
> These are the 2 entries in my mount list:
> rootfs / rootfs rw 0 0
> /dev/sda2 / btrfs rw,noatime,ssd,noacl,space_cache 0 0
AFAIK that rootfs entry is the kernel's built-in initramfs that it
automatically mounts, even if empty, before mounting your real-root.
If you use an initramfs/initrd, the switch_root process normally hides/
unmounts the initr*, but if you don't and the kernel is using its empty
one, nothing hides/unmounts it, so it's still there after the normal / is
mounted over top.
At least, I always booted to root directly without an initr*, and always
had a rootfs entry until relatively recently, presumably when I switched
to a two-device btrfs real-rootfs, and had to create and use an initramfs
to do so[1]. Now I don't have a rootfs entry any longer.
---
[1] Initr* required for multi-device btrfs root: Btrfs has the device=
mount option, which would normally be passed via a kernel-command-line
rootflags= option to btrfs, that can be used with multi-device-
filesystems in the absence of btrfs device scan. Unfortunately,
rootflags=device= fails for some reason, or at least did last time I
tried it, so the only way I can get a multi-device btrfs root to mount is
to use an initr*.
--
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html