Récupérer vos données avec WHDD

WHDD est un logiciel libre, écrit par Andrey UTKIN. Clone d’un freeware nommé MHDD, il permet de réaliser diverses opérations sur un disque dur, incluant la récupération de données sur un disque dur endommagé, dans certaines limites.

Son avantage réside d’une part du fait que c’est un programme bas niveau, (il s’adresse aux couches logicielles les plus proches du matériel), d’autre part il utilise une stratégie de recherche de données élaborée pour éviter le plus possible d’amener le disque dur testé à chauffer.

On le trouve prêt à l’emploi dans System Rescue CD, ou sous forme de sources sur github: https://github.com/whdd/whdd

Vous y trouverez l’information sur la manière de le compiler. Il necessite en prérequis le programme dialog, qui bien qu’il n’est plus développé est encore présent dans les dépôts des distributions GNU/Linux les plus employées (pour ce que j’en sais).

Comment l’utiliser, tout est sur cette page:

http://forum.linuxvillage.org/index.php/topic,689.msg3981.html#msg3981

et comment accéder et copier les données depuis l’image disque obtenue, c’est par ici:

https://debian-facile.org/doc:materiel:disques-durs:recuperation-de-donnees-disque-endomage?s[]=kpartx

Si ce programme ne garantit pas qu’il vous permette de récupérer les données sur un disque dur endommagé. Cependant j’ai pu le réussir déjà plusieurs fois, là ou par exemple, “dd” avait échoué.

 

 

 

Configurer prelink intelligemment

Prelink est un programme en ligne de commande disponible dans les dépôts de la plupart des distributions GNU/Linux. Il a pour rôle de permettre à l’administrateur du système de prélier les bibliothèque des applications installées de sorte à leur permettre de démarrer plus rapidement lorsqu’on lance le programme d’une de ces applications.

Une fois ces bibliothèques préliées, elles seront chargées automatiquement durant le démarrage du système (très probablement dans la phase 5 du démarrage, c’est à dire en “init 5”). Cela permettra aux programmes concernés de démarrer plus rapidement lorsque l’utilisateur l’invoquera, ce qui sur certaines configurations matérielles pourra être un avantage.

Dans tous les tutoriels que j’ai lus sur le web, la ligne de commande qui est systématiquement indiquée est, en root, (avec sudo ou en passant la commande “su” dans votre console),

prelink -avmR

Je recommande de NE PAS utiliser cette méthode. La raison en est que pour accélérer le démarrage de quelques programmes, on va précharger les bibliothèques de tous les programmes sans que ce soit nécessaire et en alourdissant considérablement la charge sur les ressources (mémoire, processeur, que sais-je ?).

Une expérience avec “-avmR” fut réalisée sur un live CD contenant des applications ludiques éducatives : dans le live CD, la suite gCompris prenait plus de 20 secondes à se lancer, ce qui fit croire au testeur qu’il ne se lançait simplement pas, dans le live CD. Une fois l’image ISO reconstruite avec un prelink ne liant plus que quelques programmes et non pas tous, ce fut résolu et gCompris se lançait alors avec un temps de latence de quelques secondes, tout à fait raisonnable. (La création de son répertoire de configuration utilisateur avait aussi été prévue au préalable).

Donc voici comment procéder. D’abord, prelink ne peut lier les bibliothèque d’un programme que si on l’invoque contre le binaire du dit programme. Par exemple, avec firefox, voici comment cela se passe:

firefox est sous /usr/bin/ mais c’est un script. Le binaire est ailleurs : il est sous /usr/lib/firefox/ et se nomme, firefox. Pour le vérifier, il suffit de lancer ls -l /usr/bin/firefox, puis de lire le contenu de /usr/lib/firefox/firefox.sh. Et aussi de lancer file /usr/lib/firefox/firefox, qui affichera que c’est un « ELF … blablabla ».

Pour prélier firefox, et lui seulement, ce sera donc, en root:

prelink -vmR /usr/lib/firefox/firefox

