避免在已安装的环回设备上进行写入以进行传播

避免在已安装的环回设备上进行写入以进行传播

我有一个使用 NFS 安装其根文件系统的设备。在我的 NFS 服务器上,我有一个代表设备文件系统的文件,即 target.ext2,我将该文件安装在相应的 /export 目录中。

我希望设备能够在已安装的目录中写入内容,但不希望对其所做的更改传播到 target.ext2 文件。这可能吗?

答案1

抱歉,我之前没有注意到这个问题...尝试使用“扇出”文件系统,它允许您挂载“映像”,然后在不可写映像上覆盖可写文件系统。对驱动器的所有写入都将导致对覆盖文件系统而不是基础映像进行“修改”。 迷你福是一个允许您执行此操作的文件系统。

答案2

如果您愿意重新考虑架构的改变,您应该能够使用逻辑卷而不是环回文件来获得类似的东西。

如果您想尝试一下,首先将您的文件转换为逻辑卷:

lvcreate -n original -L 20G vg0 # assumes 20G size and a valid 'vg0' volume group
dd if=/root/original.loopback of=/dev/vg0/original

然后创建快照:

lvcreate -s -n volatilecopy -L 2G /dev/vg0/original

现在您可以挂载 /dev/vg0/volatilecopy 并在其上“写入”最多 2GB 的内容而不会遇到问题,而 /dev/vg0/original 将保持不变。

然后:

lvremove /dev/vg0/volatilecopy
lvcreate -s -n volatilecopy -L 2G /dev/vg0/original

让您再次回到洁净的状态。

与一遍又一遍复制文件相比,其优点是:它占用更少的空间(只需要额外的空间用于写入)并且速度更快。

答案3

据我所知,缺少一个自定义脚本来从主副本重置图像并重新安装。

您想要允许写入文件夹而不将更改传播回文件系统有什么特殊原因吗?似乎将文件系统设为只读,然后让用户在其他地方写入应保留的更改会更容易。

相关内容