我刚刚将我的盒子升级到 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:
删除另一个驱动器:
# mdadm /dev/md0 --fail /dev/sdb7 # mdadm /dev/md0 --remove /dev/sdb7
修复剩余驱动器上的文件系统并调整其大小。块大小取自您提供的错误消息
# fsck /dev/sdc7 # resize2fs /dev/sdc7 61034912 # sync
测试是否有效
# echo 3 > /proc/sys/vm/drop_caches # mount /dev/md0 /mnt/somewhere
读取并重新同步另一个驱动器
# mdadm /dev/md0 --add /dev/sdb7
但是,您可能会考虑使用当前元数据 ( ) 从头开始重新创建 RAID 1.2
,并重新创建文件系统并将文件复制回其中。