将分区安装到“沙箱”中

将分区安装到“沙箱”中

我想知道这是否可能。我想设置一个Linux系统,将/远程Linux机器安装到/本地机器上。但是,我希望本地计算机上的所有更改都保存到内存中,这样就不会影响远程计算机。理想情况下,这些更改永远不会被写入,这样当我重新启动时,它会/再次安装原始分区,而忽略上一个会话期间所做的所有更改。

这样的事情可能吗?

答案1

使用 联盟,奥夫斯(两者都是内核的外部补丁)或联合文件保险丝/函数(使用 FUSE)并通过将外部 / 标记为 RO 和内部文件系统(安装为 tmpfs/ramfs/每次都会清理的附加分区)来创建联合。

或者,您可以将文件系统或 LVM 与快照结合使用。然后写入更改,但您可以在每次启动时清理快照。

答案2

有几种方法可以解决这个问题。最简单的设置是使用联合文件系统,它提供两个目录树 A 和 B 的单一视图,以便所有更改都保存到 B。在您的情况下,A 将是 NFS/Samba/sshfs/… 挂载点, B 最初是 tmpfs 文件系统上的空目录。

Linux 没有内核内联合文件系统,但有几个保险丝实施:函数,Unionfs熔断器

答案3

如果 / 适合本地计算机的 RAM 并为运行应用程序留出足够的空间,基本思想可能是在目标计算机上启动一个最小的 Linux 系统,然后自动创建一个 ramfs 虚拟磁盘,将 / 从远程复制到其中,然后chroot 到这个新的 / 中。如果 RAM 不够,您基本上可以遵循相同的过程,但不使用 ramfs,而是使用真实的磁盘分区,在复制之前必须清除其内容。除了清除和完整复制之外,您还可以使用 rsync 和适当的选项。

答案4

通过 PXE 启动,这可以非常容易地归档。我正在通过 pxe tftp nfs 启动运行实时 xbmc 系统。更改通过 COW 写入 NFS 共享。

相关内容