Recherche de site Web

Comment écrire des ISO sur une clé USB directement en utilisant la commande pv sous Linux


Dites adieu à la commande dd ! La dernière utilité Pv (Pipe Viewer) peut désormais écrire des ISO directement sur des disques USB !! Ce guide vous montrera comment utiliser la commande pv au lieu de dd pour l'écriture d'images sous Linux.

L'utilisation de l'utilitaire en ligne de commande pv fournit une barre de progression en temps réel, un temps de transfert estimé (ETA) et une plus grande transparence pendant le processus.

Introduction

Beaucoup d'entre nous connaissent l'utilisation de la commande dd pour écrire des images d'installation sur des périphériques de stockage. La commande dd est la méthode à l'ancienne pour créer des clés USB bootables sous Linux.

La commande dd est assez puissante. Elle lit simplement à partir d'un fichier et écrit dans un autre. La commande typique pour écrire des images sur un périphérique ressemble à ceci :

sudo dd if=installer.img of=/dev/sda2 bs=1M status=progress

Bien sûr, certains autres outils comme pv (Pipe Viewer) et cat pourraient accomplir la même tâche. La principale raison pour laquelle dd est couramment utilisé à cet effet est qu'il peut être exécuté avec des privilèges root, alors que rediriger la sortie de cat ou pv nécessite généralement d'exécuter le shell avec un accès root. La commande sudo dd ... est plus concise que sudo sh -c 'cat ...', n'est-ce pas ?

Limitations de dd

Bien que la commande dd fonctionne très bien pour créer des images, elle présente quelques limitations :

  • Les informations de progression fournies par dd n'affichent pas la progression en pourcentage ni ne calculent un temps estimé d'arrivée (ETA). Elles montrent seulement le nombre d'octets écrits.
  • La taille de bloc par défaut de dd n'est pas optimisée pour les systèmes modernes, c'est pourquoi le paramètre bs= est souvent inclus.
  • Il est facile d'oublier d'inclure status=progress, et devoir le spécifier à chaque fois peut être encombrant.

Qu'est-ce que la commande pv ?

Pv signifie Pipe Viewer, qui est un outil en ligne de commande permettant aux utilisateurs de surveiller la progression des données à travers un pipeline.

Il peut être inséré dans n'importe quel pipeline ordinaire entre deux processus pour donner une indication visuelle de la rapidité avec laquelle les données transitent, du temps écoulé et d'une estimation du temps nécessaire pour terminer.

Voici quelques caractéristiques clés de pv :

  • Indication de progression : pv affiche une barre de progression, le pourcentage d'achèvement, le temps écoulé et le temps restant estimé.
  • Calcul de l'ETA : Il calcule et met à jour le temps estimé d'arrivée (ETA) pour l'achèvement du transfert de données.
  • Mise en mémoire tampon : pv peut gérer la mise en mémoire tampon, ce qui est utile lors de la gestion de périphériques lents ou de transferts réseau.
  • Contrôle et Statistiques : Il fournit un contrôle sur le flux de données et peut générer des statistiques sur le transfert.
  • Flexibilité : pv peut être utilisé dans divers scénarios, tels que copier des fichiers, compresser des données ou toute autre situation où des données sont transmises d'un processus à un autre.

La commande pv est particulièrement utile lorsque vous devez surveiller la progression d'opérations qui pourraient autrement être invisibles, comme lorsque vous utilisez la commande dd pour écrire une image sur un disque ou lorsque vous transmettez des données à travers plusieurs commandes sans retour direct sur le débit de transfert ou la progression.

Pourquoi utiliser pv pour écrire des fichiers sur des périphériques de blocs ?

L'utilitaire pv offre quelques avantages par rapport à dd :

  • pv affiche une barre de progression en temps réel et une ETA, fournissant des informations plus détaillées que simplement les octets écrits.
  • pv détermine automatiquement les tailles de tampon optimales, éliminant le besoin de réglages manuels.
  • pv est plus concis, car il n'est pas nécessaire de spécifier status=progress ou bs=....

La dernière commande pv peut flasher des ISO directement sur une clé USB

