Installer debian en utilisant un Disque dur USB à la place d'un CD-ROM ou Clef USB

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Introduction

Les performances en vitesse écriture-lecture des clefs USB sont si désespérément lentes,
qu'on en oublie parfois qu'on avait lancé une copie d'image ISO sur une clef USB.
Et je ne parle même pas du temps passé à la gravure d'un CD ou DVD…

En utilisant un disque dur USB à la place d'une clef USB ou d'un CD-ROM, cette préparation est 100 fois plus vite faite,
et on peut y gagner une bonne demi-journée d'attente quand il s'agit d'une image ISO Live de plus d'un Gio.

Ici, j'utilise un disque dur SSD, ce qui améliore d'autant plus les performances en vitesse écriture-lecture.


Mais je n'ai pas envie de devoir sauvegarder tous les fichiers qui y sont stockés,
pour ensuite, une fois que je n'aurai plus besoin de cette Clef-disque USB,
être obligé de recréer chaque partition pour ensuite pouvoir y remettre en place tous les fichiers que j'aurai dû sauvegarder.

D'autant que finalement, je n'ai besoin que de 2 ou 3 Gio au grand maximum (si j'utilisai une image ISO autre qu'une image ISO debian netinstall de 250Mio maxi).

La solution que je propose ici consiste à ne sauvegarder que l'espace disque qui va être écrasé par la copie de l'image ISO.


NOTE : Bien sûr, cette méthode fonctionne aussi pour toutes les images ISO Hybrides de toutes les distributions.
         Et bien sûr aussi, elle permettra de gagner du temps si on n'a pas envie d'avoir à sauvegarder/restituer le contenu intégral d'une clef USB.
         Toutes les opérations qui suivent doivent être effectuées sans qu'aucun des systèmes de fichiers du disque cible ne soit mounté.

La sauvegarde

NOTE : Pour ce qui suit, ne fermez pas la fenêtre de terminal entre chaque opération, sinon les variables définies seront à re-définir

Je définis les quelques variables qui me simplifieront le travail pour la suite :

root@debG53SW:~# maCible="/dev/sdf"
root@debG53SW:~# taillBlck=$((1024*1024*4))
root@debG53SW:~# monIso="/home/michel/Téléchargements/firmware-7.6.0-amd64-netinst.iso"
root@debG53SW:~# nbBlckIso=$((($(stat -c %s "${monIso}")/$taillBlck)+1))
root@debG53SW:~# monSauv="/home/michel/Téléchargements/sauv-tmp-sdf-firmware-7.6.0-amd64-netinst.iso.DD"
root@debG53SW:~#

À ce stade, soyez sûr et certain de ne pas avoir fait d'erreur concernant le nom du fichier de périphérique (dans ce tuto : /dev/sdf) associé au disque USB,

   UNE ERREUR DU GENRE  :  maCible="/dev/sda" au lieu de maCible="/dev/sdf"  ! ET CE SERA LE DÉSASTRE !

     je récupère (sauvegarde) une copie de l'espace disque qui sera écrasé par la copie du fichier image ISO sur le disque :

root@debG53SW:~# dd bs=$taillBlck count=$nbBlckIso if="${maCible}" of="${monSauv}" && sync
60+0 enregistrements lus
60+0 enregistrements écrits
251658240 octets (252 MB) copiés, 2,42913 s, 104 MB/s
root@debG53SW:~#

Je copie le fichier image ISO ${monIso} sur mon disque USB ${maCible} :

root@debG53SW:~# dd bs=$taillBlck if="${monIso}" of="${maCible}" && sync
59+0 enregistrements lus
59+0 enregistrements écrits
247463936 octets (247 MB) copiés, 3,7607 s, 65,8 MB/s
root@debG53SW:~#


Mon disque est maintenant prêt à être utilisé comme une clef USB pour l'installation de debian.


