使用差异化,又名覆盖,又名联合,具有提交能力的文件系统

mmo*_*nem 3 filesystems usb mount flash-memory

我在两台 PC 上工作,并将所有文件从主 PC 同步到 USB 闪存。在我的第二台 PC 上,我将 USB 闪存安装到与在主 PC 上处理文件相同的路径上。

现在为了性能和闪存寿命,我需要使用任何类型的差异,又名覆盖,又名联合,文件系统(如 unionfs 或 aufs)让我将 USB 闪存盘用作只读和写入更改到临时目录,最后允许我立即将更改写回 USB 闪存。

有什么帮助吗?有希望吗?

更新:

感谢您的所有回答和评论。我对 Linux 感兴趣,我的问题是:上述任何文件系统是否允许在需要时将写入提交到较低的文件系统?如果是,如何?

eph*_*ent 5

有一个名为“snapshot-merge”的新 dm 目标。

如果您将 USB 闪存格式化为 LVM 物理卷,然后在逻辑卷中找到所需的文件系统,您可以

  1. 在本地磁盘上激活包含 USB 闪存和另一个 LVM 物理卷的卷组。
  2. 在本地磁盘上创建逻辑卷的快照。
  3. 挂载快照,用它做任何你想做的事,然后卸载它。
  4. 将快照合并回原点。

这应该接近您所要求的,尽管它需要一个暂存块设备而不是一个临时目录。


根据需要替换 {括号} 中的部分。

# USB 驱动器的初始设置。
pvcreate /dev/{USB}
vgcreate {removable} /dev/{USB}
lvcreate -n {base} -l 100%PVS {removable} /dev/{USB}
mkfs -t {fs} {...} /dev/mapper/{removable}-{base}
# 暂存设备的初始设置。
pvcreate /dev/{SCRATCH}
# 安装设备。
vgextend {removable} /dev/{SCRATCH}
lvcreate -s -n {snap} -l 100%ORIGIN /dev/mapper/{removable}-{base} /dev/{SCRATCH}
mount -t {fs} -o {...} /dev/mapper/{removable}-{snap} {MOUNTPOINT}
# 卸载设备。
卸载 {MOUNTPOINT}
lvconvert --merge /dev/mapper/{removable}-{snap}
vgreduce {removable} /dev/{SCRATCH}
vgchange -an {removable}

未经测试,但所有 LVM 命令都有联机帮助页,因此您应该能够从这里弄清楚。vgscan如果在插入 USB 驱动器时未自动检测到卷组,则可能需要在某处进行调用。