![Ubuntu 14.04 软件 RAID 1-md0 不活动](https://linux22.com/image/673519/Ubuntu%2014.04%20%E8%BD%AF%E4%BB%B6%20RAID%201-md0%20%E4%B8%8D%E6%B4%BB%E5%8A%A8.png)
我的根文件系统位于 /dev/sdc 上,并且有一个跨越 /dev/sda 和 /dev/sdb(我认为)的软件 RAID 1。我今天物理移动了我的计算机并运行了软件更新(这两个都可能是罪魁祸首),然后注意到我的 RAID 阵列不再可用。我看到 mdadm 已将其标记为非活动状态,但我不确定为什么。我也无法挂载它。我看到了其他建议,但没有一个与我的情况完全一样,我担心会丢失数据。
我没有编辑任何配置文件,并且此配置以前可以正常工作(除了 RAID 没有自动安装,但这并没有给我带来太多困扰)。
编辑:我还应该提到,我最初在构建机器时尝试设置软件 RAID,但出了点问题,我想我意外地破坏了 RAID 上的数据,所以我设置了另一个软件 RAID,并且从那时起就一直在使用它。我相信这就是这两条记录的原因。现在我看了一下,似乎我的数据甚至可能没有在两个驱动器上镜像?只是两个单独的 RAID 1 分别位于一个驱动器上?
编辑2:看起来 /dev/sdb 是我想要的基于今天更新时间的 RAID 配置,而由 /dev/sda1 和 /dev/sdb1 组成的 RAID 是我构建时更新时间为二月份的旧配置。
猫/proc/mdstat
root@waffles:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : inactive sda1[0](S)
976630488 blocks super 1.2
md0 : inactive sdb[1](S)
976631512 blocks super 1.2
unused devices: <none>
mdadm --examine --scan --config=/etc/mdadm/madadm.conf
root@waffles:~# mdadm --examine --scan --config=/etc/mdadm/madadm.conf
ARRAY /dev/md/0 metadata=1.2 UUID=dd54a7bd:15442724:ffd24430:0c1444b3 name=waffles:0
ARRAY /dev/md/0 metadata=1.2 UUID=047187c2:2a72494b:57327e8e:7ce78e9c name=waffles:0
猫/etc/mdadm/mdadm.conf
root@waffles:~# 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
# definitions of existing MD arrays
#ARRAY /dev/md/0 metadata=1.2 UUID=047187c2:2a72494b:57327e8e:7ce78e9c name=waffles:0
# This file was auto-generated on Fri, 20 Feb 2015 10:00:12 -0500
# by mkconf $Id$
ARRAY /dev/md0 metadata=1.2 name=waffles:0 UUID=dd54a7bd:15442724:ffd24430:0c1444b3
猫/ proc /安装
root@waffles:~# cat /proc/mounts
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=16379004k,nr_inodes=4094751,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=3278828k,mode=755 0 0
/dev/disk/by-uuid/28631011-e1c9-4152-85b6-82073656a9ee / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
none /sys/fs/cgroup tmpfs rw,relatime,size=4k,mode=755 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
none /run/user tmpfs rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755 0 0
none /sys/fs/pstore pstore rw,relatime 0 0
systemd /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,name=systemd 0 0
/home/todd/.Private /home/todd ecryptfs rw,nosuid,nodev,relatime,ecryptfs_fnek_sig=b12c61ee79f0f7fc,ecryptfs_sig=2b32246c98b2f7ca,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0
猫/etc/fstab
root@waffles:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdc1 during installation
UUID=28631011-e1c9-4152-85b6-82073656a9ee / ext4 errors=remount-ro 0 1
# swap was on /dev/sdc5 during installation
#UUID=d662ea5e-38f3-4a71-8a56-fa658c32b2eb none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
挂载 /dev/md0 /media/raid1/
root@waffles:~# mount /dev/md0 /media/raid1/
mount: /dev/md0: can't read superblock
grep ‘md0’ /var/log/syslog
root@waffles:~# grep 'md0' /var/log/syslog
Dec 21 13:50:16 waffles kernel: [ 1.043320] md/raid1:md0: active with 2 out of 2 mirrors
Dec 21 13:50:16 waffles kernel: [ 1.043327] md0: detected capacity change from 0 to 1000070512640
Dec 21 13:50:16 waffles kernel: [ 1.050982] md0: unknown partition table
Dec 21 14:20:16 waffles mdadm[1921]: DeviceDisappeared event detected on md device /dev/md0
Dec 21 14:32:26 waffles mdadm[2426]: DeviceDisappeared event detected on md device /dev/md0
Dec 21 14:37:17 waffles kernel: [ 302.004127] EXT4-fs (md0): unable to read superblock
Dec 21 14:37:17 waffles kernel: [ 302.004198] EXT4-fs (md0): unable to read superblock
Dec 21 14:37:17 waffles kernel: [ 302.004244] EXT4-fs (md0): unable to read superblock
Dec 21 14:37:17 waffles kernel: [ 302.004294] FAT-fs (md0): unable to read boot sector
Dec 21 14:45:26 waffles mdadm[1917]: DeviceDisappeared event detected on md device /dev/md0
Dec 21 15:38:31 waffles kernel: [ 3190.749438] EXT4-fs (md0): unable to read superblock
Dec 21 15:38:31 waffles kernel: [ 3190.749609] EXT4-fs (md0): unable to read superblock
Dec 21 15:38:31 waffles kernel: [ 3190.749679] EXT4-fs (md0): unable to read superblock
Dec 21 15:38:31 waffles kernel: [ 3190.749749] FAT-fs (md0): unable to read boot sector
mdadm --检查 /dev/sda1
root@waffles:~# mdadm --examine /dev/sda1
/dev/sda1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 047187c2:2a72494b:57327e8e:7ce78e9c
Name : waffles:0 (local to host waffles)
Creation Time : Thu Feb 12 15:43:00 2015
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
Array Size : 976630336 (931.39 GiB 1000.07 GB)
Used Dev Size : 1953260672 (931.39 GiB 1000.07 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 0b0a69b7:3c3900c0:6e26b3e4:91155d98
Update Time : Fri Feb 20 09:36:16 2015
Checksum : 9bfb3aa - correct
Events : 27
Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing)
mdadm --检查 /dev/sdb1
root@waffles:~# mdadm --examine /dev/sdb1
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 047187c2:2a72494b:57327e8e:7ce78e9c
Name : waffles:0 (local to host waffles)
Creation Time : Thu Feb 12 15:43:00 2015
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
Array Size : 976630336 (931.39 GiB 1000.07 GB)
Used Dev Size : 1953260672 (931.39 GiB 1000.07 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 2fdaaf8c:30d5c44e:893f9a5a:11d8170c
Update Time : Fri Feb 20 09:36:16 2015
Checksum : 576cfb5c - correct
Events : 27
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
mdadm --检查 /dev/sdb(考虑到这里的更新时间,我想这是我关心的)
root@waffles:~# mdadm --examine /dev/sdb
/dev/sdb:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : dd54a7bd:15442724:ffd24430:0c1444b3
Name : waffles:0 (local to host waffles)
Creation Time : Fri Feb 20 10:03:33 2015
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953263024 (931.39 GiB 1000.07 GB)
Array Size : 976631360 (931.39 GiB 1000.07 GB)
Used Dev Size : 1953262720 (931.39 GiB 1000.07 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : f2e16155:49caff6d:d13115a6:379d2fc8
Update Time : Mon Dec 21 13:14:19 2015
Checksum : d5017b27 - correct
Events : 276
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
有什么建议可以重新安装吗?可以移动时可能会出现驱动器故障,但我在移动计算机时很小心,并且看到其他人已经在软件中解决了类似的问题。
答案1
您的系统相当令人困惑。 /dev/sdb
(整个卷)和/dev/sdb1
(该卷上的第一个分区)都被检测为 RAID 设备。这让操作系统感到困惑,它正在创建两个 RAID 阵列:/dev/md0
是一个由 组成的降级 RAID 1 阵列/dev/sdb
,并且/dev/md127
是一个由 组成的降级 RAID 1 阵列/dev/sda1
。由于它们已降级,因此操作系统不会自动启动它们。
从中恢复的第一步是进行卷级备份(dd if=/dev/sda
,dd if=/dev/sdb
),这样如果出现问题,您的情况不会比现在更糟。
完成后,您可以以只读模式激活阵列:mdadm --run --readonly /dev/md0
;mdadm --run --readonly /dev/md127
,安装磁盘,并查看每个磁盘包含的内容。
假设您/dev/sdb
使用的 RAID 阵列是正确的,下一步就是弄清楚它使用什么作为 RAID 阵列的第二个卷:元数据清楚地表明,当您关闭它时,它是一个双磁盘 RAID 1 阵列,两个磁盘都存在。
如果您无法弄清楚,或者不想使用缺失的部分,并且您正确地知道它/dev/sda1
不包含任何重要内容,则下一步是将其添加到/dev/md0
:
md
为了安全起见,请清除分区表和元数据:dd if=/dev/zero of=/dev/sda bs=1M count=1024
- 将其添加到阵列:
mdadm --manage /dev/md0 --add /dev/sda
并让阵列重建。
最后一步是清除md
上的超级块/dev/sdb1
。根据mdadm
手册页,mdadm --zero-superblock /dev/sdb1
可以工作,但由于超级块是里面一个现有的数组,我对实际执行此操作感到非常紧张。