Les programmes intéressants à prélier, dans l’usage courant d’un PC, sont principalement firefox, chromium-browser, libreoffice. Si vous les employez souvent, sont aussi un peu lourds et lents au démarrage, Gimp, Inkscape, Scribus. Dans la distribution que j’utilise, le binaire libreoffice se nomme soffice.bin:

prelink -vmR /usr/lib/libreoffice/program/soffice.bin

Enfin, vous pourrez être surpris de voir tout votre système être prélié de manière automatique, si vous ne supprimez pas le bit d’exécution sur le cron qui est généralement fourni avec le paquet. Rendez-vous dans /etc/cron.daily, et lancez « ls -l prelink », vous devriez voir :

-rwxr-xr-x 1 root root 2379 mai 7 2013 prelink

S’il n’y est pas, il est peut-être dans /etc/cron.weekly, ou *.monthly. Cela dépend de ce qu’a prévu le responsable du paquet.

je conseille de le désactiver. En se positionnant dans le répertoire où se trouve le cron prelink, en root:

chmod a-x prelink

Il existe sous /etc un fichier prelink.conf qui contient et détermine quels fichiers et dossiers devraient être pris en compte. Si vous avez désactivé le cron relative à prelink, vous pouvez ignorer ce fichier. Enfin sous /etc/default il y a aussi un fichier prelink pour les préférences. De la même manière, si vous préliez uniquement quelques programmes lourds et lents à démarrer sur vos ordinateurs, vous n’avez pas besoin d’y toucher, d’autant qu’il n’est pas très clair sur ce qu’il fait. Je soupçonne qu’il n’est en fait pas pris en compte lorsque le cron est actif, et parfaitement inutile lorsqu’on garde la maîtrise sur les programmes traités avec prelink.

Pour l’utilité des options utilisées, le man de prelink est assez clair. Celles que j’emploie, -vmR sont v=verbose (bavard), m=–conserve-memory est recommandée pour gagner de l’espace et -R=–random accroît la sécurité dans le système.

Une fois vos programmes choisis préliés, vous pouvez lancer la commande prelink -p pour vérifier le contenu du cache de prelink.

En conclusion, prelink est un excellent programme, qui a tout avantage à être utilisé en sélectionnant les options disponibles de manière fine, en ignorant les configurations par défaut préjudiciables à une véritable optimisation du système.

 

Désactiver la partition swap définitivement

La méthode a été décrite sur cette page du site Unix Stackexchange, How to safely turn off swap permanently and reclaim the space?

Que ce soit parce que notre ordinateur dispose de beaucoup de mémoire système (RAM), ou parce que nous avons échangé notre vieux disque dur pour un SSD, plus rapide et pour lequel l’usage d’un swap sur disque est inutile et potentiellement destructeur, voici comment supprimer le swap définitivement.

En premier, ouvrir un terminal et désactiver le swap à l’aide de la commande swapoff (en mode administrateur)

sudo swapoff --all

Ou bien utiliser Gparted afin de désactiver le swap par un clic-droit «désactiver le swap»

Commenter par un ‘#’ en début de ligne celle concernant le swap dans le fichier /etc/fstab ;

Commenter également la ligne concernant le swap dans le fichier /etc/initramfs-tools/conf.d/resume

mettre à jour l’initramfs et grub:

sudo update-initramfs -u && sudo update-grub

En cas de doute sur l’ordre dans lequel lancer ces commandes, on peut aussi la répéter dans l’ordre inverse (la publication originale indique d’invoquer les deux méthodes quoi qu’il en soit):

sudo update-grub && sudo update-initramfs -u

Si le système original est sur un disque dur, et que l’on compte cloner son contenu pour le porter sur un SSD, on peut faire ces préparatifs avant de créer le clone et de le restaurer sur un SSD (de taille égale ou supérieure au volume du clone), sans oublier de supprimer la partition de swap depuis un live CD/USB… et de récupérer à l’aide de Gparted, cette fois depuis un système Live, l’espace libéré par la suppression du swap en agrandissant l’une des partitions restantes. Il existe d’ailleurs aussi des Live Gparted.

