読み書きモードでsquashfsファイルシステムをマウントする

読み書きモードでsquashfsファイルシステムをマウントする

USBスティックにClonezillaをインストールしましたが、オペレーティングシステムをいくつか修正したいと思います。具体的には、実行可能なスクリプトを挿入して/usr/sbin独自のバックアップコマンドを簡単に実行できるようにすることで、バックアップが苦痛にならないようにしたいと思います。

/live/filesystem.squashfsデフォルトのファイルシステムはUSB FAT-32パーティションの下にあります。

ファイルを追加/削除/変更できるように、Linuxコンピュータにこの読み取り/書き込み機能をインストールするにはどうすればよいですか?私はUbuntu 12.04派生バージョンを実行しています。

答え1

これはあなたがsquashfs-toolsシステムにインストールされます。


filesystem.squashfsたとえば、次のように空のディレクトリにコピーします。

cp /path/to/filesystem.squashfs /path/to/workdir
cd /path/to/workdir

ファイルを解凍して別の場所に移動します(まだバックアップとして保存できます)。

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

入り、squashfs-root好みに合わせて追加/修正して1を filesystem.squashfs再作成してください。

cd /path/to/workdir
mksquashfs squashfs-root filesystem.squashfs

新しく作成したファイルをfilesystem.squashfsUSBドライブの既存のファイルにコピーします。例:

cp filesystem.squashfs /mnt/clonezilla/live/

その後、再起動してLIVE USBを使用します。


1:いいね、いいね-b 4M -comp lz4などの-comp xz -Xbcj x86他のオプションについては、マニュアルを確認してください。

答え2

システムが次の一部のuionファイルシステムをサポートしている場合オブまたはファイルシステムの上書き、元のsquashfsファイルを抽出する必要はありません。

例えばファイルシステムの上書き(これを有効にするカーネルオプション)使用:squashfs.fileをインストールする/ FMまたは最初に別の場所に行きます。 2つのディレクトリを含む書き込み可能ファイルシステムの準備/到着そして/温度。書き込み可能な別のディレクトリの準備/フィンマージされた結果の場合。システムにoverlayfsとしてインストールします---

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

これでファイルを追加/変更できます。/フィン。すべての作業が完了したら、mksquashfsを実行できます。/フィン新しいsquashfsファイルとして、

mksquashfs /fin newfile; umount /fin

その後、必要に応じて使用されている他のすべてのディレクトリを消去またはアンマウントします。

これカボチャのファイルシステム少し残った同盟通常、次の目的で使用されます。ライブCD

答え3

ここ、別の答えを見つけました。

bash# mount dir.sqsh /mnt/dir -t squashfs -o loop

答え4

以下は、overlayfsを使用して実行できるMartian2020の答えに基づいたスクリプトです。簡単に復元できるようにfstabファイルを作成しています。mount -a --fstab

#!/bin/bash
set -eu
src=$(realpath $1)
tgt_dir=$(dirname $(realpath ${2-$src}))
tmp=${2-$(dirname $src)/$(basename --suffix=.squashfs $src)}
tgt_name=$(basename $tmp)
target=$tgt_dir/$tgt_name
workdir=$tgt_dir/.$tgt_name-work
lowerdir=$tgt_dir/.$tgt_name-lower
upperdir=$tgt_dir/.$tgt_name-upper
fstab=$target/fstab
echo $src $target $workdir $lowerdir $upperdir
set -x
mkdir $workdir
mkdir $upperdir
mkdir $lowerdir
mkdir $target
cat > $fstab <<EOT
# This fstab can be used with "sudo mount --fstab $fstab -a" or appended to
# /etc/fstab
$src $lowerdir squashfs loop,ro 0 0
overlay $target overlay lowerdir=$lowerdir,upperdir=$upperdir,workdir=$workdir 0 0
EOT
sudo mount --fstab $fstab -a

関連情報