我用多个HDD制作了一个LVM。操作系统安装在不同的 SSD 上。我丢失了 SSD。如何从这些 HDD 中恢复 LVM?
答案1
如果发生故障的 SSD 不是卷组的一部分,则该组仍然是完整的:任何配备 LVM 工具的现代 Linux 通常应在启动时检测到磁盘时自动激活卷组。如果您运行sudo vgscan
,它会告诉您它可以看到的任何磁盘上的任何卷组。如果卷组缺少一个(或多个)组件,它会告诉您缺少卷的 LVM UUID。
如果sudo vgscan
没有显示错误,那么只需挂载逻辑卷即可,如果您希望挂载持久,请/etc/fstab
根据需要为它们写入新条目。
如果发生故障的 SSD 也包含在同一卷组中,则 VG 现在将不完整并且不会自动激活,并且sudo vgscan
会报告丢失的物理卷。
要激活这样的部分卷组,您可以使用sudo vgchange -ay --activationmode partial
:将激活至少部分位于剩余磁盘上的所有逻辑卷,但如果逻辑卷部分位于现在丢失的磁盘上,则尝试读取该部分逻辑卷将导致错误。尝试安装缺少部件的 LV 可能会失败。
您可以运行例如sudo lvs -o lv_full_name,lv_health_status
来查看每个 LV 的名称和健康状态。如果LV的“Health”栏中的条目为空,则表示正常;如果显示“部分”,则 LV 的某些部分丢失。要找出缺少哪个部分,您可以使用sudo lvdisplay -m <VG name>/<LV name>
.
现在可以照常安装所有部分都位于 HDD 上的任何逻辑卷。如果您的逻辑卷仅部分位于丢失的磁盘上,则可以使用photorec
或等恢复工具ddrescue
尝试从这些逻辑卷的其余部分恢复数据。
如果您有这样一个部分逻辑卷,并认为其剩余内容不值得恢复,或者您对已恢复的所有内容感到满意,那么您可以使用lvremove
删除部分逻辑卷,然后vgreduce --removemissing <VG name>
告诉 LVM停止记住丢失的物理卷。此后,包含剩余卷的卷组将再次表现得好像故障 PV 从未存在过一样:当检测到完整的 PV 集(即启动时或热插拔时)以及任何剩余的逻辑卷时,它将自动激活卷可以正常安装。