持久化USB驱动器使用压缩的只读文件系统(squashfs),并在其上覆盖一个可写文件系统层来存储更改的文件。可写文件系统存储在单个文件中(类似于zip文件,但没有压缩-实际上是ext3,但这不重要)
要将所有内容“重新组合”:
- 创建事物将放置的位置。
- 使文件系统看起来像整个文件系统而不是文件(就像它们目前所做的那样)。
- 将文件系统连接在一起。
- 对文件系统进行操作,例如chrooting。
- 清理
我假设USB驱动器被挂载在
/media/usb/
按照以下说明,将此更改为包含您持久安装的目录。
您需要以root身份登录,或在每个命令前加上sudo
。
1. 创建文件夹
需要创建一些文件夹:
/media/rootfs
- 我们将放置只读文件系统的位置
/media/cow
- 可写覆盖层的位置
/media/persist_usb
- 两个文件系统将合并的位置
可以使用以下命令完成:
mkdir /media/{rootfs,cow,persist_usb}
2. 使文件看起来像文件系统
首先是压缩的文件系统
mount -t squashfs -o loop,ro /media/usb/casper/filesystem.squashfs /media/rootfs
(描述:使用squashfs将filesystem.squashfs
文件挂载到/media/rootfs
)
接下来是可写文件系统
mount -o loop,rw /media/usb/casper-rw /media/cow
(描述:使用
loop device将文件
casper-rw'挂载到'/media/cow
)
3. 将文件系统连接在一起
现在我们准备好将这两个目录连接在一起了
mount -t aufs -o dirs=/media/cow=rw:/media/rootfs=ro unionfs /media/persist_usb
(描述:使用
aufs(参见
unionfs)将两个目录的联合挂载到
/media/persist_usb
,其中
/media/cow
可写,
/media/rootfs
只读)
4. 玩耍一下
这一步就留给你了。
5. 清理工作
当你完成了安装过程中的一些有趣操作(比如chrooting),你需要清理掉创建的东西。
首先撤销第三步:
umount /media/persist_usb
下一步是撤销第二步。我们可以同时进行文件系统的操作。
umount /media/{rootfs,cow}
(说明:卸载 /media/rootfs 和 /media/cow)
最后,撤消步骤1:
rmdir /media/{rootfs,cow,persist_usb}
您对文件系统所做的更改已经保存,现在您可以卸载USB驱动器(如果您愿意)。