J'ai une installation Clonezilla sur une clé USB et j'aimerais apporter quelques modifications au système d'exploitation. Plus précisément, j'aimerais insérer un script exécutable dans /usr/sbin
pour faciliter l'exécution de ma propre commande de sauvegarde afin de rendre les sauvegardes moins pénibles.
Le système de fichiers principal vit sous /live/filesystem.squashfs
sur la partition USB FAT-32.
Comment puis-je monter cette lecture/écriture sur ma machine Linux afin de pouvoir ajouter/supprimer/modifier des fichiers? J'utilise un dérivé d'Ubuntu 12.04.
En tant que root, copiez filesystem.squashfs
dans un répertoire vide, par exemple:
cp /mnt/clonezilla/live/filesystem.squashfs /path/to/workdir
cd /path/to/workdir
Décompressez le fichier puis déplacez-le ailleurs (vous l'avez donc toujours en tant que sauvegarde):
unsquashfs filesystem.squashfs
mv filesystem.squashfs /path/to/backup/
Va dans squashfs-root
, ajoutez/modifiez selon votre goût puis recréez filesystem.squashfs
:
cd /path/to/workdir
mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot
copier le nouveau filesystem.squashfs
sur celui existant sur votre clé USB, par exemple:
cp filesystem.squashfs /mnt/clonezilla/live/
puis redémarrez et utilisez votre LIVE USB.
Remarque: les commandes ci-dessus font partie de squashfs-tools
.
Si votre système prend en charge un système de fichiers uion, tel que aufs ou overlayfs, vous n'avez pas besoin d'extraire votre fichier squashfs d'origine.
Par exemple, overlayfs est utilisé (une option du noyau pour l'activer): Vous pouvez monter votre fichier squashfs.file sur /fm ou ailleurs d'abord. Préparez un système de fichiers accessible en écriture contenant 2 répertoires, par exemple /to et /temp . préparer un autre répertoire accessible en écriture /fin pour les résultats fusionnés. Montez-les ensemble en superposition sur votre système ---
mount -t overlay -o lowerdir=/fm,upperdir=/to,workdir=/temp overlay /fin
Vous pouvez maintenant ajouter/modifier des fichiers dans /fin . Une fois tout fait, vous pouvez mksquashfs /fin dans un nouveau fichier squashfs,
mksquashfs /fin newfile; umount /fin
, puis effacez/démontez tous les autres répertoires utilisés comme vous le souhaitez.
Les squashfs et certains nionfs sont couramment utilisés pour un live-cd.
Ici , j'ai trouvé une autre réponse:
bash# mount dir.sqsh /mnt/dir -t squashfs -o loop
Utiliser overlayfs comme indiqué est le meilleur moyen d'avoir des pseudo "squashfs rw"; Il nécessite cependant de fonctionner sur un noyau> 4.x (ou ubuntu> 14.x fidèle).
Une solution alternative lorsque l'on est assis sur un CD live plus ancien sans overlayfs/aufs/unionfs est d'utiliser les capacités de squashfs
Important: Sans unsquashfs, cela peut donc être fait sur un système de stockage faible
Exemple:
Modifier le répertoire "usr" de squashfs
mount squashfs_file /mnt # 1
cp -a /mnt/usr $HOME # 2 Modify whatever $HOME/usr as needed
mksquashfs /mnt new_squashfs_file -wildcards -e usr # 3
mksquashfs $HOME/usr new_squashfs_file -keep-as-directory # 4
umount /mnt # 5 Cleanup
La ligne 3 crée temporairement le fichier squashfs à l'exception de olddir_usr
La ligne 4 ajoute dir-usr-modifié dans new_squashfsfile
Voir ici ajouter squashfs