所以我有一个带有两个硬盘的 RAID 1。一个硬盘出现故障,然后我更换了它,并在这个新硬盘上重新安装了新的 Linux。
现在如果我输入 fdisk -l 我得到:
root@ns354729:/mnt/sdb2# fdisk -l
Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xbb5259be
Device Boot Start End Blocks Id System
/dev/sda1 * 4096 1495042047 747518976 83 Linux
/dev/sda2 1495042048 1496088575 523264 82 Linux swap / Solaris
Disk /dev/sdb: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00025c91
Device Boot Start End Blocks Id System
/dev/sdb1 4096 20975616 10485760+ fd Linux raid autodetect
/dev/sdb2 20975617 1464092672 721558528 fd Linux raid autodetect
/dev/sdb3 1464092673 1465144064 525696 82 Linux swap / Solaris
我想访问第二个硬盘(sdb),所以我尝试像这样挂载 sdb2:
mount /dev/sdb2 /mnt
这说:
root@ns354729:/mnt/sdb2# mount /dev/sdb2 /mnt
mount: block device /dev/sdb2 is write-protected, mounting read-only
mount: you must specify the filesystem type
所以我尝试给出:
mount -t ext4 /dev/sdb2 /mnt
我得到了:
mount: wrong fs type, bad option, bad superblock on /dev/sdb2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
这说:
root@ns354729:/mnt/sdb2# dmesg | tail
ufs_read_super: bad magic number
VFS: Can't find a romfs filesystem on dev sdb2.
UDF-fs: warning (device sdb2): udf_load_vrs: No VRS found
UDF-fs: warning (device sdb2): udf_fill_super: No partition found (2)
XFS (sdb2): Invalid superblock magic number
(mount,18813,1):ocfs2_fill_super:1038 ERROR: superblock probe failed!
(mount,18813,1):ocfs2_fill_super:1229 ERROR: status = -22
GFS2: not a GFS2 filesystem
GFS2: gfs2 mount does not exist
EXT4-fs (sdb2): VFS: Can't find ext4 filesystem
有什么帮助吗?
答案1
您需要使用以下内容来组装(降级的)RAID 阵列:
mdadm --assemble --readonly /dev/md0 /dev/sdb2
当然,如果 md0 已在使用,请选择一个除 md0 之外的数字。然后你可以挂载/dev/md0
(或者,如果它实际上是 LVM 等,则继续沿着链向下)。
在 RAID1 的情况下,您也可以使用环回设备和偏移量来执行此操作,但这会更加痛苦,并且只有在 mdadm 元数据已被破坏的情况下才值得尝试。
答案2
看起来您有一个新的 2gig、非 RAID 磁盘,并且您正在尝试读取旧的 750gig RAID 磁盘的内容。如果是这种情况,您可以执行以下操作:
ls -l /dev/md/
在我们的例子中,返回以下内容:
total 0
lrwxrwxrwx 1 root root 8 Jul 26 08:30 sp:0 -> ../md126
lrwxrwxrwx 1 root root 8 Jul 26 08:30 sp:1 -> ../md127
然后我就可以安装阅读所需的分区:
mount /dev/md/sp:0 /mnt
在上面的例子中,sp:0
我sp:1
相信这就是我在创建时命名的 RAID 分区。
答案3
我发现德罗伯特的答案非常有帮助,但需要更多:
从以前从未有过阵列且通过 USB 驱动器坞站从外部连接两个驱动器的新系统:
sudo apt update && sudo apt install mdadm -y
sudo mdadm --examine /dev/sd*
[output of above command showed two drives that were members of the original raid array, one a PARTITION, the other the entire device]
sudo mdadm --assemble /dev/md1 /dev/sdb1 dev/sdc --run
mdadm: /dev/sdb1 is busy - skipping
mdadm: /dev/md1 assembled from 1 drive - need all 2 to start it (use --run to insist).
sudo mdadm --assemble /dev/md1 /dev/sdb1 /dev/sdc --run
mdadm: /dev/sdb1 is busy - skipping
mdadm: /dev/md1 has been started with 1 drive (out of 2).
sudo mount /dev/md1 /mnt/md1
cd /mnt/md1
ls
backup lost+found pictures rsnapshot
然后,我能够使用 rsync 将数据从单个安装的 raid 成员 /dev/sdc 复制到不同系统上经过验证的良好驱动器。