La version récente de pv (1.8.10) inclut une nouvelle option --output (-o). Cette fonctionnalité permet à pv d'écrire directement dans un fichier ou sur un périphérique, de manière similaire à dd.

L'option --output dans pv version 1.8.10 vous permet de rediriger la sortie du visualiseur de tuyaux vers un fichier au lieu de l'afficher sur la sortie standard (généralement le terminal).

Ce changement peut être particulièrement utile dans des scénarios où vous souhaitez surveiller la progression du transfert de données tout en sauvegardant simultanément la sortie dans un fichier, plutôt que de simplement l'afficher sur le terminal.

Maintenant, allons-y et installons la dernière utilité pv. La dernière pv n'est pas encore disponible dans les dépôts par défaut des systèmes d'exploitation Linux populaires. Nous devons donc l'installer à partir des sources.

Pour installer un logiciel à partir du source, vous devez installer les outils de développement et GNU Stow. Bien que Stow soit optionnel, je vous recommande vivement de l'installer afin de gérer efficacement le logiciel installé à partir du source.

Installer les outils de développement

Si vous n'avez pas encore installé les outils de développement, il est obligatoire de les installer d'abord. Nous avons documenté les étapes pour installer les outils de développement sur différentes distributions Linux dans le lien ci-dessous :

  • Comment installer des outils de développement sous Linux

Installer GNU Stow

Vous pouvez installer un logiciel à partir du code source sans Stow. Mais je préfère utiliser GNU Stow pour installer des logiciels à partir du code source afin de les gérer efficacement.

Voici comment vous pouvez installer GNU Stow sur différents systèmes d'exploitation :

Sur Ubuntu/Debian

1. Mettre à jour la liste des paquets:

sudo apt update

2. Installer Stow:

sudo apt install stow

Sur Fedora/RHEL/AlmaLinux/Rocky Linux

1. Activer le dépôt EPEL:

sudo dnf install epel-release

2. Installer Stow:

sudo dnf install stow

