Pour la petite histoire il y a quelques jours, je me décide à sortir de ma retraite e-sportive et donc à casser un peu de Terran et de Protoss. Windows me voici ! Pour repartir sur des bonnes bases, j’installe les mises à jour du système et des logiciels ainsi que les derniers pilotes graphique. Un redémarrage plus tard c’est le drame, pas d’écran de login, ou plutôt un écran noir avec uniquement le curseur de la souris. Je vous épargne tous ce que j’ai entrepris pour régler le problème mais dans le lot, il y avait un chargement des paramètres par défaut du BIOS (la bestiole étant assez ancienne, j’en tire le maximum avec un overclocking pas piqué des hannetons qui peut parfois poser problème). Le problème fini par être réglé, mais quelques jours plus tard je me rends compte que l’un de mes disques de 2 Tio ne fait plus que 1 Tio ! Quelques tribulations googleiennes plus tard je tiens le coupable : le HPA made in Gigabyte.

Ma carte-mère est donc une Gigabyte GA-P965-DS3 qui propose une fonction fort louable de sauvegarde du BIOS, trop coooooool ! Sauf que ce fameux BIOS, il faut bien le sauvegarder quelque part, naïvement je pensais à une autre ROM sur la carte-mère, et bien que nenni, un sou étant un sou, la sauvegarde en question est stockée sur une partition d’environ 2000 secteurs spécialement créée par le BIOS sur l’un des disques durs, il n’y a pas de petite économie ! Alors pourquoi pas, avec des disques de plusieurs centaines voire milliers de Gio, on ne va pas pleurer pour un pauvre mibioctet. Sauf que chez Gigabyte (dont j’apprécie grandement les produits par ailleurs), on ne doit pas savoir que la capacité des disques durs double tous les 18-24 mois et du coup on ne pense pas qu’un jour notre sympathique fonctionnalité de sauvegarde de BIOS va devoir gérer des disques de plus de 1 Tio, on obtient alors des résultats fort amusants du genre : 1 Tio -> 33 Mio, 1,5 Tio -> 500 Gio et dans mon cas 2 Tio -> 1 Tio (source). Le chargement des paramètres par défaut du BIOS a donc réactivé cette option et privé par la même occasion mon fier bloc de fonte de la moitié de sa virilité, les disques durs aussi jouant à qui a la plus grosse. A ce stade, peu d’espoir de retrouver les données intactes, à peine s’autorise t’on à penser retrouver le tibioctet perdu.

On ne va pas faire durer le suspense plus que nécessaire, j’ai tout de même retrouvé l’espace disque perdu et gâteau sur la cerise, les données avec.

AVERTISSEMENTS avec pleins de points d’exclamation et de têtes de mort à l’intérieur et tout autour : les manipulations suivantes ne sont pas neutres et peuvent potentiellement atomiser vos données et dans une moindre mesure les supports de stockage. Merci de bien lire les instructions, de potasser un peu la documentation des outils employés, de vérifier chaque étape avant de valider. En cas de problème, rincer abondamment à l’eau froide et contacter un médecin (mon Doc étant parfaitement usurpé, je m’auto-dégage de toute responsabilité !).

Pré-requis :

  • Un PC
  • 2 disques de capacité identique (ou supérieure pour le deuxième)
  • Un live-CD HDAT2
  • Un live-CD GNU-Linux

Conventions :

  • sda : disque de 250 Gio (capacité utilisée dans la suite de l’article) avec le HPA actif
  • sdb : disque de 250 Gio (ou plus)

Voici donc la marche à suivre :

Pour commencer, faire une copie bloc à bloc du disque HPA-isé sur un autre de capacité supérieure ou égale, histoire d’avoir au moins une chance de revoir ses données (je ne l’ai personnellement pas fait, ayant des sauvegardes à jour !).

Par exemple, à l’aide d’un live-CD GNU-Linux, copier l’intégralité du disque sda vers sdb :

# dd if=/dev/sda of=/dev/sdb

Première solution : HDAT2

Il s’agit d’un programme DOS disponible sous forme de live-CD qui permet d’intervenir sur la configuration des disques durs et dans le cas qui nous intéresse d’identifier et supprimer le HPA.

J’ai honteusement repris les captures d’écrans du site original pour décrire la démarche :

 – Sélectionner le disque et vérifier que le HPA est bien actif dessus :

Indentifier le disque HPA-isé – Sélectionner l’entrée « SET MAX (HPA) Menu » :

Choisir le menu SET MAX (HPA)  – Dans le champs « New hidden », fixer le nombre de secteurs à 0 puis valider avec « S »

Désactiver le HPAil ne reste plus qu’à redémarrer et constater le retour de l’entièreté de l’espace disque.

Deuxième solution : hdparm

On va ici utiliser cette commande GNU-Linux qui permet tout comme HDAT2 de visualiser et modifier les paramètres de configuration des disques durs. Là encore on va passer par un live-CD GNU-Linux.

– Vérifier que le HPA est actif sur le disque sda et noter le nombre de secteurs utilisables et maximum :

# hdparm -N /dev/sda
 max sectors   = 488395055/488397168, HPA is enabled

 – On va maintenant utiliser le nombre maximum de secteurs possibles et donc supprimer le HPA :

# hdparm -N 488397168 /dev/sda

– Vérifier que la manipulation a bien fonctionné et redémarrer :

# hdparm -N /dev/sda
 max sectors   = 488397168/488397168, HPA is disabled