Skip to content

Blog Net-Expression

Four-tout informatique !

Comme son nom l’indique, Ubuntu Rescue Remix se présente sous la forme d’un Live Cd bootable basé sur la distribution Linux Ubuntu. Ce cd est propose des outils de base tel que dd, ddrescue, parted, … pour réparer, récupérer des données, et faire bien d’autres choses sur des systèmes sur lequels le boot est impossible…

Obtenir les droits / se connecter en root

Si vous ne souhaitez plus taper sudo à chaque fois, et que vous devez installer de nouveaux paquets, ou effectuer des travaux de maintenance sur le Ubuntu Rescue Remix, vous devrez peut être élever vos privilèges…
Pour changer le mot de passe root :

$ sudo passwd root

Changer de clavier (Qwerty ver Azerty)

$ sudo apt-get install console-data

Puis “Select keymap from full list” et je sélectionne “pc / azerty / French / Same X11 (latin 9) / Standard

Installer SSH pour travailler à distance

Vous devez avoir effectué la manipulation vue en premier pour changer le mot de passe root ou créé un nouvel utilisateur…

N’oubliez pas de brancher un câble réseau !… (hihihi oui ça m’est arrivé !)

$ sudo apt-get install ssh

Puis récupérer votre adresse ip comme ceci pour vous connecter avec votre client préféré :

$ sudo ifconfig

Lister les disques et partitions

sudo fdisk -l

Créer une partition ext4 sur un disque vierge

$ sudo fdisk /dev/sda

Taper “n” pour créer une nouvelle partition, faire “entrée” à chaque fois pour créer une partition sur tout le disque…
Puis “w” pour écrire sur disque les modifications

Puis, nous devons formater cette nouvelle partition pour la rendre utilisable…

$ sudo mkfs.ext4 /dev/sda1

Installer une version récente des outils vmfs-tools

La version de l’outil installé via le gestionnaire de paquets était trop vieille et ne permettait pas de monter des partitions ESXI 5 et plus… Il faut donc télécharger les sources, recompiler, et installer…

$ cd /tmp
$ wget https://launchpad.net/ubuntu/+archive/primary/+files/vmfs-tools_0.2.5-1.tar.gz
$ tar -xzf vmfs-tools_0.2.5-1.tar.gz
$ cd vmfs-tools
$ sudo apt-get install gcc make uuid-dev pkg-config libfuse-dev
$ ./configure
$ make
$ sudo make install

Pour tenter de récupérer une partition endommagée

Dans un premier temps il faut télécharger les paquets nécessaires.

$ sudo apt-get install gddrescue

Puis en utilisant la commande ddrescue, récupérer les parties en bonne santé en premier.

Ne montez pas la partition avant récupération ! (ce n’est pas utile, et dans le cas d’un disque / partition endommagée, il convient d’éviter au maximum les sollicitations)

$ ddrescue -n /dev/sdb3 /mnt/sda3/esxi-sdb3-500GB.img esxi-sdb3-500GB.rescue.log
GNU ddrescue 1.19
Press Ctrl-C to interrupt
rescued: 494869 MB, errsize: 8192 B, current rate: 26368 B/s
ipos: 336256 MB, errors: 2, average rate: 25085 kB/s
opos: 336256 MB, run time: 5.47 h, successful read: 0 s ago
Finished

Puis on tente de grappiller la fin ce qui peut prendre quelques secondes à quelques jours, voir l’infini…

ddrescue -r5 /dev/sdb3 /mnt/sda3/esxi-sdb3-500GB.img esxi-sdb3-500GB.rescue.log
GNU ddrescue 1.19
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 494869 MB, errsize: 8192 B, errors: 2

Current status
rescued: 494869 MB, errsize: 8192 B, current rate: 0 B/s
ipos: 336256 MB, errors: 2, average rate: 0 B/s
opos: 336256 MB, run time: 2.86 m, successful read: 2.86 m ago
Finished

Pour monter une partition VMFS

Pour monter des partitions VMFS vous devez installer au préalable les vmfs-tools comme expliqué dans le point précédent.

$ sudo mkdir /mnt/sdb3
$ sudo vmfs-fuse /dev/sdb3 /mnt/sdb3

La ligne B du métro de Rennes en construction