Je débranche le disque USB que je viens de préparer avec ma machine, pour le connecter à la machine sur laquelle je veux installer debian,
et je vais la démarrer en la faisant booter sur ce disque USB.

L'installation de debian

Au cours de l'installation de debian, le programme se rendra compte qu'il ne s'agit pas d'une Clef USB ou d'un lecteur de CD-ROM, car il ne s'agit pas d'un périphérique amovible.
Mais il va nous proposer d'entrer le nom du fichier de périphérique correspondant au disque-Clef USB.

┌─────────────────────────────┤  [!!] Détecter et monter le CD  ├─────────────────────────────┐ 
│                                                                                             │ 
│  Afin de pouvoir accéder au lecteur de CD-ROM, veuillez indiquer le fichier de              │ 
│  périphérique utilisé. En effet, les lecteurs non standards utilisent des fichiers de       │ 
│  périphérique non standard tels que /dev/mcdx par exemple.                                  │ 
│                                                                                             │ 
│  Vous pouvez obtenir un interpréteur de commandes sur le deuxième terminal (ALT+F2) pour    │ 
│  voir les périphériques disponibles dans /dev en tapant « ls /dev ». Vous pourrez revenir   │ 
│  à cet écran par ALT+F1.                                                                    │ 
│                                                                                             │ 
│  Fichier de périphérique pour le lecteur de CD-ROM :                                        │ 
│                                                                                             │ 
│  /dev/sdc_________________________________________________________________________________  │ 
│                                                                                             │ 
│                                         <Continuer>                                         │ 
└─────────────────────────────────────────────────────────────────────────────────────────────┘ 

Pour connaître le nom du fichier de périphérique correspondant au disque-Clef USB,
j'ai ouvert une deuxième console avec ALT+F2, pour entrer la commande : ls -l /dev/disk/by-label

ce qui m'a permis de retrouver la partition Debian 7.6.0 amd64 1 -> ../../sdc1


Le fichier de périphérique associé à mon disque-Clef USB est donc /dev/sdc


Le programme d'installation a continué son travail normalement, et la machine a pu redémarrer avec son système debian.

La remise à l'état d'origine du disque dur

Je vais maintenant remettre ce disque-Clef USB dans son état initial :

Je connecte mon disque USB sur la machine que j'avais utilisée pour créer le fichier de sauvegarde,
et je définis les quelques variables qui me simplifieront le travail pour la suite :

root@debG53SW:~# maCible="/dev/sdf"
root@debG53SW:~# taillBlck=$((1024*1024*4))
root@debG53SW:~# monSauv="/home/michel/Téléchargements/sauv-tmp-sdf-firmware-7.6.0-amd64-netinst.iso.DD"
root@debG53SW:~#


À ce stade, soyez sûr et certain de ne pas avoir fait d'erreur concernant le nom du fichier de périphérique (dans ce tuto : sdf) associé au disque USB,

   UNE ERREUR DU GENRE  :  maCible="/dev/sda" au lieu de maCible="/dev/sdf"  ! ET CE SERA LE DÉSASTRE !

     Je lance la recopie du fichier ${monSauv} sur le disque ${maCible} :

root@debG53SW:~# dd conv=notrunc bs=$taillBlck if="${monSauv}" of="${maCible}" && sync
60+0 enregistrements lus
60+0 enregistrements écrits
251658240 octets (252 MB) copiés, 3,83389 s, 65,6 MB/s
root@debG53SW:~#

Je déconnecte et reconnecte le cordon USB de mon disque.

Mon disque est maintenant dans son état initial d'avant la copie du fichier image ISO, avec toutes ses partitions originales et ses fichiers bien en place.

Après m'être assuré que tout est bien en place sur mon disque, je peux donc supprimer le fichier de sauvegarde :

root@debG53SW:~# rm "${monSauv}"

Bilan

Durée en lecture/écriture pour Sauvegarde + "Gravure ISO" + Restauration => moins de 10 secondes.