O que eu fiz é modificar o script casper dentro de initrd.lz.
O script montará casper-rw como somente leitura e, em seguida, sobreposto em cima de /. Em seguida, montará o tmpfs no topo da sobreposição.
Eu uso mint btw, não tenho certeza sobre o Ubuntu, espero que funcione para você.
Aqui estão mais detalhes:
- Extraia o initrd usando as instruções de aqui .
-
Edite scripts / casper, modifique a função
setup_unionfs()
. Você encontra a função modificada aqui .... 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 ...
-
Substitua initrd.lz ou, no meu caso, acabei de criar um novo.
find . | cpio --quiet -o -H newc | lzma -7 > ../ro-initrd.lz
-
Adicione mais opções de inicialização a
syslinux.cfg
append initrd=/casper/ro-initrd.lz file=/cdrom/preseed/linuxmint.seed boot=casper splash -- persistent
Nota: eu uso Mint 16 (x86) e unetbootin.