LVM 快照缺少 /dev 和 /proc 树

LVM 快照缺少 /dev 和 /proc 树

我创建了一个 lvm 快照,如下所示:

lvcreate -L 5G -s -n root-snapshot /dev/VolGroup00/LogVol00

然后我像这样挂载快照:

mount /dev/VolGroup00/root-snapshot /mnt/root-snapshot/

现在,当我看到快照中的开发树中的内容时,除了两项之外,几乎所有内容都缺失了:

[root@server1 ~]# ls /mnt/root-snapshot/dev
mapper  VolGroup00

里面什么都没有proc。这是为什么?我知道 proc 是一个虚拟 fs,但是当拍摄快照时,系统正在运行,因此 proc 和 dev 中有很多东西……为什么它们在快照中消失了。

我特别需要:

/dev/console
/dev/initctl
/dev/null
/dev/zero

作为我的备份。

编辑:mount 实际上显示 proc 已安装在 fs 上 / 但 dev 怎么样... mount 没有显示 dev 已安装在 LVM 之外?

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/mapper/VolGroup00-root--snapshot on /mnt/root-snapshot type ext3 (rw)

答案1

它们不是真正的文件系统,也不是您在其上创建快照的根文件系统的一部分。

但是让我们忽略这一点。我猜你问的是 /proc 和 /dev 挂载,因为你想 chroot 到你的快照中?或者备份工具在快照目录中运行?如果是这样,为什么不简单地在挂载快照之外进行绑定挂载呢。

mount /dev/VolGroup00/root-snapshot /mnt/root-snapshot/
mount -o bind /dev/ /mnt/root-snapshot/dev/
mount -o bind /proc/ /mnt/root-snapshot/proc/

当您准备卸载快照时,只需在卸载 /mnt/root-snapshot/dev/ 和 /mnt/root-snapshot/proc/ 之前卸载 /mnt/root-snapshot/

答案2

/proc/dev都是虚拟文件系统,它们根本没有保存在 LVM 卷上(正如的输出mount将确认的那样),因此它们不包含在 LVM 快照中。

两者都是由内核在运行时生成的,因此一开始就不需要备份它们。

答案3

LVM 转储仅包含该特定文件系统上的内容,而不包含任何其他挂载上的内容。/proc 和 /dev 可能是根目录下的挂载文件系统,因此数据不包含在 LVM 中。

您要做的是使用 tar 或 cpio 之类的程序专门备份它们。

顺便说一句,我永远不会备份 /proc 文件系统,因为其中没有任何档案内容,并且您最终可能会得到大量进程内存转储。

相关内容