升级后无法挂载RAID

升级后无法挂载RAID

我刚刚将我的盒子升级到 14.04,在启动时我收到一条消息,指出我的 RAID 设备无法自动安装,因此我选择跳过它并在启动后处理它。现在启动, A mount -a 给我:

$ sudo mount -a
[sudo] password for reg: 
mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

mount: wrong fs type, bad option, bad superblock on /dev/md1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

$

而我的 mdadm.conf 看起来像:

$ cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# next line added by reg 09/01/2009
ARRAY /dev/md0 devices=/dev/sdb6,/dev/sdc6
ARRAY /dev/md1 devices=/dev/sdb7,/dev/sdc7
#ARRAY /dev/md2 devices=/dev/sdb8,/dev/sdc8

# definitions of existing MD arrays

# This file was auto-generated on Tue, 08 May 2012 18:26:22 -0700
# by mkconf $Id$
$

只是快速启动 gparted 来检查我的所有驱动器是否都显示出来并且足够公平,我的分区 6 和 7 在驱动器 sdb 和 sdc 上显示得很好。另外,看起来 mdadm 运行得很好:

$ ps ax | grep mdadm
 1945 ?        Ss     0:00 /sbin/mdadm --monitor --pid-file /run/mdadm/monitor.pid --daemonise --scan --syslog
 7869 pts/8    S+     0:00 grep --color=auto mdadm
$

我这里可能有什么问题,我不太明白。

$ dmesg | tail
[ 1437.716819] EXT4-fs (md0): bad geometry: block count 61034935 exceeds size of device (61034912 blocks)
[ 1437.717197] EXT4-fs (md1): mounting ext3 file system using the ext4 subsystem
[ 1437.717422] EXT4-fs (md1): bad geometry: block count 59585077 exceeds size of device (59585056 blocks)
[ 3030.508560] init: nvidia-persistenced main process (21110) terminated with status 1
[ 3757.003367] current rate 16719823 is different from the runtime rate 48000
[ 3757.006356] current rate 10357448 is different from the runtime rate 48000
[ 3850.605129] EXT4-fs (md0): mounting ext3 file system using the ext4 subsystem
[ 3850.605299] EXT4-fs (md0): bad geometry: block count 61034935 exceeds size of device (61034912 blocks)
[ 3850.605585] EXT4-fs (md1): mounting ext3 file system using the ext4 subsystem
[ 3850.605782] EXT4-fs (md1): bad geometry: block count 59585077 exceeds size of device (59585056 blocks)
reg@regDesktopHome:~/semios$

系统日志什么也没说

$ sudo mdadm --detail --scan
mdadm: cannot open /dev/md/127_0: No such file or directory
ARRAY /dev/md1 metadata=0.90 UUID=0abe503f:401d8d09:cd707cc0:bc3f8165
ARRAY /dev/md0 metadata=0.90 UUID=91e560f1:4e51d8eb:cd707cc0:bc3f8165
reg@regDesktopHome:~/semios$

编辑1

$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb6[1] sdc6[0]
      244139648 blocks [2/2] [UU]

md1 : active raid1 sdb7[1] sdc7[0]
      238340224 blocks [2/2] [UU]

md127 : active raid1 sdb3[1] sdc3[0]
      390628416 blocks [2/2] [UU]

unused devices: <none>
$ 

