Squashfs ändern,

7

Natürlich möchte ich Squashfs nicht wirklich ändern. Was ich jedoch tun möchte, ist, vorhandene Squashfs, eine Reihe von Dateien, zu nehmen und eine neue Squashfs zu erstellen, die mit der alten identisch ist, außer dass die Dateien in der Menge entweder ähnliche Dateien in den Squasfs ersetzen oder nur hinzugefügt werden, wenn es welche gibt keine ähnlichen Dateien.

OK, der letzte Teil klang komisch. Lassen Sie mich ein Beispiel geben:

Es gibt einen Squashfs namens mfs.squash. Darin befindet sich eine Datei ./a/foo. Ich möchte ein neues Squashfs erstellen, das mit dem alten Squashfs identisch ist - außer dass es eine neue Datei gibt a/bund ich diese ./a/foomit einer meiner Spezifikationen überschreibe .

HandyGandy
quelle

Antworten:

7

Montieren Sie die Squashfs:

mkdir /mnt/squishy
mount mfs.sqash /mnt/squishy -t squashfs -o loop

Kopieren Sie die Squashfs an einen anderen Ort:

mkdir /tmp/squooshtacular
find /mnt/squishy -xdev -print0 | cpio -pa0V /tmp/squooshtacular

Kopieren Sie die neuen Dateien an ihren Platz:

cp ./a.foo /tmp/squooshtacular/a.foo

Machen Sie die neuen Squashfs:

mksquashfs /tmp/squooshtacular mfs_with_bbq_sauce.squash
Shawn J. Goff
quelle
1
Ich denke, das sollte lauten:find /mnt/squishy -xdev -print0 | cpio -pd0V /tmp/squooshtacular
fpmurphy
@fpmurphy Warum? -dist nicht erforderlich, da findalle Verzeichnisnamen erstellt werden und es keinen Grund zum Entfernen gibt -a.
Gilles 'SO - hör auf böse zu sein'
Funktionierte nicht für mich ohne die Option -d
fpmurphy