Le tunnelier Elaine vient de voir le jour à la prochaine station Cleunay qui sera le futur terminus de la ligne B du métro Rennais actuellement en contruction.

Des images impressionnantes et émouvantes de la percée du mastodonte de pratiquement 10 mètres de diamètre et plus de 80 mètres de long pour un poids de 7000 tonnes dans la vidéo ci-dessous :

Quelques informations sur le tunnelier Elaine

La vidéo suivante explique le fonctionnement du tunnelier qui creuse la ligne B du métro de Rennes sous nos pieds 7j / 7 24h / 24 !

Installer les paquets pré-requis

A partir de la version Sid, Node.js fait partie des paquets supportés officiellement, vous pouvez donc installer directement le paquet voulu en exécutant la commande suivante :

# aptitude install nodejs

Si vous avez une version stable de la distribution Debian, Node.js n’est pas encore dans le dépôt officiel. Il faut donc télécharger les sources et le compiler


# aptitude update
# aptitude install git-core curl build-essential openssl libssl-dev

Télécharger les sources à partir du dépôt GIT


git clone https://github.com/joyent/node.git
cd node

Choisir la version voulue

Si vous ne connaissez pas la dernière version stable, vous pouvez aller faire un tour sur la page de chargement du site officiel qui indique “current version” actuellement la v0.10.28 stable.
Il est possible d’utiliser la commande git tag pour lister les versions existantes.


# git checkout v0.10.28

Compiler


# make
# make install

Tester

Pour vérifier que node.js et NPM sont correctemment installés et prets à fonctionner, vous pouvez taper les commandes suivantes :


$ node -v
$ npm -v

Installer une librairie node.js

Vous pourriez avoir besoin d’installer une librairie supplémentaire comme socket.io

$ npm install socket.io

Attention la commande précédente installera la librairie uniquement dans le répertoire courant.

Si vous souhaitez installer cette librairie de facon globale, il faudra utiliser l’option g avec les droit administrateur.


# npm install -g socket.io

Shutter

Pour des besoins personnels, je cherchais un logiciel qui permette de prendre des captures écran de n’importe quelle page d’un site internet en ligne de commande…

Après quelques recherches je suis tombé sur un premier logiciel Shutter, mais ça nécessitait d’installer un peu moins d’une centaine de MB… (je n’installe que le strict minimum en général sur mes serveurs, et je n’ai donc pas d’interface graphique).
A noter que Shutter propose aussi d’autres fonctionnalité pour enrichir le screenshot : dessins de flèches, de bulles, etc…

Webkit2png

J’ai continué mes recherches et je suis tombé sur webkit2png qui semble être un script python. Au départ, je n’ai pas poussé plus mes investigations car je pensais que c’était un programme uniquement disponible sur OSX et qu’il n’est pas disponible en tant que dépôt officiel Ubuntu / Debian.
Par contre si il vous vient l’envie d’essayer, je vous propose d’utiliser ce Installer python-webkit2png.

CutyCapt

Mon choix s’est alors arrêté sur le 3ème que j’ai trouvé, et il semble réaliser plutôt bien son travail.
Personnellement je n’ai du installer que 22 + 15 MB. sur un serveur Debian presque “nu”.

L’installation est rapide et simple:

# aptitude install cutycapt

Si vous n’avez pas de serveur X, vous devait installer le minimum (ce sont les 15 MB. supplémentaires) :

# aptitude install xvfb

L’utiliser n’est pas plus compliqué (on lui demande de prendre un screenshot de la page d’accueil de Google en emulant un écran de 1024 sur 768 avec une profondeur de couleur de 24bits) :

$ xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=http://www.google.fr --out=www.google.fr.png

Et ca donne ca :

Le standard “MBR” anciennement utilisé pour partionner un disque limite la taille des partitions à 2.2 To. Pour outrepasser cette limite, il est nécessaire d’utiliser un nouveau standard (GPT).

Parted : un outils de partitionnement MBR et GPT sous Linux :

L’outils Fdisk utilisé pour partionner son disque sous Linux ne gère pas le standard GPT, et il n’est donc plus possible de l’utiliser pour créer des partitions excédent les 2To…

Pour le remplacer, je vous propose d’utiliser Parted, un autre outils permettant de partitioner son disque dans le format MBR ou GPT selon votre choix (Parted propose aussi une version graphique Gparted).

