J'ai une situation horrible dans laquelle je dois restaurer des données du système RAID endommagé dans un sauvetage Debian Linux. Je veux juste les monter tous vers/mnt/sauvetage en lecture seule à la lecture de modus pour pouvoir copier des images VMware GSX sur une autre machine et les migrer vers ESXI plus tard. La sortie des commandes pertinentes est la suivante.
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
J'essayais de monter les disques comme suit.
mount -o ro /dev/sda1 /mnt/rescue
Ensuite, je reçois une erreur suivante.
mount: unknown filesystem type 'linux_raid_member'
Le système de fichiers devinant ne va pas non plus non plus.
mount -o ro -t ext3 /dev/sda1 /mnt/rescue/
mount: /dev/sda1 already mounted or /mnt/rescue/ busy
J'ai donc essayé de créer un appareil virtuel comme suit.
mdadm -A -R /dev/md9 /dev/sda1
Cela se traduit par le message suivant.
mdadm: cannot open device /dev/sda1: Device or resource busy
mdadm: /dev/sda1 has no superblock - Assembly aborted
Maintenant, je suis perdu, je ne sais pas comment récupérer les disques et récupérer les données. Ce qui suit est la sortie de MDA -Examine pour tous les 3 disques (je pense qu'il devrait être 3x disques 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 semble être endommagé et c'est probablement le raid avec mes images VMware.
Je souhaite accéder aux données de MD2 (les données sur le disque actif et non endommagé, c'est/dev/sda3) en le montant à l'extérieur du raid.
Est-ce une bonne idée de simplement exécuter
mdadm --manage /dev/md2 --remove /dev/sda3
(Serait-il même fonctionner comme MD2 n'est pas vu par FDISK)?
Devrais-je ré-assembler les autres raids MD0 et MD1 en exécutant
mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
?
Mise à jour 0: Je ne suis pas capable d'assembler MD0 et 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
Le montage avec le mont -T auto n'est pas possible.
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
Montage/Dev/MD1 fonctionne mais pas de données 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
...
Mise à jour 1:
J'ai essayé d'arrêter MD2 et MD0 et d'assembler une fois de plus.
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
Des idées?
Mise à jour 2:
L'assemblage d'un disque ne fonctionne pas en raison du message d'erreur suivant.
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.
Même le nouveau raid échoue.
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.
La création d'un nouveau disque MD échoue également.
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.
Mise à jour 3:
L'enlèvement de disques de MD2 ne fonctionne pas.
mdadm --remove /dev/md2 /dev/sda3
mdadm: cannot get array info for /dev/md2
Mise à jour 4:
Enfin, courir assembler avec --force
espérons-le l'avoir fait. Je copie maintenant des fichiers sur un autre serveur.
Dans mon cas, j'ai élevé Centos 7 et j'ai essayé de suivre les instructions de chacun sur cette page. Je continuais à courir dans un message occupé à un appareil. La raison en mon avis pourquoi vous obtenez le
mDADM: impossible d'ouvrir le périphérique/dev/sda1: périphérique ou ressource occupé
le message d'erreur est dû au fait que l'appareil est déjà monté comme autre chose.
Je ne voulais pas non plus apporter de modifications sur le disque du tout, car mon cas d'utilisation était d'extraire un très gros fichier de mon tableau RAID1 qui n'a pas été extrait de toutes les voies possibles autrement et le moyen le plus rapide était de tirer l'un des lecteurs. , Je veux mettre le retour dans et avoir toujours ma configuration en place.
Voici ce que j'ai fait après avoir fait des recherches en ligne sur d'autres sites: [~ # ~] note [~ # ~]]: NAS: 0 est le nom de mon NAS = périphérique de substitution de manière appropriée.
Il a été automatiquement monté, bien qu'il dirait que ce ne soit pas monté si vous deviez exécuter la commande de montage, vous pouvez vérifier qu'il a été monté en courant:
[root@localhost Desktop]# cat /proc/mdstat
Personalities : [raid1]
md127 : active (auto-read-only) raid1 sdb2[0]
1952996792 blocks super 1.2 [2/1] [U_]
unused devices: <none>
Remarquez qu'il a été automatiquement monté sous /dev/md127
pour moi.
Alors ok:
[root@localhost Desktop]# mdadm -A -R /dev/md9 /dev/sdb2
mdadm: /dev/sdb2 is busy - skipping
[root@localhost Desktop]# mdadm --manage --stop /dev/md/NAS\:0
mdadm: stopped /dev/md/NAS:0
[root@localhost Desktop]# mdadm -A -R /dev/md9 /dev/sdb2
mdadm: /dev/md9 has been started with 1 drive (out of 2).
[root@localhost Desktop]# mount /dev/md9 /mnt/
Ça m'a fait pour moi.
En cas de doute, DD le lecteur pour effectuer une copie complète et utiliser Centos ou un autre CD Linux Live.
Si vous pouvez éventuellement faire une image dd
de votre disque entier avant de faire quoi que ce soit, au cas où.
Vous devriez être capable de monter/dev/sda3 directement une fois mdadm
le libère:
mdadm --Stop/dev/md2
mont/dev/SDA3/MNT/Rescue
Si cela ne fonctionne pas testdisk
peut généralement trouver des systèmes de fichiers sur des dispositifs de bloc bruts.
Je l'ai fait par "Hard Way": (Tout d'abord, si son clone possible, ce disque avant de faire quoi que ce soit!)
dmesg
pour le disque RAID ou essayer (exemple: sdc1
)
$ fdisk -l
Modifiez le drapeau-disque RAID à votre système de fichiers Linux (EXT3 ou quelque chose), enregistrez-la et redémarrez.
Après ça
$ mdadm --zero-superblock /dev/sdx
et voila vous pouvez monter
$ mount /dev/sdc1 /mnt