以读写方式挂载 squashfs 文件系统

以读写方式挂载 squashfs 文件系统

我在 U 盘上安装了 Clonezilla,我想对操作系统进行一些修改。具体来说,我想插入一个可运行的脚本,/usr/sbin以便轻松运行我自己的备份命令,从而减轻备份的痛苦。

主文件系统位于/live/filesystem.squashfsUSB 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.squashfs到 USB 驱动器上现有的文件上,例如:

cp filesystem.squashfs /mnt/clonezilla/live/

然后重新启动并使用您的 LIVE USB。


1:查阅手册了解您可以通过、点赞-b 4M -comp lz4-comp xz -Xbcj x86的其他选项

答案2

如果您的系统支持某些 uion 文件系统,例如奥夫斯或者覆盖文件系统,您不必提取原始的 squashfs 文件。

例如覆盖文件系统使用(启用它的内核选项):您可以将您的squashfs.file安装到/调频或者先去别的地方。准备一个可写文件系统,其中包含 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

这是一个基于 Martian2020 答案的脚本,可以使用 overlayfs 来完成此操作。我正在创建一个 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

相关内容