web-dev-qa-db-fra.com

Récupérer un RAID 0 orphelin à partir du contrôleur Silicon Image avec le RAID logiciel Linux?

J'avais une vieille machine XP dans Raid0, 2 disques de 120 Go sur un Sil3112 controller. Les disques sont intacts (afaik) mais la carte mère ou P4 est grillée.

J'adore récupérer de précieuses photos du lecteur ou vider tout son contenu sur un externe. Je commence à comprendre qu'Ubuntu pourrait être en mesure de reconstruire la baie sur un système moderne afin que je puisse récupérer des données en utilisant le liveCD. Est-ce correct?

Si c'est le cas, j'ai besoin d'une machine avec des ports/contrôleurs Raid existants, etc. ou ai-je juste besoin d'une carte avec des connexions sata régulières. Merci d'avance pour toute assistance dans ce sujet.

1
user220310

A eu à peu près le même problème avec un contrôleur it8212 "faux RAID" et quelques disques sur RAID0. Étonnamment, mdadm pourrait résoudre le problème, avec un peu d'essais et d'erreurs, cependant. Si vous connaissez/vous souvenez de la taille du bloc (le quantum de chaque disque parallèle en lecture/écriture pour chaque disque), vous pouvez essayer quelque chose comme ça (ne l'essayez pas tout de suite):

 Sudo mdadm --build --verbose --run --chunk=64 /dev/md0 --level=raid0 --raid-devices=2 /dev/sde /dev/sdd

Si/dev/md0 était déjà occupé, n'hésitez pas à utiliser des nombres incrémentiels au lieu de 0. Bien sûr,/dev/sde et/dev/sdd où les disques dans mon cas et 64k étaient ma taille de bloc, mais vous pouvez facilement déterminer votre propre configuration avec: Sudo fdisk -l

Cela répertorie toutes les partitions de tous vos disques physiques. Les deux qui nous intéressent devraient être exactement identiques en termes de taille, cylindres, secteurs, etc. En outre, étant donné que l'ordre des paramètres est vraiment important, le premier (à la place de mon/dev/sde) devrait sembler avoir une table de partition (ou une partie de celui-ci, si vous aviez utilisé des partitions dos étendues), et la seconde (mon/dev/sdd) semble être totalement corrompue. Attention à ne pas toucher à vos autres disques non raid, cependant :-) OTAH, si les deux semblent invalides, vous pouvez arrêter de lire cette réponse, cela ne fonctionnera pas pour vous :-(

L'utilisation de --build (au lieu de --create) a l'avantage de sauter la création d'informations de superbloc, d'éviter le risque d'effacement des données et, surtout, de démarrer des données réelles à partir du secteur 0, créant ainsi un assemblage dit "hérité", c'est ce que feraient la plupart des fournisseurs de chipsets "faux raid" (supposition éclairée: leurs informations de superbloc sont écrites sur la mémoire NV du chipset, donc ils n'ont pas vraiment besoin d'écrire de métadonnées sur les disques).

Maintenant, si vous ne vous souvenez pas de la taille de bloc d'origine, des essais et des erreurs sont nécessaires ... Essayez de construire avec une taille de bloc différente à chaque fois, puis utilisez explicitement fdisk -l sur/dev/md0 et voyez si les informations de partition sont affichées correctement. Si tel est le cas, essayez de monter l'une des partitions découvertes en lecture seule et vérifiez certaines données (de préférence du texte), afin d'en être sûr. Sinon, annulez. Pour annuler la création de mdadm et rendre à nouveau le disque disponible, utilisez Sudo mdadm --stop /dev/md0 et Sudo mdadm --remove /dev/md0 Puis réessayez, avec une taille de bloc différente.

Bien que le montage suffise (la capacité de monter des partitions corrompues est extrêmement rare), voici une astuce un peu plus avancée pour vérifier la taille de bloc correcte, en recherchant la chaîne d'identifiant de partition. Avec un peu de chance, dans une table de partition valide, les secteurs de départ d'une ou plusieurs partitions reconnaissables sont décrits. Encore une fois, dans mon cas:

 /dev/sde1   *          63    47118644    23559291    7  HPFS/NTFS/exFAT
 /dev/sde2        47118645   102896324    27888840    7  HPFS/NTFS/exFAT
 /dev/sde4       102896325   980463014   438783345    5  Extended

Dans presque tous les cas, vous pouvez trouver des chaînes d'identification proches du début de chaque type de partition. c'est à dire. 'NTFS' lui-même, dans le cas de NTFS. À l'aide de dd, copiez les premiers secteurs du disque (/ dev/md0) dans un fichier.

 Sudo dd if=/dev/md0 of=testfile bs=1024 count=256 skip=0

Cela devrait copier le premier (skip = 0) 256K de données de disque dans 'testfile'. Maintenant, en utilisant quelque chose comme:

strings -a -t d testfile | grep NTFS

ou x au lieu de d si vous préférez hex, ou, plus simplement,

hexdump -C testfile | less

puis, recherchez avec '/'

et vous pouvez trouver la position de la chaîne dans tout le disque. Comparez cela avec le décalage de partition calculé. Par exemple, dans mon cas, la première partition ntfs a commencé au 63e secteur, ce qui conduit à un décalage de 63 * 512 = 32256. La chaîne 'NTFS' a été trouvée à la place 32259, donc nous considérerions cela comme 'une correspondance' (3 octets après le début). (N'oubliez pas d'ajouter skip * bs à votre calcul, si un saut non nul est utilisé dans dd). Malheureusement, une correspondance ne signifie pas nécessairement que c'est la bonne taille de morceau, tandis qu'une incompatibilité signifie qu'elle ne l'est certainement pas.

1
trollercoaster

Pour autant que je sache, vous ne pouvez pas faire cela avec mdadm/Linux Software RAID car les seuls formats de métadonnées étrangers pris en charge sont Intel (R) Matrix Storage Manager et DDF .

Vous devez obtenir une carte mère exacte ou similaire ou un contrôleur avec la même puce (et probablement le firmware) et être extrêmement prudent lorsque vous "importez" les disques ou sinon vos données sont perdues.

Je suis là depuis longtemps avec les puces Silicon Image et j'ai réalisé à quel point cette solution est mauvaise (vous devriez toujours avoir un contrôleur de rechange exact prêt en cas de problème).

Faux support RAID

Les articles sur dmraid/Fake RAID de buntu Community Documentation et Arch Linux Wiki pourraient vous être utiles.

RAID logiciel Linux vs faux RAID

Extrait du Linux Raid Wiki sur faux RAID :

Les systèmes RAID matériels appropriés sont présentés à Linux comme un périphérique bloc [...]

BIOS/firmware RAID aka fausses cartes de raid:

  • [...]
  • si la carte ou la carte mère `` raid '' meurt, vous devez souvent trouver un remplacement exact, ce qui peut être délicat pour les anciennes cartes
  • si les disques se déplacent vers d'autres machines, les données ne peuvent pas être facilement lues
  • il n'y a généralement pas de surveillance ou de rapport sur la baie - si un problème se produit, il peut ne pas apparaître à moins que la machine ne soit redémarrée et quelqu'un regarde réellement la Écran de démarrage du BIOS (ou jusqu'à ce que plusieurs erreurs se produisent et que vos données soient perdues)
  • vous confiez vos données à un logiciel inaccessible écrit dans un BIOS qui n'a probablement pas été testé, n'a pas de mécanisme de support et presque pas de communauté.
  • [...]

Étant donné que le point RAID est généralement de réduire les risques, il est juste de dire que l'utilisation de fakeraid est une idée terrible et qu'il est préférable de concentrer l'énergie sur un véritable raid HW ou un raid SW dans le noyau [...]

0
LiveWireBT