$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 0.90
  Creation Time : Tue Sep  1 19:15:33 2009
     Raid Level : raid1
     Array Size : 244139648 (232.83 GiB 250.00 GB)
  Used Dev Size : 244139648 (232.83 GiB 250.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Sun May  4 21:32:24 2014
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : 91e560f1:4e51d8eb:cd707cc0:bc3f8165
         Events : 0.75007

    Number   Major   Minor   RaidDevice State
       0       8       38        0      active sync   /dev/sdc6
       1       8       22        1      active sync   /dev/sdb6
reg@regDesktopHome:~/semios$ sudo mdadm --detail /dev/md1
/dev/md1:
        Version : 0.90
  Creation Time : Tue Sep  8 21:19:15 2009
     Raid Level : raid1
     Array Size : 238340224 (227.30 GiB 244.06 GB)
  Used Dev Size : 238340224 (227.30 GiB 244.06 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Sun May  4 21:32:24 2014
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : 0abe503f:401d8d09:cd707cc0:bc3f8165
         Events : 0.3973383

    Number   Major   Minor   RaidDevice State
       0       8       39        0      active sync   /dev/sdc7
       1       8       23        1      active sync   /dev/sdb7
$ 

$ sudo mdadm --examine /dev/sdb6
/dev/sdb6:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 91e560f1:4e51d8eb:cd707cc0:bc3f8165
  Creation Time : Tue Sep  1 19:15:33 2009
     Raid Level : raid1
  Used Dev Size : 244139648 (232.83 GiB 250.00 GB)
     Array Size : 244139648 (232.83 GiB 250.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0

    Update Time : Sun May  4 21:32:24 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : bfa701ff - correct
         Events : 75007


      Number   Major   Minor   RaidDevice State
this     1       8       22        1      active sync   /dev/sdb6

   0     0       8       38        0      active sync   /dev/sdc6
   1     1       8       22        1      active sync   /dev/sdb6
reg@regDesktopHome:~/semios$ sudo mdadm --examine /dev/sdb7
/dev/sdb7:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 0abe503f:401d8d09:cd707cc0:bc3f8165
  Creation Time : Tue Sep  8 21:19:15 2009
     Raid Level : raid1
  Used Dev Size : 238340224 (227.30 GiB 244.06 GB)
     Array Size : 238340224 (227.30 GiB 244.06 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1

    Update Time : Sun May  4 21:32:24 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 2a7376fd - correct
         Events : 3973383


      Number   Major   Minor   RaidDevice State
this     1       8       23        1      active sync   /dev/sdb7

   0     0       8       39        0      active sync   /dev/sdc7
   1     1       8       23        1      active sync   /dev/sdb7
reg@regDesktopHome:~/semios$ sudo mdadm --examine /dev/sdc6
/dev/sdc6:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 91e560f1:4e51d8eb:cd707cc0:bc3f8165
  Creation Time : Tue Sep  1 19:15:33 2009
     Raid Level : raid1
  Used Dev Size : 244139648 (232.83 GiB 250.00 GB)
     Array Size : 244139648 (232.83 GiB 250.00 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0

    Update Time : Sun May  4 21:32:24 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : bfa7020d - correct
         Events : 75007


      Number   Major   Minor   RaidDevice State
this     0       8       38        0      active sync   /dev/sdc6

   0     0       8       38        0      active sync   /dev/sdc6
   1     1       8       22        1      active sync   /dev/sdb6
reg@regDesktopHome:~/semios$ sudo mdadm --examine /dev/sdc7
/dev/sdc7:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 0abe503f:401d8d09:cd707cc0:bc3f8165
  Creation Time : Tue Sep  8 21:19:15 2009
     Raid Level : raid1
  Used Dev Size : 238340224 (227.30 GiB 244.06 GB)
     Array Size : 238340224 (227.30 GiB 244.06 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1

    Update Time : Sun May  4 21:32:24 2014
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 2a73770b - correct
         Events : 3973383


      Number   Major   Minor   RaidDevice State
this     0       8       39        0      active sync   /dev/sdc7

   0     0       8       39        0      active sync   /dev/sdc7
   1     1       8       23        1      active sync   /dev/sdb7
$ 

$ sudo parted /dev/sdb unit mib print free
Model: ATA ST31000528AS (scsi)
Disk /dev/sdb: 953870MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start      End        Size       Type      File system     Flags
 1      0.03MiB    95370MiB   95370MiB   primary   ext4            boot
 3      95370MiB   476843MiB  381473MiB  primary   ext4
 2      476843MiB  953859MiB  477016MiB  extended
 6      476843MiB  715261MiB  238418MiB  logical   ext3
 7      715261MiB  948015MiB  232754MiB  logical   ext3
 5      948015MiB  953859MiB  5844MiB    logical   linux-swap(v1)
        953859MiB  953870MiB  10.3MiB              Free Space

reg@regDesktopHome:~/semios$ sudo parted /dev/sdc unit mib print free
Model: ATA ST31000528AS (scsi)
Disk /dev/sdc: 953870MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start      End        Size       Type      File system     Flags
 1      0.03MiB    95370MiB   95370MiB   primary   ext4            boot
 3      95370MiB   476843MiB  381473MiB  primary   ext4
 2      476843MiB  953859MiB  477016MiB  extended
 6      476843MiB  715261MiB  238418MiB  logical   ext3
 7      715261MiB  948015MiB  232754MiB  logical   ext3
 5      948015MiB  953859MiB  5844MiB    logical   linux-swap(v1)
        953859MiB  953870MiB  10.3MiB              Free Space

$

编辑2

我尝试了建议的方法,但我的文件系统无法安装:

# sudo losetup --find --show --read-only /dev/sdc7 /dev/loop0
# mount -o ro /dev/loop0 /mnt/loop0 mount: unknown filesystem type 'linux_raid_member'
#

编辑3 file -s /dev/loop0返回给我以下内容:

$ sudo file -s /dev/loop0
[sudo] password for reg: 
/dev/loop0: Linux rev 1.0 ext3 filesystem data, UUID=b2d66029-eeb9-4e4a-952c-0a3bd0696159 (large files)

答案1

错误的几何结构:块计数 61034935 超出设备大小(61034912 块)

根据这些错误信息,看来你的RAID缩小了几个块;考虑到0.90元数据位于分区的末尾,而ext3元数据位于分区的开头,因此这是一个不寻常的问题,因此分区大小本身不能更改,因为任何一端的更改都会导致元数据丢失。

我无法想象这是怎么发生的;为了故意以这种方式破坏事情,您必须执行一些操作,例如resize2fs在成员磁盘上而不是 RAID 本身上运行;或者一开始就没有 RAID,然后才添加它作为事后的想法。

由于它RAID1和 raid 元数据位于磁盘的末尾,因此您应该能够直接挂载任一磁盘。测试这一点的一个简单方法是使用只读循环设备。如果文件系统也没有有缺陷/脏的超级块,则应该这样做:

# losetup --find --show --read-only /dev/sdc7
/dev/loop4
# mount -o ro /dev/loop4 /mnt/test

如果可行并且文件完好无损,那么这将是备份的好时机。

如果文件系统fsck也需要,最安全的方法是使用映像dd复制整个分区。fsck

# dd if=/dev/sdc7 of=/mnt/ext/sdc7.img bs=1M
# losetup --find --show /mnt/ext/sdc7.img
/dev/loop5
# fsck /dev/loop5
# mount /dev/loop5 /mnt/test

如果可行,您也许可以使用以下步骤修复 RAID:

  1. 删除另一个驱动器:

    # mdadm /dev/md0 --fail /dev/sdb7
    # mdadm /dev/md0 --remove /dev/sdb7
    
  2. 修复剩余驱动器上的文件系统并调整其大小。块大小取自您提供的错误消息

    # fsck /dev/sdc7
    # resize2fs /dev/sdc7 61034912
    # sync
    
  3. 测试是否有效

    # echo 3 > /proc/sys/vm/drop_caches
    # mount /dev/md0 /mnt/somewhere
    
  4. 读取并重新同步另一个驱动器

    # mdadm /dev/md0 --add /dev/sdb7
    

但是,您可能会考虑使用当前元数据 ( ) 从头开始​​重新创建 RAID 1.2,并重新创建文件系统并将文件复制回其中。

相关内容