[Unionfs] UnionFS as root filesystem
Francesco Carsana
francescocarsana at ds4.it
Wed Mar 15 12:12:51 EST 2006
Tomas M wrote:
> > mount -o dirs=/mnt/hda1=ro:/mnt/hda2=rw unionfs /mnt/hda2
>
> That mount command is wrong, at first, leftmost branch must be
> writable, not ro.
> I don't know if you can overmount the directory used in unionfs as a
> branch,
> I believe that the result is undefined and you should not do that.
>
> Tomas
I'm working with Knoppix 3.7 (Kernel 2.4.27) and UnionFS 1.0.14.
I must use kernel 2.4.27 because it's necessary for other purposes
(RTLinux...)
My linuxrc is like this:
#!/bin/sh
set -x
export PATH=.:/:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
mount -t proc /proc /proc
mkdir -p /mnt
mkdir -p /mnt/hda2
mount -nt ext3 -o rw /dev/hda2 /mnt/hda2
mkdir -p /mnt/hda1
mount -nt ext3 -o ro /dev/hda1 /mnt/hda1
mkdir -p /mnt/union
modprobe unionfs
mount -t unionfs -o dirs="/mnt/hda2=rw:/mnt/hda1=ro" unionfs /mnt/union
cd /mnt/union
mkdir -p initrd
pivot_root . initrd
exec chroot . /sbin/init <dev/console >dev/console 2>&1
And grub's menu.lst is:
title Debian GNU/Linux, kernel 2.4.27 (Safe Mode)
kernel (hd0,0)/boot/vmlinuz-2.4.27 rw root=/dev/hda2
init=/etc/init ramdisk_size=100000 lang=us
screen=1280x1024 vga=0x31B nomce apm=power-off
initrd (hd0,0)/boot/roinitrd.img.gz
savedefault
boot
If I write "/bin/bash" insted of "/sbin/init" in the last life of linuxrc,
I obtain the root filesystem that I want (union between hda1 and hda2) but
the init process doesn't start, so I think that pivot root works well...
If I leave "/sbin/init" the init process remount /dev/hda2 as root
filesystem
(hda2 is a clean ext3 partition) and obviously can't find /sbin/init.
Infact the kernel prints these messages:
Usage: init 0123456SsQqAaBbCcUu
VFS: Mounted root (ext3 filesystem).
Trying to move old root to /initrd ... okay
Freeing unused kernel memory: 144k freed
Warning: unable to open an initial console.
Kernel panic: No init found. Try passing init= option to kernel
More information about the unionfs
mailing list