Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
.
Aïe ! plus moyen de “booter” le système, et/ou plus aucun accès à cette partition de données dont j'ai tant besoin…
Les accès à certaines partitions de ce disque sont impossibles.
Ce disque est-il en train de “mourir” ? (voir avec smartmontools).
Dans le doute, il va falloir le manipuler le moins possible pour l'empêcher d'aggraver lui-même sa situation.
Donc, la première des choses à faire, c'est de créer un copie brute de ce disque sous la forme d'un fichier image disque.
Ensuite, on pourra prendre tout son temps pour tenter tout ce qui est possible avec le fichier, pendant que le disque original attendra sagement dans son coin.
Pour créer ce fichier de copie image disque, plusieurs outils existent avec chacun leur avantages et inconvénients.
Ici, l'image disque a été crée avec whdd.
dd
, avec GNU-ddrescue
et avec whdd
.
Il va être indispensable d'obtenir un accès à ces partitions défectueuses afin de pouvoir tenter de réparer leur système de fichiers.
Mais tant que le système de fichier est incohérent, “mount” ne peut rien faire d'autre que de signaler ces erreurs.
Pour obtenir cet accès, il existe une méthode qui consiste à “mapper” ce disque avec le programme kpartx
.
Grâce à kpartx
le système verra le fichier image disque comme s'il s'agissait d'un disque physique connecté à la machine.
Il sera alors possible de tenter de corriger les incohérences qui rendent ces partitions inaccessibles.
Installons kpartx
, après, bien sûr, avoir mis à jour la liste des paquetages :
apt-get update && apt-get install kpartx
whdd-copy-mode
est le fichier image récupéré par copie (grâce à WHDD
) du disque “mourant”.
Voyons ce que nous dit fdisk sur ce fichier image disque :
fdisk -l whdd-copy-mode
Disk whdd-copy-mode: 37.3 GiB, 40020664320 bytes, 78165360 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 Disklabel type: dos Disk identifier: 0xace22e9e Device Boot Start End Blocks Id System whdd-copy-mode1 57993214 78163967 10085377 5 Extended whdd-copy-mode2 2048 16386047 8192000 83 Linux whdd-copy-mode3 * 16386048 30726143 7170048 83 Linux whdd-copy-mode4 30726144 57991167 13632512 83 Linux whdd-copy-mode5 57993216 64342015 3174400 82 Linux swap / Solaris whdd-copy-mode6 64344064 78163967 6909952 83 Linux Partition table entries are not in disk order.
On va associer ce fichier image disque au périphérique /dev/loop0
:
losetup /dev/loop0 whdd-copy-mode
Pour permettre l'accès aux partitions du fichier image disque whdd-copy-mode
,
on va utiliser kpartx
pour faire une “projection” de ses partitions sur le périphérique /dev/mapper
:
kpartx -a whdd-copy-mode
Examinons ce que ça a donné en listant le répertoire /dev/mapper
:
ls -l /dev/mapper/
total 0 crw------- 1 root root 10, 236 1 janv. 20:52 control lrwxrwxrwx 1 root root 7 1 janv. 20:52 loop0p1 -> ../dm-0 lrwxrwxrwx 1 root root 7 1 janv. 20:52 loop0p2 -> ../dm-1 lrwxrwxrwx 1 root root 7 1 janv. 20:52 loop0p3 -> ../dm-2 lrwxrwxrwx 1 root root 7 1 janv. 20:52 loop0p4 -> ../dm-3 lrwxrwxrwx 1 root root 7 1 janv. 20:52 loop0p5 -> ../dm-4 lrwxrwxrwx 1 root root 7 1 janv. 20:52 loop0p6 -> ../dm-5
Créons les 6 répertoires qui vont servir de points de “mountage” pour ces partitions.
mkdir -p /mnt/sdc/sdc{1,2,3,4,5,6}
Vérifions qu'ils ont bien été créés :
ls -l /mnt/sdc/
/mnt/sdc/: total 24 drwxr-xr-x 2 root root 4096 1 janv. 21:01 sdc1 drwxr-xr-x 2 root root 4096 1 janv. 21:01 sdc2 drwxr-xr-x 2 root root 4096 1 janv. 21:01 sdc3 drwxr-xr-x 2 root root 4096 1 janv. 21:01 sdc4 drwxr-xr-x 2 root root 4096 1 janv. 21:01 sdc5 drwxr-xr-x 2 root root 4096 1 janv. 21:01 sdc6
Il nous faut maintenant mounter ces partitions sur les points de “mountage” précédemment créés:
mount /dev/mapper/loop0p1 /mnt/sdc/sdc1
mount: wrong fs type, bad option, bad superblock on /dev/mapper/loop0p1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
/dev/mapper/loop0p1
corresponds à une partition de type Étendue
(conteneur de partitions “logiques”).
Le message d'erreur wrong fs type
suite à l'exécution de la commande mount
est donc tout à fait normal.
mount /dev/mapper/loop0p2 /mnt/sdc/sdc2
mount /dev/mapper/loop0p3 /mnt/sdc/sdc3
mount /dev/mapper/loop0p4 /mnt/sdc/sdc4
mount: wrong fs type, bad option, bad superblock on /dev/mapper/loop0p4, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.
mount /dev/mapper/loop0p5 /mnt/sdc/sdc5
mount: unknown filesystem type 'swap'
loop0p5
correspond à une partition de type swap
, le message d'erreur est donc tout à fait normal.
mount /dev/mapper/loop0p6 /mnt/sdc/sdc6
Les partitions “mountées” sur sdc2
, sdc3
, et sdc6
ont été “mountées” sans problème.
Leur contenu est donc maintenant accessible.
Les deux partitions que nous allons tenter de réparer sont donc :
sdc1
⇔ loop0p1
sdc4
⇔ loop0p4
Étant donné que la première partition est une partition de type Étendue
,
et que cette partition n'est qu'un conteneur de partitions de type Logique
,
il n'y a aucun système de fichiers à réparer sur cette partition.
Par contre la deuxième peut-être réparée avec fsck.ext4
.
De toutes façons, une seule partition nécessite une vérification et si besoin une réparation,
comme on peut le constater avec fdisk -l
.
fdisk -l whdd-copy-mode
Disk whdd-copy-mode: 37.3 GiB, 40020664320 bytes, 78165360 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 Disklabel type: dos Disk identifier: 0xace22e9e Device Boot Start End Blocks Id System whdd-copy-mode1 57993214 78163967 10085377 5 Extended whdd-copy-mode2 2048 16386047 8192000 83 Linux whdd-copy-mode3 * 16386048 30726143 7170048 83 Linux whdd-copy-mode4 30726144 57991167 13632512 83 Linux whdd-copy-mode5 57993216 64342015 3174400 82 Linux swap / Solaris whdd-copy-mode6 64344064 78163967 6909952 83 Linux Partition table entries are not in disk order.
On va d'abord commencer par n'utiliser fsck qu'avec l'option -n
qui ne travaille qu'en mode lecture et n'affichera seulement que les erreurs qu'il faudrait corriger.
fsck.ext4 -n /dev/mapper/loop0p4
Le retour de cette dernière commande est bien trop long pour être affiché ici.
En voici une copie (fichier texte) : fsck.txt
fsck.ext4 -f -y /dev/mapper/loop0p4
... (beaucoup de messages)
On va vérifier ce que ça donne maintenant :
en utilisant more (au cas où…)
fsck.ext4 -n /dev/mapper/loop0p4 | more
e2fsck 1.42.8 (20-Jun-2013) home-buntu : propre, 234476/848640 fichiers, 2178724/3407872 blocs
(propre
⇒ Il annonce que la partition est réparée).
Dernière vérification : “mounter” et lister le contenu de la partition réparée.
mount loop0p4 /mnt/sdc/sdc4/ && ls -l /mnt/sdc/sdc4/
Tout est là! \o/!
Toutes mes partitions sont réparées. Hourra!
En cours d'édition…
“Dé-mountage” des partitions.
umount /dev/mapper/loop0p{2,3,4,6}
Libération du périphérique /dev/loop0
⇒ destruction du “mappage” des partitions.
kpartx -d /dev/loop0
Destruction des points de “mountage” et du répertoire les contenant.
rm -r /mnt/sdc