Pour cloner, j’utilise la distribution Clonezilla. On peut choisir l’une ou l’autre des versions disponibles, construite sur Ubuntu ou sur Debian.

 

Réglages webcam sur tablette PC Thinkpad Helix 3xxx

Ce superbe petit appareil est disponible chez mes revendeurs grossistes spécialisés dans le réemploi d’ordinateurs. Ils révisent et fournissent une petite garantie qui permet d’acheter en confiance des ordinateurs d’occasion de qualité issus du monde professionnel.

Celui dont il est question ici est un Hélix 3470 avec un processeur Intel i5 et 4 Go de mémoire vive, plus un SSD M2 de 128 Go, le tout dans l’écran et amovible : en effet, c’est une tablette-pc avec un bon petit clavier, le même que d’autres Thinkpad récents.

Thinkpad Helix 3xxx

Thinkpad Helix 3xxx sous Xubuntu

 

Côté webcam, il est équipé, comme toute tablette, d’une caméra avant, mode selfie, et d’une caméra arrière.

Lorsque vous voulez discuter avec vos amis en visioconférence, le mode avant est préféré, alors que le mode arrière vous permettra de réaliser des photos et des vidéos.

C’est toujours le mode arrière qui est sélectionné par défaut, ce qui peut être un problème si l’on souhaite surtout communiquer avec amis et famille, en particulier depuis le navigateur web Firefox.

Cet Hélix 3 a été installé sous Xubuntu 18.04. Voici la configuration réalisée pour obtenir le résultat le plus proche possible de ce que l’utilisateur final souhaite, à savoir pouvoir discuter en direct par visio depuis un navigateur web sans avoir à s’occuper de faire la sélection à chaque nouvelle session.

Premièrement, les outils : j’ai installé uvcdynctrl, un outil en ligne de commande qui m’a permis d’obtenir une information sur les 2 webcams.

En mode administrateur:

$ sudo uvcdynctrl --list
[sudo] Mot de passe de xxxxxx :
Listing available devices:
video0 Integrated Rear Camera
Media controller device: /dev/media0
Entity 1: Integrated Rear Camera. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
Device node
Entity: 1, Pad 0, Flags: 1
video2 Integrated Camera: Integrated C
Media controller device /dev/media2 doesn't exist
ERROR: Unable to list device entities: Invalid device or device cannot be opened. (Code: 5)
video1 Integrated Rear Camera
Media controller device: /dev/media1
Entity 1: Integrated Camera: Integrated C. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
Device node
Entity: 1, Pad 0, Flags: 1
video3 Integrated Camera: Integrated C
Media controller device /dev/media3 doesn't exist
ERROR: Unable to list device entities: Invalid device or device cannot be opened. (Code: 5)
$

 

Où je constatais que la webcam avant et celle arrière sont représentées chacune par deux périphériques virtuels (de type « character device », traduction approximative, fichier de type caractère).

Par ailleurs, video0 et video1 sont en relation avec media0 et media1, toujours sous /dev/, tandis que media2 et media3 n’existent pas.

J’aurais bien voulu les créer, suivant la méthode indiquée par exemple, dans un des commentaires de cette page du site Stackoverflow, mais même en respectant la syntaxe, et en suivant le même modèle, les 2 nouveaux fichiers de caractères créés avaient disparu au reboot. Je n’ai pas pris le temps de rechercher comment ces fichiers sont créés.

Aussi me suis-je ensuite penchée sur les liens symboliques udev en m’inspirant de ce paragraphe de la documentation Ubuntu.

À un détail près, ce seront plutôt les valeurs « Vendor:Device » fournies par la sortie standard de la commande « lsusb » qui seront préférées à la place des valeurs trouvées par la longue et complexe ligne de commande de la page du wiki Ubuntu.

Cela donne pour cet appareil :

