Remarks on commit related to fuse support
David Zeuthen
david at fubar.dk
Mon Oct 23 16:37:41 PDT 2006
On Mon, 2006-10-23 at 17:20 -0400, Logan Rathbone wrote:
> [logan at localhost filesystems]$ cat /proc/mounts
> rootfs / rootfs rw 0 0
> /dev/root / xfs rw,noatime 0 0
> none /proc proc rw 0 0
> none /sys sysfs rw 0 0
> none /dev tmpfs rw 0 0
> none /dev/pts devpts rw 0 0
> none /dev/shm tmpfs rw 0 0
> none /dev/shm tmpfs rw 0 0
> /dev/hdb1 /shared ext3 rw,nosuid,nodev,noatime,data=ordered 0 0
>
> [logan at localhost filesystems]$ ls -l /dev/root
> ls: /dev/root: No such file or directory
>
> [logan at localhost filesystems]$ ls -l /dev/hda2
> brw-r----- 1 root disk 3, 2 Oct 23 16:10 /dev/hda2
>
> So alas, I have no /dev/root -- could this be a udev configuration
> issue? Although I do have:
>
> KERNEL=="root", GROUP="disk", MODE="0640"
>
> in my udev rules.
That won't work as the kernel don't create block devices with the name
'root'. It will also fail miserably if just one driver creates a class
device with that name; doesn't even need to be a block device.
You have to fix your initramfs as that is the one that creates
the /dev/root symlink which, I suspect, is nuked when you transition
into real user space. Some distributions get around this with
essentially
mount --move /dev /sysroot/dev
before transitioning into real user space. YMMV though.
Bottom line is that you need /dev/root (or whatever comes before "/" and
isn't "rootfs" in /proc/mounts) to exist as it is referenced
in /proc/mounts. You could also just change your initramfs to not
use /dev/root but instead use the right device file.
> I would like to reiterate though, that hda2's volume.mount_point is
> currently working fine and defined as '/', but the fuse patch has not
> been applied to our udev 0.5.8.1.
So 0.5.8.1 somehow masked the problem that you're not doing the right
thing in early user space. Just because that's not true anymore doesn't
mean it's a HAL bug :-)
David
More information about the hal
mailing list