J'essaie de créer une nouvelle image ISO à utiliser sur une clé USB. J'ai partitionné ma clé USB en 2 partitions, une vfat
et une ext4
. La partition vfat
contient les images ISO et GRUB2
, de telle sorte que GRUB2
initialise l'image ISO.
La partition ext4
porte l'étiquette de volume casper-rw
et est utilisée comme magasin de données persistant pour Live USB. J'ai modifié le grub.cfg
de telle sorte que je reçoive deux options au démarrage, une pour démarrer l'ISO en mode persistant et une pour démarrer normalement.
Toutefois, lors du démarrage en mode "normal", la partition casper-rw
est montée en tant que lecteur normal et les modifications apportées en mode persistant ne sont pas conservées.
Ce que j'aimerais, c'est que la partition casper-rw soit montée superposée sur le système de fichiers /
, mais lorsque je demande à Ubuntu de démarrer normalement (c'est-à-dire sans l'option persistent
de GRUB2
), J'aimerais que cette partition soit montée en lecture seule afin que les modifications apportées en mode persistant persistent.
Quel est le meilleur moyen d'y parvenir?
Ce que j'ai fait est de modifier le script casper dans initrd.lz.
Le script montera casper-rw en lecture seule, puis le superpose au-dessus de /. Il montera ensuite les fichiers tmpfs par-dessus la superposition.
J'utilise mint btw, pas sûr d'ubuntu, j'espère que ça marche pour vous.
Voici plus de détails:
Editez les scripts/casper, modifiez la fonction setup_unionfs()
. Vous trouvez la fonction modifiée ici .
...
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
...
Remplacez initrd.lz, ou dans mon cas, je viens d'en créer un nouveau.
find . | cpio --quiet -o -H newc | lzma -7 > ../ro-initrd.lz
Ajouter plus d'option de démarrage à syslinux.cfg
append initrd=/casper/ro-initrd.lz file=/cdrom/preseed/linuxmint.seed boot=casper splash -- persistent
Note: J'utilise Mint 16 (x86) et unetbootin.