是否可以以某种方式检查LVM的dm(即dm-0、dm-1、dm-2、dm-3等)的含量?节点?
我之所以问这个问题,是因为我迫切需要从我的Linux系统中恢复大量数据,我想我可以在这些节点中找到它。
(如果我的数据不在其余可见的dm节点中,我将假设我必须雇用一名法医IT技术人员来扫描所有硬盘。)
发布于 2020-08-30 15:14:13
如果您需要知道各个/dev/dm-*节点对应的是什么,dmsetup ls -o blkdevname会告诉您。
如果您需要知道每个dm-X节点涉及哪个物理设备(S),dmsetup ls --tree -o blkdevname应该是有帮助的。
如果您的dmsetup已经足够老到不支持-o blkdevname选项,您可以省略它,然后您将看到(major:minor)表单中的设备编号。只需运行ls -l /dev/dm-*,您将看到设备编号代替major, minor表单中的文件大小。
要识别每个映射的类型,dmsetup table可能会有所帮助。
每个dm-X设备节点的“内容”就是通过映射查看的底层设备(S)的内容。您可以使用file -s /dev/dm-X来尝试和标识文件系统的类型(可能是标签和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由两个线性映射组成。首先(从dm-3的块#0开始)是从块#2048开始线性映射到设备8:1 (块设备,主要数字8,小1= /dev/sda1)的293601280块的延伸。第二个映射从dm-3的第293601280块继续,扩展为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首先。
https://unix.stackexchange.com/questions/607056
复制相似问题