그래서 두 개의 하드 드라이브가 있는 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
위의 예에서는 이것이 제가 생성할 때 명명한 RAID 파티션이라고 생각합니다 sp:0
.sp:1
답변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의 데이터를 다른 시스템의 인증된 양호한 드라이브로 복사할 수 있었습니다.