Partionner et formater une partition de plus de 2 To sous Linux

Attention en suivant ces commandes, vous perdrez toutes vos partitions existantes, ainsi que tout ce qu’elles contiennent. Ne faites pas ces manipulations si vous ne savez pas ce que vous faites ou que vous n’êtes pas sûr de vous sans avoir fait une sauvegarde complète de votre disque !

Partitionner votre disque dur sous Linux

Après avoir lancé la commande “Parted”, il faut sélectionner le device (disque; ici /dev/sda) que vous souhaitez partionner. Ensuite, nous spécifions que la table de partition sera décrite via le standard GPT. Enfin, nous créons une seule et unique partition qui couvrera ici la totalité du disque dur (0 à 100% de l’espace). Mais vous pouriez en décrire d’autres…

# parted
> select /dev/sda
> mklabel gpt
> mkpart primary 0% 100%
> quit

Formater une partition sous Linux

Dans le premier paragraphe, nous avons vu comment partionner notre disque dur. C’est à dire comment répartir les partitions au sein disque dur en lui donnant un début et une fin. Pour commencer à entreposer des données dans une partition, il faut définir son format. C’est à dire comment serront organisées les données au sein de celle-ci.

Vous pouvez par exemple formater votre nouvelle partition en ext4 en faisant comme suit :


# mkfs.ext4 /dev/sda

Monter et accéder à une partition sous Linux

Sous Windows chaque device prend une lettre telle que “C:” ou “A” historiquement pour les disquettes… Sous Linux, il n’y a pas de lettre pour référencer un périphérique d’entrées / sorties, et il est donc possible de le monter n’importe ou dans l’arborescence du système de fichiers.

L’usage veut que l’on monte communément un disque dur dans le répertoire /mnt; nous allons donc faire démarrer l’arborescence de notre partition en /mnt/sda1/ (1 pour la première partition du device /dev/sda). /mnt/sda1/ représentera alors la racine de notre nouvelle partition.

Une partition peut être monter dans le système de fichiers via la commande mount en précisant son type comme suit :

# mkdir /mnt/sda1
# mount -t ext4 /dev/sda1 /mnt/sda1

A ce stade vous pouvez utiliser les fichiers contenus dans votre nouvelle partition : les lister, les lire, en écrire, ou en supprimer… Par exemple :

# dir /mnt/sda1/

Si vous n’avez plus besoin de cette partition, vous pouvez la demonter avec la commande suivante :

# umount /dev/sda1

Monter une partition de facon permanente

En vous arretant à ce stade, la prochaine fois que vous redémarerez votre ordinateur, vous devrez de nouveau remonter la partition que vous venez de monter pour pouvoir vous en servir…

Les partions à monter automatiquement au démarrage du système sont décrites dans le fichier /etc/fstab. Ajouter donc simplement la ligne suivante en fin de fichier pour automatiser le montage de votre partition :

/dev/sda1 /mnt/sda1 ext4 defaults 0 2

A Reims, la piscine olympique du Nautilud et la patinoire boquaine seront fermées jusqu’à nouvel ordre !…
En cause, la toiture, qui une fois de plus est montrée du doigt.

En ce qui concerne les baigneurs, pas de panique, les autres piscines de Reims verront leurs horaires réamenagés.
Mais pour les patineurs, l’heure est grave ! Les pages de 50 ans d’histoire se tournent. Cette fois, je crains que ce soit la fin…

De plus amples explications ici : http://www.lunion.presse.fr/region/reims-51-la-piscine-patinoire-fermee-en-urgence-ia3b24n238206.

J’ai décidé de faire apparaitre ici les mauvais éleves de l’environnement. Les entreprises qui malgrès la mention “Pas de publicité Merci” écrit en gros sur la boite aux lettres continues malgres tout de gaspiller, polluer, et de nous faire perdre notre temps, et notre argent… Car au final c’est nous qui paierons pour le recyclage, ou indirectement en achetant leurs produits…

  • Soit ces entreprises ont de l’argent à perdre en produisant plus de courrier que de personne disposées à le lire; c’est ce qu’on nomme généralement du Gaspillage.
    Je serais pas contre une taxe, des quotas, voir des amendes pour les récidivistes
  • Et, ou, soit ces entreprises font appel à des prestataires externes qui ne sont pas vraiment soucieux de l’image de leurs clients… Et dans ce cas, je leur propose de bien vouloir auditer leur prestataires, car personnelement un tract recu dans ma boite, a un impact réelement négatif sur ma consommation

