Montando um sistema de arquivos squashfs em leitura-escrita

40

Eu tenho uma instalação do Clonezilla em um pendrive e gostaria de fazer algumas modificações no sistema operacional. Especificamente, gostaria de inserir um script executável no /usr/sbin para facilitar a execução do meu próprio comando de backup para tornar os backups menos dolorosos.

O sistema de arquivos principal vive sob /live/filesystem.squashfs na partição USB FAT-32.

Como posso montar essa leitura / gravação na minha máquina Linux para poder adicionar / remover / alterar arquivos? Estou executando um derivativo do Ubuntu 12.04.

    
por Naftuli Kay 21.06.2013 / 21:57

4 respostas

35

Como root, copie filesystem.squashfs para algum diretório vazio, por exemplo:

cp /mnt/clonezilla/live/filesystem.squashfs /path/to/workdir
cd /path/to/workdir

Descompacte o arquivo e mova-o para outro lugar (para que você ainda o tenha como backup):

unsquashfs filesystem.squashfs
mv filesystem.squashfs /path/to/backup/

Entre em squashfs-root , adicione / modifique de acordo com seu gosto e recrie filesystem.squashfs :

cd /path/to/workdir
mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot

copie o filesystem.squashfs recém-criado sobre o já existente na sua unidade USB, por exemplo:

cp filesystem.squashfs /mnt/clonezilla/live/

depois reinicie e use seu USB LIVE.

Nota: os comandos acima fazem parte de squashfs-tools .

    
por 21.06.2013 / 23:04
4

Se o seu sistema suporta algum sistema de arquivos uion, como aufs ou overlayfs , você não precisa extrair o arquivo squashfs original.

Por exemplo, o overlayfs é usado (uma opção do kernel para ativá-lo): Você pode montar seu squashfs.file em / fm ou em outro lugar primeiro. Prepare um sistema de arquivos gravável com 2 diretórios, digamos / to e / temp . preparar outro diretório gravável / fin para os resultados mesclados. Montá-los juntos como um overlayfs para o seu sistema ---

mount -t overlay -o lowerdir=/fm,upperdir=/to,workdir=/temp overlay /fin

Agora você pode adicionar / modificar arquivos em / fin . Uma vez feito tudo, você pode mksquashfs / fin para um novo arquivo squashfs,

mksquashfs /fin newfile; umount /fin

, depois desmarque / desmonte todos os outros diretórios usados da maneira que desejar.

O squashfs e alguns unionfs são comumente usados para um live-cd .

    
por 09.07.2017 / 08:38
1

Aqui , encontrei outra resposta:

bash# mount dir.sqsh /mnt/dir -t squashfs -o loop
    
por 12.01.2017 / 12:55
0

Usar o overlayfs como mostrado é a melhor maneira de ter o pseudo "squashfs rw"; Isso requer, no entanto, que seja executado em > 4.x kernel (ou ubuntu > 14.x trusty).

Uma solução alternativa quando se está num live cd antigo sem qualquer overlayfs / aufs / unionfs é fazer uso das capacidades do squashfs'own

importante:

 without unsquashfs, so this can be done on low storage system

exemplo:

modifique o diretório "usr" do squashfs

1    mount squashfs_file /mnt

2    cp -a /mnt/usr $HOME  ##modify whatever $HOME/usr as needed

3    mksquashfs /mnt new_squashfs_file -wildcards -e usr

4    mksquashfs $HOME/usr new_squashfs_file -keep-as-directory

5    umount /mnt  # cleanup

a linha 3 cria temporariamente o squashfsfile, excluindo olddir_usr

a linha 4 acrescenta o modificado-usr-dir em new_squashfsfile

"

Espero que ajude

wangj

veja aqui acrescentar squashfs Acrescente ao subdiretório dentro do arquivo squashfs

    
por 02.04.2018 / 13:26