Sur les anciennes versions de RHEL, utilisez yum au lieu de `dnf'.

Installer la dernière version de pv depuis la source sous Linux

Après avoir installé les outils de développement nécessaires et GNu Stow, vous pouvez installer GNU Stow sur votre système Linux comme indiqué ci-dessous :

1. Téléchargez la dernière utilité pv depuis sa page officielle des versions:

wget https://codeberg.org/a-j-wood/pv/releases/download/v1.8.10/pv-1.8.10.tar.gz

2. Allez dans le répertoire où vous avez téléchargé le fichier tar de pv et extrayez-le en utilisant la commande :

tar xvf pv-1.8.10.tar.gz

Cela extraira le contenu du fichier tar dans un répertoire appelé pv-1.8.10 dans votre répertoire actuel.

3. Se rendre dans le répertoire extrait:

cd pv-1.8.10

4. Configurez la construction:

./configure --prefix=/usr/local/stow/pv-1.8.10

Cette commande est utilisée pour configurer le processus de compilation du logiciel avec un préfixe d'installation spécifié. Dans ce cas, elle définit le répertoire d'installation sur /usr/local/stow/pv-1.8.10.

5. Compiler le logiciel:

make

6. Installer le logiciel pv :

sudo make install

7. Utilisez GNU Stow pour gérer l'installation:

Après avoir installé le logiciel dans le répertoire spécifié, vous pouvez utiliser GNU Stow pour créer des liens symboliques depuis les répertoires standard du système (comme /usr/local/bin, /usr/local/lib, etc.) vers les fichiers dans /usr/local/stow/pv-1.8.10.

Pour ce faire, allez dans le répertoire /usr/local/stow :

cd /usr/local/stow

Et exécutez la commande suivante pour créer les liens symboliques nécessaires :

sudo stow pv-1.8.10

Cela garde vos répertoires système propres et facilite la gestion de plusieurs versions de logiciels.

Vérifiez maintenant que la commande pv est disponible en utilisant la commande :

pv --version

Vous verrez une sortie comme ci-dessous :

pv 1.8.10
Copyright 2024 Andrew Wood
License: GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Project web site: <https://www.ivarch.com/programs/pv.shtml>

Félicitations ! Nous avons installé avec succès la dernière version de 'pv' 1.8.10.

Comment utiliser pv pour écrire des images

Une fois que vous avez installé la version 1.8.10 de pv sur votre système, vous pouvez utiliser la commande suivante pour écrire une image :

sudo pv installer.iso -Yo /path/to/block/device

Voici la répartition de la commande ci-dessus :

  • sudo : Exécuter la commande avec les privilèges root.
  • pv : L'utilitaire Pipe Viewer.
  • installer.iso : Le fichier d'entrée (votre image d'installation).
  • -Y : Synchroniser après chaque écriture, empêchant les blocages à 100 % lors de la vidange des tampons.
  • -o ou --output : Utilisez la nouvelle option de sortie pour écrire directement dans un fichier ou un périphérique.
  • /path/to/block/device : L'appareil cible (par exemple, /dev/sda).

Par exemple, la sortie suivante montre que l'ISO de KDE Neon est en train d'être écrite sur un lecteur USB externe /dev/sda :

$ sudo pv neon-user-20240620-0718.iso -Yo /dev/sda

Exemple de sortie :

$ sudo pv neon-user-20240620-0718.iso -Yo /dev/sda
152MiB 0:00:19 [8.25MiB/s] [>                                    ] 5% ETA 0:05:20

Écrire des images sur des disques USB en utilisant la commande Pv

Comme vous le voyez dans la sortie ci-dessus, Pv montre la vitesse de transfert des données, la barre de progression et le temps estimé d'arrivée (ETA).

Vous pouvez maintenant utiliser le lecteur USB bootable nouvellement créé pour installer Linux sur votre système.

Le dernier utilitaire Pv ne sert pas seulement à écrire des ISOs, mais peut également être utilisé pour écrire des fichiers à des emplacements nécessitant des permissions élevées.

Utilisation de pv avec sudo pour les emplacements privilégiés

L'un des avantages significatifs de la nouvelle option --output est sa compatibilité avec sudo. Cela permet une approche plus simple lors de l'écriture vers des emplacements nécessitant des autorisations élevées, comme les périphériques de blocs.

Solutions de contournement précédentes :

Avant l'option --output, les utilisateurs devaient recourir à l'une des méthodes suivantes :

1. Utilisation de tee avec sudo :

pv file | sudo tee /path/to/output >/dev/null

2. Utilisation de sudo avec une commande shell:

sudo sh -c 'pv file > /path/to/output'

3. Démarrer un shell root puis exécuter pv.

Nouvelle approche simplifiée :

Avec l'option --output, vous pouvez maintenant simplement utiliser :

sudo pv file -o /path/to/output

Cette méthode combine les capacités de suivi de l’avancement de pv avec la possibilité d’écrire dans des emplacements privilégiés, le tout dans une seule commande facile à utiliser.

Conclusion

Je ne dis pas que pv est supérieur à dd. L'utilitaire dd est excellent. Cependant, la dernière version de pv inclut une fonctionnalité pour écrire des images ISO sur des clés USB, ce que j'ai trouvé utile.

L'utilisation de pv offre une expérience d'écriture d'image plus conviviale avec un meilleur suivi de progression et des performances optimisées.

L'ajout de l'option --output simplifie encore le processus, en particulier lorsqu'il s'agit de gérer des emplacements d'écriture privilégiés.

À mesure que les distributions seront mises à jour pour inclure la dernière version de pv, cette méthode deviendra de plus en plus accessible et bénéfique pour les utilisateurs.

Ressources :

  • dépôt pv Codeberg
  • Site Web pv

Lecture suggérée :

  • Etcher – Une belle application pour créer des clés USB et des cartes SD amorçables
  • Comment créer des clés USB multiboot avec Ventoy sous Linux
  • Popsicle – Créez plusieurs clés USB bootables en même temps
  • Bootiso vous permet de créer en toute sécurité une clé USB bootable
  • MultiCD – Créer des images CD, DVD et USB multiboot
  • Comment Écrire Une ISO Sur La Clé USB Directement Depuis Internet
  • Comment créer un ISO à partir d'une clé USB bootable sous Linux
  • Comment créer une image CD Live Ubuntu personnalisée