LVM:如何检查 dm-X 节点的内容?

LVM:如何检查 dm-X 节点的内容?

是否可以以某种方式检查 LVM 的 dm-X(即 dm-0、dm-1、dm-2、dm-3 等)节点的内容?

我这样问是因为我迫切需要从我的 Linux 系统中恢复大量数据,并且我想我可以在这些节点中找到它。

(如果我的数据不在剩余的可见 dm-X 节点中,我想我将不得不雇用一名取证 IT 技术人员以某种方式扫描所有硬盘驱动器。)

答案1

如果你需要知道各个/dev/dm-*节点对应什么,dmsetup ls -o blkdevname会告诉你的。

如果您需要知道每个节点涉及哪些物理设备dm-Xdmsetup ls --tree -o blkdevname应该会有帮助。

如果您的dmsetup年龄足够大,不支持该选项,您可以省略它,然后您将看到表格-o blkdevname中的设备编号。(major:minor)只需运行ls -l /dev/dm-*,您就会在表单中看到设备编号而不是文件大小major, minor

识别每个映射的类型dmsetup table可能会有所帮助。

每个设备节点的“内容”dm-X只是通过映射查看的底层设备的内容。您可以file -s /dev/dm-X尝试识别其中文件系统的类型(可能还有 LABEL 和 UUID)。如果设备上有文件系统,您可以简单地安装它,然后照常访问它 - 假设一切正常。但既然你提到了这个词恢复,我怀疑你有类似磁盘故障的问题,使情况变得更加复杂。

因此,这里有一些提示,以防您在恢复情况下需要它们:

如果发生故障的系统仍在运行,请dmsetup table尽可能在重新启动系统之前尝试获取信息。如果系统已重新启动,则/etc/lvm/backup包含人类可读形式的当前 LVM 配置的备份,并/etc/lvm/archive包含先前每次配置更改之前的多个配置备份。

linear是最简单的映射,它将一段磁盘块映射到其他磁盘设备上的相同大小的段。 LVM 使用linear映射,除非您在创建 LV 时明确指定了更高级的内容(例如条带或镜像)。

例如,如果您运行dmsetup table /dev/dm-3并且它告诉您:

0 293601280 linear 8:1 2048
293601280 209715200 linear 8:1 817891328

这意味着该设备dm-3由两个线性映射组成。首先(从 的块 #0 开始dm-3)是一段 293601280 个块,线性映射到/dev/sda1从块 #2048 开始的设备 8:1(块设备,主设备号 8,次设备 1 = )。第二个映射从 的块#293601280 继续dm-3,持续 209715200 个块,并/dev/sda1从块#817891328 开始线性映射到 。这就是已扩展一次的基本 LVM 逻辑卷在查看时的样子dmsetup table

要将其中包含的文件系统复制dm-3到图像文件或其他设备,您可以运行两个dd命令:(或者ddrescue如果您的磁盘出现故障)

dd if=/dev/sda1 bs=512 skip=2048 count=293601280 >/rescue/image
dd if=/dev/sda1 bs=512 skip=817891328 count=209715200 >>/rescue/image

在正常情况下,这应该完全等同于简单地做

dd if=/dev/dm-3 bs=512 >/rescue/image

首先。

相关内容