Claro, é possível adicionar diretório ou arquivo a um arquivo squashfs_.
É preciso entender como funciona o mksquashfs: Grosso modo, é incrementalmente adicionar blocos de compressão de dados de maneira semelhante à gravaão do growisofs em dvd; e no final atualizar o TOC, tipo de conteúdo da tabela da imagem. Você não pode "limpar" o diretório antigo, é claro, porque incremental escrever só se preocupa com o futuro e não com o passado !!!!
Mas existe uma maneira muito simples de modificar um arquivo squashfs sem descompactar toda a imagem (que pode ocupar muito espaço no dispositivo de memória RAM ou de armazenamento ... pense na imagem do dvd_iso de 3-5 GB!). A ideia orientadora funciona assim:
1 monte o squashfs_file / mnt (a montagem é muito menor usando armazenamento do que unsquashfs)
2 Re construa squashfs_file, excluindo o diretório para modificar e, em seguida, anexe o novo diretório que desejamos.
Detalhes ex:
-
cp /mnt/specific_dir $home ##modify $home/specific_dir as needed
-
mksquashfs /mnt new_squashfs_file -wildcards -e specific_dir
-
mksquashfs $home/specific_dir new_squashfs_file -keep-as-directory
-
umount /mnt # cleanup
é claro que todas as outras opções para mksquashfs podem ser adicionadas como ususal (tamanho de bloco; esquema de compressão ....- b 1048576 -comp xz ....)
O exemplo mostra uma modificação de diretório para fins de esclarecimento; mas em um rootfs você pode excluir o etc usr ... depois acrescentar o modificado usr do usr no mecanismo de anexação de segunda linha.
Este é o caminho a percorrer se você precisar remasterizar todo um Ubuntu do LiveCD em um Ram 4GB "windows10 laptop" sem tocar na partição original ntfs.
HopeThatHelp, wangji.