Bus 002 Device 003: ID 04f2:b37e Chicony Electronics Co., Ltd
Bus 001 Device 005: ID 04f2:b394 Chicony Electronics Co., Ltd Integrated Camera

où l’on peut remarquer le premier groupe de caractères identiques dans ces deux lignes : « 04f2 » correspond au « Vendor », tandis que le second groupe de caractères, différents l’un de l’autre, correspond au périphérique (« Device » en anglais).

Cette information sera ensuite vérifiée dans le coin configuration du navigateur web Chromium Browser (version libre du navigateur Chrome de Google).

Voici maintenant le fichier /etc/udev/rules.d/83-webcam-persistant-devs.rules créé sur le principe et avec la syntaxe présentés sur le wiki Ubuntu-fr:

# Persistent rules for the front webcam
KERNEL=="video2", ATTRS{idProduct}=="b394", ATTRS{idVendor}=="04f2", SYMLINK+="IntegratedCameraC"
KERNEL=="video3", ATTRS{idProduct}=="b394", ATTRS{idVendor}=="04f2", SYMLINK+="FrontWebcam"

Entre autres, j’avais testé aussi avec l’argument «video*», cela ne permettait pas la détection de la camera avant par les logiciels de communication visés.

Voici les logiciels pour lesquels nous obtenons la webcam avant par défaut, moyennant un réglage:

Chromium Browser

Toujours en suivant la page du wiki Ubuntu-fr.org citée plus haut,

Gérer plusieurs entrées vidéos

Dans les navigateurs basés sur Chromium, vous devez selectionner l’entrée vidéo via l’URI chrome://settings/content/camera

Sélection webcam Chromium Browser

Sélection webcam Chromium Browser

Vous pouvez remarquer dans cette capture d’écran les valeurs « Vendor » et « Device » trouvés précédemment dans le retour de la commande « lsusb » et faire le rapprochement pour la webcam arrière et la webcam avant.

J’ai pu constater lors des tests que ce réglage une fois fait dans Chromium Browser est fixé, qu’il reste bien le même d’une session à l’autre.

J’ai tenté le même réglage dans Firefox, mais Firefox ne dispose pour l’instant pas d’un moyen de différencier les deux webcams. Il propose au choix d’autoriser ou non, l’usage de la webcam au cas par cas pour des sites web donnés et rien d’autre. Aussi, la seule solution pour utiliser la webcam dans Firefox est de ne pas cocher la case « se souvenir de l’autorisation pour ce site » (ou quelques termes signifiant la même chose), puis de refaire le choix de la webcam à chaque nouvelle session, ce qui est un peu moins pratique.

J’ai testé avec Skype, logiciel utilisé par un grand nombre de personnes, bien que non libre. Skype dispose aussi d’une option permettant de choisir laquelle des deux webcams sera utilisée par défaut, donc ici « Integrated Camera: Integrated C » plutôt que « Integrated Rear Camera ». Nos interlocuteurs préfèrent nous voir plutôt que le paysage qui nous fait face. 😀

J’avais aussi installé en chemin le paquet « v4l-utils », lequel contient la commande  » v4l2-ctl ».

$ v4l2-ctl --list-devices
Integrated Camera: Integrated C (usb-0000:00:1a.0-1.6):
/dev/video2
/dev/video3

Integrated Rear Camera (usb-0000:00:1d.0-1.3):
/dev/video0
/dev/video1
$

Cette ligne de commande confirmait également que la webcam avant était en lien avec les périphériques /dev/video2 et /dev/video3, alors que la webcam arrière était systématiquement liée à /dev/video0 et /dev/video1.

Ainsi, on peut considérer le réglage réalisé pour sélectionner par défaut la webcam avant, dans les programmes applicatifs devraient être stables dans le temps, pour la satisfaction de l’utilisateur final.

Pour s’informer sur udev et de la création de règles udev : https://doc.ubuntu-fr.org/udev  et encore plus de sources d’informations en bas de la page « Udev » sur Wikipedia, https://fr.wikipedia.org/wiki/Udev.