我创建了一个 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 文件系统,因为其中没有任何档案内容,并且您最终可能会得到大量进程内存转储。