Cet article examine plusieurs façons de créer une image disque à partir d'un répertoire.
Il existe de nombreux outils tels que genisoimage et mkisof à cet effet.
Pour installer genisoimage
Sous Ubuntu/Debian exécuter les commandes suivantes:
sudo apt-get update -y sudo apt-get install -y genisoimage
Sous CentOS/Redhat/Fedora télécharger le paquet puis installer avec yum:
sudo yum installer wget -y sudo wget http://mirror.centos.org/centos/7/os/x86_64/Packages/genisoimage-1.1.11-25.el7.x86_64.rpm sudo yum install genisoimage-1.1.11-25.el7.x86_64.rpm -y
Une fois genisoimage installé, on peut créer une image ISO à partir du répertoire avec la commande suivante.
$ sudo genisoimage -o nom_fichier.iso /chemin/vers/répertoire
De même, on peut également utiliser la commande mkisofs pour créer une image ISO à partir du répertoire.
$ sudo mkisofs -o nom_fichier.iso /chemin/vers/répertoire
Voici un ensemble de commandes pour créer un fichier image à partir du répertoire.
Créer un dossier pour l'image disque
$ sudo mkdir dossier_image $ cd dossier_image
Créee un fichier image pour contenir le dossier. Nous allons créer un fichier image.ext3 de 750 mb.
dd if=/dev/zero of=image.ext3 bs=1024 count=768000
Depuis la version 2.6.31 du noyau Linux, l'appel système fallocate(2) est pris en charge pour les systèmes de fichiers Btrfs, ext4, OCFS2 et XFS permettant de réserver rapidement des blocs pour un fichier. C'est bien plus rapide que de créer un fichier en le remplissant de zéros.
fallocate -l [taille] "$iname.img"
Utiliser la commande losetup pour configurer le périphérique loop0 et l'attacher au fichier ci-dessus.
sudo losetup /dev/loop0 image.ext3
Formater ce périphérique loop0 en ext3
sudo mkfs.ext3 /dev/loop0
Le monter sur /mnt
sudo mount /dev/loop0 /mnt
Copier les fichiers du répertoire pour créer un fichier image. Par ex. /home/data
:
cp -a /home/data/* /mnt
Démonter le device une fois les fichiers copiés.
sudo umount /mnt
Détacher le périphérique loop0.
sudo losetup -d /dev/loop0
Maintenant, l'image disque sera disponible sur image.ext3.
La commande cpio permet également de faire des archives. Contrairement à la commande tar, elle n'est pas récursive. Tous les noms de fichiers entrant dans la composition de l'archive doivent être lus sur l'entrée standard. L'archive est envoyée sur la sortie standard. La commande est presque toujours utilisée derrière un pipe lui-même précédé de la commande find qui permet de générer les noms de fichiers souhaités.
Principales options :
Créer une archive cpio à partir d’un dossier | find dossier | cpio -ov > filename.cpio |
---|---|
Créer une archive cpio à partir du répertoire courant | find | cpio -ov > filename.cpio |
Créer une archive cpio à partir d’une liste de fichiers/dossiers | find fichiers/dossiers | cpio -ov > filename.cpio |
Lister le contenu d’une archive cpio | cpio -it < filename.cpio |
Créer une archive cpio compressée au format gzip | find dossier | cpio -ov | gzip > filename.cpio.gz Equivaut à : find dossier | cpio -ov | gzip -c > filename.cpio.gz |
Créer une archive cpio compressée au format bzip2 | find dossier | cpio -ov | bzip2 > filename.cpio.bz2 Equivaut à : find dossier | cpio -ov | bzip2 -c > filename.cpio.bz2 |
Créer une archive cpio compressée au format xz | find dossier | cpio -ov | xz > filename.cpio.xz -d < filename.cpio.xz | cpio -idv Equivaut à : xz -dc filename.cpio.xz | cpio -idv |
Extraire un fichier particulier d’une archive | cpio -idv fichier < filename.cpio |
Préserver la date de modification lors de l’extraction d’une archive cpio | cpio -idvm < filename.cpio Par défaut, le mtime devient la date d’extraction. Avec l’option -m, le mtime des fichiers/dossiers de l’archive est préservé. |
Créer une archive cpio à partir d’une sélection de fichiers | find dossier -iname "extension" -print | cpio -ov > filename.cpio |
Vérifier une archive | cpio -it [-cv] < archive [fichiers_a_verifier ...] |