I'm trying to create a fresh ISO image for use on a USB stick. I've partitioned my USB stick into 2 partitions, one vfat
and one ext4
. The vfat
partition has the ISO and GRUB2
installed to it, such that GRUB2
boots the ISO.
The ext4
partition has the volume label casper-rw
and is used as the persistent data store for the Live USB. I've modified the grub.cfg
such that I get two options at boot, one to boot the ISO in persistent mode and one to boot normally.
However, when booting in "normal" mode, the casper-rw
partition is mounted as a normal drive and changes made in persistent mode don't stay.
What I would like is the casper-rw partition to be mounted overlaid on the /
filesystem, but when I ask Ubuntu to boot normally (i.e., without the persistent
option in GRUB2
), I'd like that partition to be mounted read-only so that changes made in the persistent mode persist.
What is the best way to achieve this?
What i did is I modify casper script inside initrd.lz.
The script will mount casper-rw as read-only and then on overlay it on top of /.
It will then mount tmpfs on top of the overlay.
I use mint btw, not sure about ubuntu, hope it works for you.
Here are more details:
- Extract initrd using instruction from here.
Edit scripts/casper, modify the
setup_unionfs()
function.
You find the modified function here....
p_ro_mount=""
if [ -n "${PERSISTENT}" ]; then
cowprobe=$(find_cow_device "${root_persistence}")
if [ -b "${cowprobe}" ]; then
p_ro_device=${cowprobe}
p_ro_fstype=$(get_fstype "${cowprobe}")
p_ro_mountopt="ro,noatime"
p_ro_mount="/persistent"
mkdir -p $p_ro_mount
mount -t ${p_ro_fstype} -o ${p_ro_mountopt} \
${p_ro_device} \
${p_ro_mount} || panic "Can not mount"
...
case ${UNIONFS} in
...
overlayfs)
mounts=""
for mount in /cow $p_ro_mount $rofslist
...Replace initrd.lz, or in my case, I just created a new one.
find . | cpio --quiet -o -H newc | lzma -7 > ../ro-initrd.lz
Add more boot option to
syslinux.cfg
append initrd=/casper/ro-initrd.lz file=/cdrom/preseed/linuxmint.seed boot=casper splash -- persistent
Note: I use Mint 16 (x86) and unetbootin.
No comments:
Post a Comment