硬盘崩溃后恢复 LVM

硬盘崩溃后恢复 LVM

昨天,我的 LVM 的一个硬盘崩溃了(智能错误)。

机器有以下设置:
- 4 个硬盘
- 1 个分区 Raid10(系统,4*50GB)
- 1 个正常分区(/boot,200MB,sda)
- 1 个分区 LVM2(数据,4*~850GB)
- Ubuntu 10.04 服务器(无头)

现在我的 lvm 不再挂载,Ubuntu 要求我在启动时跳过或手动恢复。当我按 S 时,系统启动,但没有挂载我的 lvm。

现在我的系统分区似乎没有受到影响(/proc/mdstat 看起来和往常一样)/boot 也正常工作。

我现在要尝试的是
- 购买新的硬盘
- 将硬盘集成到我的 lvm 中
- 尝试删除 lvm 的 sda 部分(将其复制到新的 sde,或 lvm 想要的任何内容)
- 执行 raid 操作(我想我会找到如何执行此操作的方法,否则我会提出一个单独的问题)

现在我的问题:
- 如何从 lvm 中删除 sda(删除意味着复制内容并将分区标记为未使用,以便我可以拔下驱动器)?
- 如果我无法正常删除分区,是否有任何工具可以恢复此分区上的文件,以便我可以手动将它们复制到“新”lvm?

感谢您的帮助

编辑:
将解决方案与问题分开

答案1

认为 pvmove 是您正在寻找的命令行...详细信息如下:http://tldp.org/HOWTO/LVM-HOWTO/removeadisk.html

答案2

我不太清楚您的 LVM 是否位于 RAID 之上?如果不是,那么您就无法从 LVM 中获取任何数据。

答案3

电脑现在可以正常工作了。以下是我的详细步骤:
我的 sda(故障驱动器)分区如下所示:
sda1:/boot
sda2:raid10 成员(系统)
sda3:lvm 成员

  • 安装新的替换硬盘
  • dd if=/dev/sda of=/dev/sde(将故障硬盘的内容复制到新硬盘,实际上我在一分钟后按了 ctrl+c,因为我只需要分区表)
  • dd if=/dev/sda1 of=/dev/sde1 (将 /boot 分区复制到新磁盘)
  • vgextend my_volume_group /dev/sde3 (将新磁盘的lvm分区添加到我的lvm)
  • pvmove /dev/sda3(将故障驱动器的数据移动到另一个驱动器)
  • 从我的 raid10 中删除 sda2
  • 更改 fstab 以从 sda1 获取 /boot,而不是通过 uuid(因为这会在更换 hdd 时发生变化)
  • grub-install /dev/sde(因为它是 8.04 的升级版本,所以较新的版本需要 grub2-install)

现在我的 sde 分区如下:
sde1:/boot
sde2:raid 分区(未初始化)
sde3:lvm 分区(已初始化,lvm 再次工作)

我关闭了计算机,更换了硬盘(因此 sde 将是 sda,删除了旧的 sda)并重新启动
一切正常!我甚至不必使用 live cd 来修复 bootloader/其他东西,奇迹般地 sda2 被识别为 raid10 成员并自动初始化!

相关内容