要 chroot 到“正常”安装,仅需要挂载常见的 /、/proc、/sys 和 /dev 来执行正常管理任务。
但如何进行所谓的“持久”安装(见这里)?如何在启动过程中模拟“持久”参数(系统如何处理这个问题)?
这个问题可能与如何在持久 LiveUSB 上恢复我的用户名和密码?
(我没有要解决的具体问题,我只是感兴趣。)
答案1
持久性 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
(描述:casper-rw' on '/media/cow
使用循环设备)
3. 将文件系统连接在一起
现在我们准备将两个目录合并在一起
mount -t aufs -o dirs=/media/cow=rw:/media/rootfs=ro unionfs /media/persist_usb
(说明:使用以下命令挂载两个目录的并集奥夫斯(看联合文件系统) 设置/media/persist_usb
为/media/cow
可写和/media/rootfs
只读)
4. 尝试一下
我将把这一步留给你。
5. 清理
一旦你完成了安装(如chrooting)你需要摆脱已经创建的东西。
首先撤消步骤 3:
umount /media/persist_usb
接下来撤消步骤 2。我们可以同时执行两个文件系统:
umount /media/{rootfs,cow}
(说明:卸载/media/rootfs
并/media/cow
)
最后,撤消步骤 1:
rmdir /media/{rootfs,cow,persist_usb}
您对文件系统所做的更改已被保留,现在您可以卸载 USB 驱动器(如果您愿意)。