对于操作系统项目,我正在创建 ext2 文件系统映像并安装它。这意味着我正在写出一个包含块信息的 1 MB 文件,然后将其用作挂载目标。
例如,假设有一个名为base.img
:
fsck.ext2 base.img # checking my file system
mkdir mnt
sudo mount -o loop base.img mnt
挂载成功后,内部发生了什么?根据我的理解,我base.img
只是正确初始化图像。在内部,这些是我的问题:
- 现在是否存在带有此文件系统的驱动器分区?
- 如何管理文件系统的更改?
对于第二个,根据我的理解,存在一个“挂载表”,也许ext2
Linux 将使用一个模块来进行进一步的更改。这些更改是否会反映在其中,base.img
或者现在是否有新的磁盘分区?
我的根本问题是:这一切是如何工作的,特别是在不同的实现和模糊性的情况下?
答案1
mount -o loop base.img mnt
用途循环设备使其base.img
可用作块设备,并将该块设备安装在 下mnt
。磁盘上没有新分区;对的所有更改mnt
都存储在base.img
.
如果base.img
包含 ext2 文件系统,其内容确实将由内核的 ext2 驱动程序。