AutoFsck - Technical Review

Phillip Susi psusi at cfl.rr.com
Fri Aug 22 17:07:05 BST 2008


Krzysztof Lichota wrote:
> OK, but how to get to rootfs? In my /proc/mounts it is overmounted on
> "/", so it is not visible. I have tried to mount it in some other
> directory using "mount -t rootfs none /rootfs" but it fails.

You don't mount rootfs, it isn't an fs type.  It simply is the root 
filesystem that the kernel mounts as the root when it loads the 
initramfs into it, and it is either a tmpfs or a ramfs.

> Do you mean I should modify init scripts to do stuff after chroot to
> disk root? I.e. in init on rootfs:
> ...
> mount /dev/sda /root
> chroot /root /sbin/init
> umount /root
> ...do my stuff...

No... the last thing the init scripts do is exec run-init, which does 
the chroot+exec, so there is no returning from there.

I had thought that run-init just mounted the target root filesystem in 
/root and then chrooted into it, but now that I check the source, it 
looks like it does a move mount to overlay it on top of /, so given 
that, it doesn't look like there is a way to escape back to it without 
pivot_root.

So it looks like what you need to do is mount a tmpfs and populate it 
with the binaries ( and other things, like moving /proc, /sys, and /dev 
there ) you need, then pivot_root with it and exec the new shell there, 
which can unmount the old root and fsck it.





More information about the ubuntu-devel mailing list