从 Ubuntu 11.10 升级到 13.04 后 RAID1 阵列丢失

从 Ubuntu 11.10 升级到 13.04 后 RAID1 阵列丢失

我有一个运行良好的 Ubuntu 11.10,其中 / 位于 SSD(/dev/sdc)上,/home 位于软件 RAID1 阵列上,该阵列分别位于 /dev/sda 和 /dev/sdb(相同驱动器)上的两个分区上。这被设置为 SW RAID。主板的 HW RAID 被禁用。
今天,我使用实时 CD 将 11.10 从 11.10 升级到 13.04。我选择了升级现有的 11.10 并保留用户数据的选项。起初,升级后我无法启动。我怀疑安装未能正确更新 sdc 上的 grub,因此我首先尝试通过从实时 CD 启动并安装和使用来修复它boot-repair。由于某些不明原因,此操作无法完成,因此我改为按照此处所述在 sdc 上手动重新安装 grub:http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/之后,Ubuntu 13.04 启动时会显示一个基于文本的登录提示,它不接受我在安装过程中指定的用户名和密码。
然后我再次从 Live CD 安装 13.04,这次选择将现有的 13.04 安装“升级”到 13.04(再次选择保留用户文件等选项)。之后,13.04 可以成功启动到图形登录,让我可以无错误地登录。
现在,唯一剩下的问题是,我的 RAID1 阵列似乎丢失了 :-( 在 sda 上,以前有(按此顺序):

  1. 699GB RAID 成员分区
  2. 约 200GB 未分配空间
  3. 一个 109GB(ext3 或 ext4 - 不记得了)的分区,保存着以前安装的 Ubuntu 的备份。

在 sdb 上,曾经有:

  1. 699GB RAID 成员分区
  2. 一个大约 100GB(ext3 或 ext4 - 不记得了)的分区,保存着我最近安装的 Ubuntu 的备份。
  3. 一个大约 150GB(ext3 或 ext4 - 不记得了)的分区,保存着一些文件。
  4. 一个大约 50GB(ext3 或 ext4 - 不记得了)的分区,保存着一些文件。

现在检查磁盘,几个分区都消失了 - 基本上 sdb 上的所有内容。fdisk -lu现在说(抱歉是丹麦语 - 我希望您可以通过与fdisk您首选语言的输出进行比较来猜出它的意思):

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 hoveder, 63 sektorer/spor, 121601 cylindre, i alt 1953525168 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x000d9c82

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sda1              63  1364496839   682248388+   0  Tom
/dev/sda2   *  1740050432  1953519615   106734592   83  Linux

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 hoveder, 63 sektorer/spor, 121601 cylindre, i alt 1953525168 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x000bf717

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sdb1      1577969664  1869625343   145827840   83  Linux
/dev/sdb2      1869628635  1953520064    41945715   83  Linux
/dev/sdb3      1364494336  1577963519   106734592   83  Linux
/dev/sdb4              63  1364480774   682240356    0  Tom

Partitionstabellens indgange er ikke i diskrækkefølge

Disk /dev/sdc: 120.0 GB, 120034123776 bytes
255 hoveder, 63 sektorer/spor, 14593 cylindre, i alt 234441648 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x0008fd03

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sdc1   *        2048   209295359   104646656   83  Linux
/dev/sdc2       209297406   234440703    12571649    5  Udvidet
/dev/sdc5       209297408   234440703    12571648   82  Linux swap / Solaris

Disk /dev/mapper/ddf1_RAID: 2000.1 GB, 2000131457024 bytes
255 hoveder, 63 sektorer/spor, 243168 cylindre, i alt 3906506752 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 32768 byte / 65536 byte
Diskidentifikation: 0x000d9c82

                 Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/mapper/ddf1_RAID1              63  1364496839   682248388+   0  Tom
Partition 1 starter ikke på en fysisk sektorgrænse.
/dev/mapper/ddf1_RAID2   *  1740050432  1953519615   106734592   83  Linux

Disk /dev/mapper/ddf1_RAID1: 698.6 GB, 698622349824 bytes
255 hoveder, 63 sektorer/spor, 84935 cylindre, i alt 1364496777 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 32768 byte / 65536 byte
Justeringsforskydning: 512 byte
Diskidentifikation: 0xbd223da2

Disk /dev/mapper/ddf1_RAID1 indeholder ikke en gyldig partitionstabel

Disk /dev/mapper/ddf1_RAID2: 109.3 GB, 109296222208 bytes
255 hoveder, 63 sektorer/spor, 13287 cylindre, i alt 213469184 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 32768 byte / 65536 byte
Diskidentifikation: 0x00000000

Disk /dev/mapper/ddf1_RAID2 indeholder ikke en gyldig partitionstabel

跑步blkid说:

/dev/sda: UUID="M-,^[eRM-^FM-^@%:M-,^[eRM-D^[eRM-\^[eRM-^?M-^?M-^?M-^?" TYPE="ddf_raid_member" 
/dev/sdb: UUID="M-,^[eRM-^FM-^@%:M-,^[eRM-D^[eRM-\^[eRM-^?M-^?M-^?M-^?" TYPE="ddf_raid_member" 
/dev/sdc1: UUID="32579810-0388-416d-bb49-7031ac2c2975" TYPE="ext4" 
/dev/sdc5: UUID="b7507355-effd-4dbc-9b4e-0546bca036f4" TYPE="swap" 

我尝试了一下mdadm --examine /dev/sdamdadm --examine /dev/sdb结果显示 sda 的第一部分和所有 sdb 似乎包含 RAID0 成员分区:

/dev/sda:
          Magic : Intel Raid ISM Cfg Sig.
        Version : 1.0.00
    Orig Family : 43d3cf98
         Family : 43d3cf98
     Generation : 00000003
     Attributes : All supported
           UUID : 6792b89b:e5162c11:b694727d:de71f59c
       Checksum : 7a5f4777 correct
    MPB Sectors : 1
          Disks : 2
   RAID Devices : 1

  Disk00 Serial : WD-WMATV3627263
          State : active
             Id : 00000000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

[Volume0]:
           UUID : 4af84c7c:76a536eb:e16d27fb:1a3a90c3
     RAID Level : 0
        Members : 2
          Slots : [UU]
    Failed disk : none
      This Slot : 0
     Array Size : 3907039232 (1863.02 GiB 2000.40 GB)
   Per Dev Size : 1953519880 (931.51 GiB 1000.20 GB)
  Sector Offset : 0
    Num Stripes : 30523744
     Chunk Size : 32 KiB
       Reserved : 0
  Migrate State : idle
      Map State : normal
    Dirty State : clean

  Disk01 Serial : WD-WMATV3628555
          State : active
             Id : 00010000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

/dev/sdb:
          Magic : Intel Raid ISM Cfg Sig.
        Version : 1.0.00
    Orig Family : 43d3cf98
         Family : 43d3cf98
     Generation : 00000003
     Attributes : All supported
           UUID : 6792b89b:e5162c11:b694727d:de71f59c
       Checksum : 7a5f4777 correct
    MPB Sectors : 1
          Disks : 2
   RAID Devices : 1

  Disk01 Serial : WD-WMATV3628555
          State : active
             Id : 00010000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

[Volume0]:
           UUID : 4af84c7c:76a536eb:e16d27fb:1a3a90c3
     RAID Level : 0
        Members : 2
          Slots : [UU]
    Failed disk : none
      This Slot : 1
     Array Size : 3907039232 (1863.02 GiB 2000.40 GB)
   Per Dev Size : 1953519880 (931.51 GiB 1000.20 GB)
  Sector Offset : 0
    Num Stripes : 30523744
     Chunk Size : 32 KiB
       Reserved : 0
  Migrate State : idle
      Map State : normal
    Dirty State : clean

  Disk00 Serial : WD-WMATV3627263
          State : active
             Id : 00000000
    Usable Size : 1953519880 (931.51 GiB 1000.20 GB)

然后我运行mdadm --assemble --scan,现在我有一个 RAID0 阵列。它包含:

  1. 上面提到的 sda 下的三个部分。不幸的是,这里的 699GB 分区(我希望它仍然保存着我原来的 RAID1 阵列的一个副本)和 109GB 分区都无法安装。
  2. 我认为 1TB 的未分配空间对应于 sdb?

任何人都可以:

  1. 帮我找出哪里出了问题?
    • 例如,为什么RAID1成员变成了RAID0成员?
    • sdb 上的分区去哪儿了?
    • 为什么 sda 上的分区中的分区类型丢失了?
  2. 告诉我如何修复它?
    • 没有较小的分区我也可以,但是我真的很想从 RAID1 分区中恢复我的主目录。

答案1

就在我准备放弃的时候,现在我似乎找到了解决办法。

  1. 我跑去parted /dev/sda print识别分区所在的(看似空的)磁盘区域。
  2. 然后我运行后parted /dev/sda rescue 0 699GB发现偏移量为 1083kB 的分区。
  3. parted问我是否要将其添加到分区表中,我回答说是的
  4. parted现在可以看到分区了。
  5. 然后我运行parted /dev/sda unit B print以获取分区的偏移量(以字节为单位),经过反复试验后我发现mount需要这样做。
  6. 我现在可以挂载分区:mount -o loop,ro,offset=1082880 -t ext4 /dev/sda /mnt

现在我可能会将恢复的 RAID1 成员中的数据以及较小分区中的数据复制到另一个硬盘驱动器;彻底擦除/dev/sda/dev/sdb在其上创建新分区;在 RAID1 阵列中组装新分区;最后从备份中复制回数据。

关于出了什么问题:帮助我调查此事的系统管理员说,他们最有可能的猜测是 Ubuntu 升级过程不知何故错误地检测到了来自旧的(不存在的)硬件 RAID 设置而不是实际的软件 RAID 设置的元数据。它可能随后将阵列安装为 RAID0,跨越整个磁盘 /dev/sda 和 /dev/sdb,从而覆盖了跨越两个 ~700GB 分区的实际软件 RAID1 阵列的元数据。

相关内容