Les entreprises qui ne respectent pas la mention “stop pub” à RENNES

IKEA : un magnifique catalogue d’environ 100 pages; directement jeté à la poubelle…

Blot Immobilier : procpectus d’une demi-page.

Quelques statistiques

Si 15% des foyers refusaient de recevoir les imprimés publicitaires distribués dans leurs boîtes, 130 millions de kilos de papier économisées seraient déjà économisées, soit autant de kilos de déchets en moins à traiter.
Halte au gaspillage, y en a marre !

Note pour plus tard… Il faudrait aussi penser à mettre en valeur ceux qui respecte le “Stop pub” sur les boites aux lettres !

Il est parfois utile d’accéder à un disque dur de manière physique (mode Raw) plutot que dans un contexte virtualisé. Par exemple pour pouvoir prendre un disque utilisé par des machines virtuelles, et le mettre directement dans un autre serveur qui ne sait pas lire les disques virtuels de VMware…

Lister les disques reconnus par ESXi

Dans un premier temps nous listerons les disques physiques reconnus par notre serveur ESXi


# esxcfg-mpath -l
sata.vmhba32-sata.0:0-t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281
Runtime Name: vmhba32:C0:T0:L0
Device: t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281
Device Display Name: Local ATA Disk (t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281)
Adapter: vmhba32 Channel: 0 Target: 0 LUN: 0
Adapter Identifier: sata.vmhba32
Target Identifier: sata.0:0
Plugin: NMP
State: active
Transport: sata

sata.vmhba0-sata.0:0-t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
Runtime Name: vmhba0:C0:T0:L0
Device: t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
Device Display Name: Local ATA Disk (t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH)
Adapter: vmhba0 Channel: 0 Target: 0 LUN: 0
Adapter Identifier: sata.vmhba0
Target Identifier: sata.0:0
Plugin: NMP
State: active
Transport: sata

ou

# ls /dev/disks/ -l
-rw------- 1 root root 60022480896 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
-rw------- 1 root root 4161536 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:1
-rw------- 1 root root 4293918720 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:2
-rw------- 1 root root 54784826880 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:3
-rw------- 1 root root 262127616 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:5
-rw------- 1 root root 262127616 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:6
-rw------- 1 root root 115326976 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:7
-rw------- 1 root root 299876352 Oct 13 18:13 t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:8
-rw------- 1 root root 3000591900160 Oct 13 18:13 t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281
lrwxrwxrwx 1 root root 74 Oct 13 18:13 vml.0100000000202020202057442d574341575a32383437323831574443205744 -> t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281

lrwxrwxrwx 1 root root 74 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:1 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:1
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:2 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:2
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:3 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:3
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:5 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:5
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:6 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:6
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:7 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:7
lrwxrwxrwx 1 root root 76 Oct 13 18:13 vml.01000000004f435a2d4c373442453645385a313942534741484f435a2d4147:8 -> t10.ATA_____OCZ2DAGILITY3____________________________OCZ2DL74BE6E8Z19BSGAH:8

On voit que l’hyperviseur ESXi a découvert 2 disques physiques:

  • un disque dur Western Digital de 3To (vml.0100000000202020202057442d574341575a32383437323831574443205744)
  • Un SSD OCZ Agility de 60Go

Ajout d’un disque virtuel à partir d’un disque physique

Pour pouvoir monter un disque via nos machines virtuelles, il nous faut une image virtuelle fournissant une sorte de passerelle vers notre disque physique.
Nous placerons ce fichier images dans la baque de données : “datastore1.

