RAMDISK_ARCHIVE=ramdisk.cpio
#GEN_INIT_CPIO=$(dirname $0)/gen_init_cpio
INITRD_DIR=initrd_content
-MODULES_LIST="virtio virtio_ring virtio_pci virtio_net virtio_net fscache 9pnet 9pnet_virtio 9p aufs"
+MODULES_LIST="virtio virtio_ring virtio_pci virtio_net virtio_net fscache 9pnet 9pnet_virtio 9p aufs overlay"
QEMU_MEMORY="-m 1024"
QEMU_KVM_ENABLE="-enable-kvm"
#QEMU_OUTPUT="-vga cirrus -serial null"
for m in ${MODULES_LIST} ; do
mf=$(find /lib/modules/${KERNEL_VERSION} -name ${m}.ko )
- if [ -n ${mf} ] ; then
- mkdir -p ${INITRD_DIR_ABS}/$(dirname ${mf})
- cp -a ${mf} ${INITRD_DIR_ABS}/${mf#/}
+ if [ -n "${mf}" ] ; then
+ mkdir -p "${INITRD_DIR_ABS}/$(dirname ${mf})"
+ cp -a "${mf}" "${INITRD_DIR_ABS}/${mf#/}"
+ else
+ echo "Module ${m} not found"
fi
done
rm -f /dev/tty
mv /dev/tty-backup /dev/tty
fi
-mount -t 9p -o ro,trans=virtio root /mnt/rootbase
+mount -t 9p -o ro,trans=virtio,version=9p2000.u root /mnt/rootbase
mount -t tmpfs overlay /mnt/overlay
-mount -n -t aufs -o dirs=/mnt/overlay=rw:/mnt/rootbase=ro unionfs ${rootmnt}
+mkdir -p /mnt/overlay/data
+
+echo "Ready to setup overlay"
+#sleep 5
+#/bin/sh
+
+if grep -q aufs /proc/filesystems ; then
+ echo "Using aufs to remap root"
+ mount -n -t aufs -o noxino,noatime,dirs=/mnt/overlay/data=rw:/mnt/rootbase=ro aufs-root ${rootmnt}
+else
+ echo "Using overlay to remap root"
+ mkdir -p /mnt/overlay/work
+ mount -n -t overlay -o upperdir=/mnt/overlay/data,workdir=/mnt/overlay/work,lowerdir=/mnt/rootbase overlay-root ${rootmnt}
+fi
+
mount -n -o move /dev ${rootmnt}/dev
mount -n -o move /sys ${rootmnt}/sys
mount -n -o move /proc ${rootmnt}/proc
-mount -t 9p -o trans=virtio home ${rootmnt}/home
+mount -t 9p -o trans=virtio,version=9p2000.u home ${rootmnt}/home
mount -t tmpfs none ${rootmnt}/root
mount -t tmpfs none ${rootmnt}/tmp
mount -t tmpfs none ${rootmnt}/run
echo "2:23:respawn:/sbin/agetty -n -l \${shell} -o '-l' tty2 38400 linux" >>${rootmnt}/etc/inittab
echo "T0:23:respawn:/sbin/agetty -n -l \${shell} -o '-l' -L ttyS0 9600 xterm" >>${rootmnt}/etc/inittab
+cd ${rootmnt}
+echo "Ready to proceed by pivot_root"
+#sleep 5
+#/bin/sh
+
exec switch_root ${rootmnt} /sbin/init
EOF
rm -rf ${RAMDISK_ARCHIVE} filelist ${INITRD_DIR_ABS}
}
+if [ "$(whoami)" == "root" ] ; then
+ echo "$0: !!! TOO DANGEROUS TO RUN AS ROOT !!!"
+ exit 1;
+fi
+
clean_setup || exit 1
echo "=== setup_initrd_content ==="
setup_initrd_content || exit 1