chroot 进入“正常”安装只需要挂载 common /、/proc、/sys 和 /dev 来执行正常的管理任务。
但是如何进行所谓的“持久”安装(请参阅此处)?如何模拟引导过程中的“持久”参数(系统如何处理此问题)?
这个问题可能与如何在持久性 LiveUSB 上恢复我的用户名和密码有关?
(我没有要解决的具体问题,我只是感兴趣。)
持久性 USB 驱动器使用压缩的只读文件系统 (squashfs),并在存储更改文件的顶部覆盖可写文件系统层。可写文件系统存储在单个文件中(就像一个 zip 文件,但没有压缩——它实际上是 ext3,但这并不重要)
把所有东西“重新组合在一起”:
我假设 USB 驱动器安装在
/media/usb/
Run Code Online (Sandbox Code Playgroud)
按照这些说明将其更改为包含持久安装的目录。
您需要是 root 用户,或者sudo在每个命令之前添加
需要创建一些目录:
/media/rootfs - 我们将放置只读文件系统的位置/media/cow - 可写覆盖的位置/media/persist_usb - 两个文件系统将被加入的位置
这可以用
mkdir /media/{rootfs,cow,persist_usb}
首先是压缩文件系统
mount -t squashfs -o loop,ro /media/usb/casper/filesystem.squashfs /media/rootfs
Run Code Online (Sandbox Code Playgroud)
(说明:使用squashfs挂载filesystem.squashfs文件/media/rootfs)
接下来是可写文件系统
mount -o loop,rw /media/usb/casper-rw /media/cow
Run Code Online (Sandbox Code Playgroud)
(说明:casper-rw' on '/media/cow使用循环设备挂载文件)
现在我们准备将两个目录连接在一起
mount -t aufs -o dirs=/media/cow=rw:/media/rootfs=ro unionfs /media/persist_usb
Run Code Online (Sandbox Code Playgroud)
(说明:安装使用两个目录的联合AUFS(见的unionfs)到/media/persist_usb与/media/cow为可写入,/media/rootfs为只读)
我会把这一步留给你。
一旦你完成了安装的乐趣(比如chrooting),你需要摆脱创建的东西。
首先撤消第 3 步:
umount /media/persist_usb
Run Code Online (Sandbox Code Playgroud)
接下来撤消第 2 步。我们可以同时执行两个文件系统:
umount /media/{rootfs,cow}
Run Code Online (Sandbox Code Playgroud)
(说明:卸载/media/rootfs和/media/cow)
最后,要撤消步骤 1:
rmdir /media/{rootfs,cow,persist_usb}
Run Code Online (Sandbox Code Playgroud)
您对文件系统所做的更改已保留,您现在可以卸载 USB 驱动器(如果需要)。
| 归档时间: |
|
| 查看次数: |
3306 次 |
| 最近记录: |