J’ai essayé d’utiliser la commande “vmkfstools” avec le paramètre “-r” mais cela m’a renvoyé une erreur en me disant que mon disque était trop gros (je pense qu’elle crée une image intermédiaire du disque dans le datastore1; mais ce n’est pas ce que je veux ici.


# vmkfstools -r /vmfs/devices/disks/t10.ATA_____WDC_WD30EZRX2D00MMMB0_________________________WD2DWCAWZ2847281 /vmfs/volumes/datastore1/WD3To.vmdk

Alors j’ai essayé “vmkfstools” avec le paramètre “-z”, et la magie a opéré !


#vmkfstools -z /vmfs/devices/disks/vml.0100000000202020202057442d574341575a32383437323831574443205744 /vmfs/volumes/datastore1/WD3To.vmdk

Monter le disque sur une machine virtuelle (VM)

Dans Sphere vous pouvez maintenant ajouter ce disque dur à une machine virtuelle.

  • Faites click droit sur la machine virtuelle,
  • dans le menu contextuel “Modifier les paramètres”.
  • Puis “Ajouter…”
  • Choisissez “Disque dur”
  • Puis, “Utiliser un disque virtuel existant”
  • Allez chercher l’image disque précedement crée dans la banque (datastore) qui convient
  • Et pour finir “Suivant”, Terminer”.

Dans la liste des périphériques apparaitra alors un disque dur “Raw Lun mappé”. C’est gagné !


# cat /vmfs/volumes/datastore1/WD3To.vmdk
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=fffffffe
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfsPassthroughRawDeviceMap"

# Extent description
RW 5860531055 VMFSRDM "WD3To-rdmp.vmdk"

# The Disk Data Base
#DDB

ddb.virtualHWVersion = "9"
ddb.longContentID = "a8a55ebb6d74b289bb71f6e3fffffffe"
ddb.uuid = "60 00 C2 94 81 45 db f1-f8 24 d1 ee ce 2e 54 bd"
ddb.geometry.cylinders = "364801"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "buslogic"

En fin de vie, les disques durs ont tendance à faire de plus en plus d’erreurs de lecture / écriture.
Parfois, ils ne donnent aucun signe de fatigue, et lache d’un seul coup.

Utiliser ddrescue

Un disque dur pourrait en simplifiant beaucoup être une énorme liste d’octets. En fin de vie, une partie de cette liste devient difficilement accessible. Le système se bloque, devient lent…

Dans l’univers Unix, la commande dd permet de copier les octets d’un device vers un autre. Mais elle ne gère pas les eventuelles erreurs qui se produisent lorsqu’un disque dur est en fin de vie. Au contraire la commande ddrescue est concue pour travailler dans ce contexte particulier, et fournie un ensemble d’outils permettant d’insister la ou ca fait mal !. Par exemple, en re-essayant de lire plusieurs fois les secteurs illisibles, de facon aléatoire, en essayant de lire des blocs de données de plus en plus petits…

Faire l’état des lieux

Pour commencer, il faut identifier les disques durs via la commande suivante :

# fdisk -l

Disk /dev/sdb: 3000.6 GB, 3000591900160 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x2681f139

Device Boot Start End Blocks Id System
/dev/sdb1 1 243201 1953512001 7 HPFS/NTFS

Disk /dev/sdc: 2000.4 GB, 2000397852160 bytes
255 heads, 63 sectors/track, 243201 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: 0x2681f139

Device Boot Start End Blocks Id System
/dev/sdc1 1 243201 1953512001 7 HPFS/NTFS

Disk /dev/sda: 203.9 GB, 203927027200 bytes
255 heads, 63 sectors/track, 24792 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: 0x0004fc5d

Device Boot Start End Blocks Id System
/dev/sda1 1 973 7811072 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 973 1459 3906560 82 Linux swap / Solaris
/dev/sda3 1459 24793 187427840 83 Linux

La première passe

Le but de la première passe est de récupérer un maximum de données en un minimum de temps tout en se faisant une idée des dégats (difficulté de récupérer les données, zones endommagées plus ou moins grandes, situées à des endroits plus ou moins critiques).

Ici, on lit le disque sdc et on copie son contenu sur sdb en commencant au début du disque. Il va de soit que le disque cible “sdc” doit être sain pour s’assurer le maximum de chance ! A chaque passe ou tentative, le résultat de la lecture est inscrit dans le fichier “ddrescue.media.log”; si bien que les blocs illisibles ne seront pas relus (si les zones endommagées sont nombreuses, le fichier peut vite enfler, mieux vaut s’assurer qu’il y aura suffisament de place dès le début !).

# ddrescue -n -i 0 /dev/sdc /dev/sdb ddrescue.media.log

Souvent c’est le début du disque qui pose problème, afin de gagner du temps si vous remarquez que seul le début du disque est vraiment très endommagé, vous pouvez sauter certaines zones.

# ddrescue -n -i 200G /dev/sdc /dev/sdb ddrescue.media.log

Par exemple, ici nous commencons une passe à partir des 200Go (soit au 1/10 des 2To). En pratiquant de la sorte et par itérations, il sera possible de récupérer un maximum de données, en convergeant très rapidement vers les blocs de données qui posent vraiment problèmes.

Grace au fichier “ddrescue.media.log”, il est possible d’arreter et de reprendre et de travailler par étape.

A la fin de la premiere passe voici ce qu’on peut obtenir…

# ddrescue -n -i 0 /dev/sdc /dev/sdb ddrescue.media.log
Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued: 2 TB, errsize: 65536 B, errors: 6
Current status
rescued: 2 TB, errsize: 65536 B, current rate: 0 B/s
ipos: 0 B, errors: 6, average rate: 0 B/s
opos: 0 B, time from last successful read: 0 s
Finished

  • rescued 2 TB : nous indique que nous avons récupéré environ 2To de données ! (Youhou)
  • errors 6 : sur la totalité du disque 6 blocs de données non pas pu être lu dès la première tentative…
  • errsize 65536 B : au total il manque pour le moment 65536B soit 65Ko sur les 2To ! Une paille !

Récupérer le reste !

Dans le but de récupérer les données “oubliées” lors de la première passe, nous allons demander à ddrescue de lire des blocs plus petits, et de réessayer plusieurs fois. Ici il re-essaye 2 fois, et tente de récupérer 16 secteurs à la fois…

# ddrescue -i 0 -c 16 -r 2 /dev/sdc /dev/sdb ddrescue.media.log

Dans notre cas précis, le disque dur ayant très peu de données illisibles, nous allons aller directement droit au but :

# ddrescue -i 0 -c 1 -r 5 /dev/sdc /dev/sdb ddrescue.media.log

Dans mon cas cela n’aura servi à presque rien, en insistant un peu, j’ai réussi à récupérer encore 15Ko !…

Automatiser la récupération

Il existe un script particulierement efficace dd_rhelp, il permet d’automatiser ces différentes passes avec ddrescue, en commencant la ou il peut lire, puis en insistant sur les blocs difficiles. Tant qu’il y a des données à récupérer il continuera inlassablement à parcourir le disque dans l’espoir de récupérer encore des données (certains n’hesite pas à le laisser tourner plusieurs semaines !)…

Que faire ensuite ?

Reprendre une vie normale

J’ai eu de la chance cette fois, à l’aire du tout numérique, perdre des données c’est parfois terrible… La vidéo de la naissance du petit dernier, la photo de votre première conquète amoureuse, ou vos fiches de paye que vous aviez soigneusement scannées une à une… Meme si mettre en place une redondance est souvent cher, long à mettre en place, fastidieux… Je vous engage vivement à le faire… Certaines données n’ont simplement pas de prix…

Introduction

Je viens d’acheter un disque dur de 3To (ou 3TB – Tera Bytes) et je viens de me rendre compte que la partition que je viens de créer en ext3 via cfdisk fait environ 850Go ! Or ce n’est pas ca que j’avais demandé au départ !… lol !

Créer une table GPT sur un disque dur

Au lieu d’utiliser cfdisk, nous allons utiliser gparted qui va nous permettre de créer une table GPT.

faites attention aux disques sur lesquels vous faites les manipulations suivantes)

Ici je crée une nouvelle table GPT sur le disque /dev/sdc en favorisant un maximum les performances.


# parted -s -a optimal /dev/sdc mklabel gpt

Créer une partition ext4 de plus de 2To

On crée ensuite une partition de type ext4 recouvrant l’intégralité du disque dur.


# parted -s -a optimal /dev/sdc mkpart primary ext4 0% 100%

Pour vérifier le résultat de notre action :


# parted /dev/sdc
GNU Parted 2.3
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA ST3000DM001-9YN1 (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 3001GB 3001GB primary

(parted) q

Formater la partition en ext4

Pour formater le disk en ext4 et sans blocs réservés (inutiles dans le cadre d’une partition de sauvegarde):


# mkfs.ext4 -m 0 /dev/sdc1

Monter la partition ext4


# mkdir /mnt/sdb1
# mount -t ext4 /dev/sdb1 /mnt/sb1