Mam okropną sytuację, w której muszę przywrócić dane z uszkodzonego systemu rajdowego podczas ratowania Debiana Linux. Chcę tylko zamontować je wszystkie w / mnt / rescue w trybie tylko do odczytu, aby móc skopiować obrazy VMWare GSX na inną maszynę i później migrować je do ESXi. Dane wyjściowe dla odpowiednich poleceń są następujące.
fdisk -l
Disk /dev/sda: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005e687
Device Boot Start End Blocks Id System
/dev/sda1 1 523 4200997 fd Linux raid autodetect
/dev/sda2 524 785 2104515 fd Linux raid autodetect
/dev/sda3 786 182401 1458830520 fd Linux raid autodetect
Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00014fc7
Device Boot Start End Blocks Id System
/dev/sdb1 1 523 4200997 fd Linux raid autodetect
/dev/sdb2 524 785 2104515 fd Linux raid autodetect
/dev/sdb3 786 182401 1458830520 fd Linux raid autodetect
Disk /dev/md0: 4301 MB, 4301717504 bytes
2 heads, 4 sectors/track, 1050224 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1: 2154 MB, 2154954752 bytes
2 heads, 4 sectors/track, 526112 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/md1 doesn't contain a valid partition table
Próbowałem zamontować dyski w następujący sposób.
mount -o ro /dev/sda1 /mnt/rescue
Następnie pojawia się następujący błąd.
mount: unknown filesystem type 'linux_raid_member'
Zgadywanie systemu plików też nie idzie dobrze.
mount -o ro -t ext3 /dev/sda1 /mnt/rescue/
mount: /dev/sda1 already mounted or /mnt/rescue/ busy
Próbowałem więc utworzyć urządzenie wirtualne w następujący sposób.
mdadm -A -R /dev/md9 /dev/sda1
Powoduje to następujący komunikat.
mdadm: cannot open device /dev/sda1: Device or resource busy
mdadm: /dev/sda1 has no superblock - assembly aborted
Teraz jestem zagubiony, nie mam pojęcia, jak odzyskać dyski i odzyskać dane. Poniżej przedstawiono wynik działania mda --examine dla wszystkich 3 dysków (myślę, że powinny to być 3 dyski raid1).
/ dev / sda1:
Magic : a92b4efc
Version : 0.90.00
UUID : 6708215c:6bfe075b:776c2c25:004bd7b2 (local to host rescue)
Creation Time : Mon Aug 31 17:18:11 2009
Raid Level : raid1
Used Dev Size : 4200896 (4.01 GiB 4.30 GB)
Array Size : 4200896 (4.01 GiB 4.30 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 0
Update Time : Sun Jun 2 00:58:05 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Checksum : 9070963e - correct
Events : 19720
Number Major Minor RaidDevice State
this 1 8 1 1 active sync /dev/sda1
0 0 0 0 0 removed
1 1 8 1 1 active sync /dev/sda1
2 2 8 17 2 active sync /dev/sdb1
/ dev / sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : e8f7960f:6bbea0c7:776c2c25:004bd7b2 (local to host rescue)
Creation Time : Mon Aug 31 17:18:11 2009
Raid Level : raid1
Used Dev Size : 2104448 (2.01 GiB 2.15 GB)
Array Size : 2104448 (2.01 GiB 2.15 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 1
Update Time : Sat Jun 8 07:14:24 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Checksum : 120869e1 - correct
Events : 3534
Number Major Minor RaidDevice State
this 1 8 2 1 active sync /dev/sda2
0 0 0 0 0 removed
1 1 8 2 1 active sync /dev/sda2
2 2 8 18 2 active sync /dev/sdb2
/ dev / sda3:
Magic : a92b4efc
Version : 0.90.00
UUID : 4f2b3b67:c3837044:776c2c25:004bd7b2 (local to host rescue)
Creation Time : Mon Aug 31 17:18:11 2009
Raid Level : raid5
Used Dev Size : 1458830400 (1391.25 GiB 1493.84 GB)
Array Size : 2917660800 (2782.50 GiB 2987.68 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 2
Update Time : Sat Jun 8 14:47:00 2013
State : clean
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Checksum : 2b2b2dad - correct
Events : 36343894
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 1 8 3 1 active sync /dev/sda3
0 0 0 0 0 removed
1 1 8 3 1 active sync /dev/sda3
2 2 0 0 2 faulty removed
cat /proc/mdstat
Personalities : [raid1]
md2 : inactive sda3[1](S) sdb3[2](S)
2917660800 blocks
md1 : active raid1 sda2[1] sdb2[2]
2104448 blocks [3/2] [_UU]
md0 : active raid1 sda1[1] sdb1[2]
4200896 blocks [3/2] [_UU]
md2 wydaje się być uszkodzony i prawdopodobnie jest to najazd na moje obrazy VMWare.
Chciałbym uzyskać dostęp do danych z md2 (dane na aktywnym i nieuszkodzonym dysku, czyli / dev / sda3) poprzez zamontowanie go poza rajdem.
Czy warto po prostu wykonać
mdadm --manage /dev/md2 --remove /dev/sda3
(czy działałoby to tak, jakby md2 nie był widziany przez fdisk)?
Czy powinienem ponownie zakodować inne naloty md0 i md1, uruchamiając
mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
?
AKTUALIZACJA 0: Nie jestem w stanie skompletować md0 i md2.
root@rescue ~ # mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
mdadm: cannot open device /dev/sda1: Device or resource busy
mdadm: /dev/sda1 has no superblock - assembly aborted
root@rescue ~ # mdadm --assemble /dev/md2 /dev/sda3 /dev/sdb3
mdadm: cannot open device /dev/sda3: Device or resource busy
mdadm: /dev/sda3 has no superblock - assembly aborted
Montaż za pomocą mount -t auto nie jest możliwy.
root@rescue ~ # mount -t auto -o ro /dev/md0 /mnt/rescue/
/dev/md0 looks like swapspace - not mounted
mount: you must specify the filesystem type
root@rescue ~ # mount -t auto -o ro /dev/md2 /mnt/rescue/
mount: you must specify the filesystem type
Montowanie / dev / md1 działa, ale nie ma na nim danych VMWare.
root@rescue /mnt/rescue # ll
total 139M
-rw-r--r-- 1 root root 513K May 27 2010 abi-2.6.28-19-server
-rw-r--r-- 1 root root 631K Sep 16 2010 abi-2.6.32-24-server
-rw-r--r-- 1 root root 632K Oct 16 2010 abi-2.6.32-25-server
-rw-r--r-- 1 root root 632K Nov 24 2010 abi-2.6.32-26-server
-rw-r--r-- 1 root root 632K Dec 2 2010 abi-2.6.32-27-server
-rw-r--r-- 1 root root 632K Jan 11 2011 abi-2.6.32-28-server
-rw-r--r-- 1 root root 632K Feb 11 2011 abi-2.6.32-29-server
-rw-r--r-- 1 root root 632K Mar 2 2011 abi-2.6.32-30-server
-rw-r--r-- 1 root root 632K Jul 30 2011 abi-2.6.32-33-server
lrwxrwxrwx 1 root root 1 Aug 31 2009 boot -> .
-rw-r--r-- 1 root root 302K Aug 4 2010 coffee.bmp
-rw-r--r-- 1 root root 89K May 27 2010 config-2.6.28-19-server
...
AKTUALIZACJA 1:
Próbowałem zatrzymać md2 i md0 i ponownie złożyć.
mdadm -S /dev/md0
root@rescue ~ # mount -t auto -o ro /dev/md0 /mnt/rescue/
/dev/md0 looks like swapspace - not mounted
mount: you must specify the filesystem type
mdadm -S /dev/md2
root@rescue ~ # mount -t auto -o ro /dev/md2 /mnt/rescue/
mount: you must specify the filesystem type
Jakieś pomysły?
AKTUALIZACJA 2:
Montaż z jednego dysku nie działa z powodu następującego komunikatu o błędzie.
root@rescue ~ # mdadm -S /dev/md2
root@rescue ~ # mdadm --assemble /dev/md2 /dev/sda3
mdadm: /dev/md2 assembled from 1 drive - not enough to start the array.
root@rescue ~ # mdadm -S /dev/md2
mdadm: stopped /dev/md2
root@rescue ~ # mdadm --assemble /dev/md2 /dev/sdb3
mdadm: /dev/md2 assembled from 1 drive - not enough to start the array.
Nawet nowy nalot kończy się niepowodzeniem.
root@rescue ~ # mdadm -S /dev/md9
mdadm: stopped /dev/md9
root@rescue ~ # mdadm --assemble /dev/md9 /dev/sda3
mdadm: /dev/md9 assembled from 1 drive - not enough to start the array.
root@rescue ~ # mdadm -S /dev/md9
mdadm: stopped /dev/md9
root@rescue ~ # mdadm --assemble /dev/md9 /dev/sdb3
mdadm: /dev/md9 assembled from 1 drive - not enough to start the array.
Tworzenie nowego dysku md również nie powiedzie się.
root@rescue ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[1] sdb1[2]
4200896 blocks [3/2] [_UU]
md1 : active raid1 sda2[1] sdb2[2]
2104448 blocks [3/2] [_UU]
unused devices: <none>
root@rescue ~ # mdadm -A -R /dev/md9 /dev/sda3
mdadm: failed to RUN_ARRAY /dev/md9: Input/output error
mdadm: Not enough devices to start the array.
root@rescue ~ # cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md9 : inactive sda3[1]
1458830400 blocks
md0 : active raid1 sda1[1] sdb1[2]
4200896 blocks [3/2] [_UU]
md1 : active raid1 sda2[1] sdb2[2]
2104448 blocks [3/2] [_UU]
unused devices: <none>
root@rescue ~ # mdadm -S /dev/md9
mdadm: stopped /dev/md9
root@rescue ~ # mdadm -A -R /dev/md9 /dev/sdb3
mdadm: failed to RUN_ARRAY /dev/md9: Input/output error
mdadm: Not enough devices to start the array.
AKTUALIZACJA 3:
Usuwanie dysków z md2 nie działa.
mdadm --remove /dev/md2 /dev/sda3
mdadm: cannot get array info for /dev/md2
AKTUALIZACJA 4:
Wreszcie, --force
udało się to uruchomić z nadzieją. Teraz kopiuję pliki na inny serwer.
mdadm --assemble
jest droga. Spróbuj bez--remove
.mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
mdadm: /dev/md0 has been started with 2 drives (out of 3).
Ale potem montaż się nie udaje (nie znam typu systemu plików).mount -o ro /dev/md0 /mnt/rescue
/dev/md0 looks like swapspace - not mounted
mount: you must specify the filesystem type
sd?1
jest zamiana. Spróbuj złożyćmd1
imd2
zamontować za pomocąmount -t auto ...
.Odpowiedzi:
W moim przypadku przywołałem CentOS 7 i próbowałem postępować zgodnie z instrukcjami wszystkich na tej stronie. Wciąż pojawiał się komunikat o zajętości urządzenia. Moim zdaniem powodem, dla którego otrzymujesz
komunikat o błędzie jest spowodowany tym, że urządzenie jest już zamontowane jako coś innego.
Nie chciałem też w ogóle wprowadzać żadnych zmian na dysku, ponieważ moim przypadkiem użycia było wyodrębnienie bardzo dużego pliku z mojej macierzy RAID1, którego nie udało się wyodrębnić w każdy możliwy sposób, a najszybszym sposobem było wyciągnięcie jednego z dysków , Chcę ponownie włożyć dysk i nadal mieć swoją konfigurację.
Oto, co zrobiłem po przeprowadzeniu badań online na innych stronach: UWAGA : NAS: 0 to nazwa mojego urządzenia NAS, więc odpowiednio zamień.
Został on automatycznie zamontowany, chociaż powiedziałby, że nie został zamontowany, jeśli miałbyś uruchomić komendę mount, możesz sprawdzić, czy został on zamontowany poprzez uruchomienie:
Zauważ, że
/dev/md127
dla mnie został on automatycznie zamontowany .Ok, a następnie:
To mi zrobiło.
W razie wątpliwości DD napędu, aby wykonać pełną kopię i użyć CentOS lub innego Linux Live CD.
źródło
/dev/md127
więc wydałem taki przystanekmdadm --manage --stop /dev/md127
.Jeśli to możliwe, powinieneś zrobić
dd
zdjęcie całego dysku, zanim zrobisz cokolwiek, na wszelki wypadek.Powinieneś być w stanie zamontować / dev / sda3 bezpośrednio po jego
mdadm
wydaniu:Jeśli to nie działa,
testdisk
zwykle można znaleźć systemy plików na surowych urządzeniach blokowych.źródło
Zrobiłem to na „twardej drodze”: (najpierw, jeśli możliwe jest sklonowanie tego dysku, zanim cokolwiek zrobisz!)
dmesg
na dysk raid lub spróbuj (przykładsdc1
:)Zmień flagę RAID-DISK na system plików Linux (ext3 lub coś takiego), zapisz to i uruchom ponownie.
Po tym
i voila, którą możesz zamontować
źródło