Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 19 janvier 2017

Vérifier (proprement) si un volume est monté ou non

Sous Linux, les disques durs amovibles et autres clés USB peuvent être montés de manière automatique ou non.

Lorsque ces derniers sont utilisés à des fins de sauvegarde on a besoin de vérifier si le média de sauvegarde est disponible ou non.

Imaginons que notre disque externe de sauvegarde soit monté sur /media/backup, une première façon de vérifier si on peut procéder à la sauvegarde consiste à vérifier si le répertoire de montage est vide:

mount_point="/media/external-backup"

Puis:

if [ "$(ls -A $mount_point)" ]; then
    echo "Backup disk is present."
fi

ça n'est pas très élégant mais cela fonctionne.

On peut aussi "parser" la sortie standard de la commande mount:

if mount | grep $mount_pount >/dev/null; then
    echo "Backup disk is present."
fi

C'est déjà un peu plus propre mais on peut faire encore mieux. En effet, la commande mountpoint est là pour cela:

if mountpoint -q $mount_point; then
    echo "Backup disk is present."
fi

Je vous fait grâce des méthodes (sales) qui consistent à parser les fichier /etc/mtab ou /procs/mounts.

dimanche 13 octobre 2013

Créer un système de fichiers et le monter sous Linux

On a vu précédemment comment partitionner un disque sous Linux avec gdisk, mais il nous reste encore deux étapes pour pouvoir utiliser notre nouveau disque dur ou clé USB.

Etape 1: Créer un système de fichiers

La première étape est de créer un système de fichiers sur la nouvelle partition. La création d'un système de fichiers sous Linux se fait avec la commande mkfs.

En supposant que notre disque utilise le device /dev/sdg et que l'on n'a créé qu'une seule partition /dev/sdg1, on va créer notre système de fichiers comme suit:

mkfs -v -L master-data -t ext4 /dev/sdg1

On notera que l'on a tenu à nommer le nouveau volume master-data et que l'on utilise le système de fichiers ext4.

Le flag -v n'étant présent que pour obtenir des traces de l’exécution.

Etape 2: Monter le système de fichiers

La deuxième étape consiste à monter ce système de fichiers, afin de pouvoir lire et écrire sur le disque. Cela se fait avec la commande mount.

Au préalable, il nous faut un point de montage:

mkdir /media/master-data

Ensuite, on peut monter le disque:

mount -t ext4 /dev/sdg1 /media/master-data/

Ici, le point de montage a le même nom que le volume, mais évidemment on fait comme on veut.

Et il va de soit que les commandes précédentes sont passées par l'utilisateur root.

Etape 3: Utiliser le disque

Nous pouvons maintenant utiliser notre nouveau volume:

df -h /media/master-data/
Filesystem Size Used Avail Use% Mounted on
/dev/sdg1 2.7T 201M 2.6T 1% /media/master-data

dimanche 21 juillet 2013

Créer une clé USB pour installer Linux avec UNetbootin

Créer un média d'installation de Linux n'est pas très compliqué depuis l'arrivée des images iso hybrides, comme on l'a vu dans Préparer une clé USB d'installation de Debian.

Mais il y a un petit outil très pratique pour installer Linux et pas seulement Debian, et c'est UNetbootin.

UNetbootin est un logiciel open source disponible sous Linux, Max OS X et même sous Windows qui permet de créer des images Live et des images d'installation pour une nombre impressionnant de distributions Linux.

Etape 1: Lancer UNetbootin

Après avoir inséré une clé USB disposant d'une table de partitions MS-DOS et d'une partition bootable formatée en FAT16 que l'on aura préalablement montée, on lance UNetbootin connecté en root et on obtient l'écran suivant:

Unetbootin: écran de lancement

Note: On voit que la clé USB insérée utilise le device /dev/sdf et dispose d'au moins une partition /dev/sdf1.

UNetbootin permet de créer des médias d'installation pour:

  • Une distribution Linux que l'on choisit dans un menu déroulant,
  • Une distribution Linux dont on a une image iso.

Ici on va considérer la première option.

Etape 2: Choisir sa distribution Linux

On choisit donc la distribution Linux, par exemple openSUSE 11.1 et on clique sur OK:

UNetbootin: choix de la distribution Linux

Viens alors un message de confirmation qui nous alerte que le contenu de la clé sera supprimé:

Etape 3: Confirmer la création du média d'installation

UNetbootin: confirmation de la suppression du contenu existant

Une fois que l'on a cliqué sur "Yes to all", le téléchargement d'openSUSE commence alors comme suit:

UNetbootin: téléchargement de la distribution Linux choisie

Viens ensuite l'installation du programme d'installation d'openSUSE sur la clé USB.

Etape 4: Fin de la création du média d'installation et redémarrage de la machine

Une fois la clé USB prête à l'emploi pour installer openSUSE, UNetbootin affiche l'écran suivant:

UNetbootin: fin de la création du media d'installation

On n'a alors plus qu'à redémarrer la machine pour utiliser notre clé USB d'installation de Linux.

dimanche 14 juillet 2013

Partitionner un disque sous Linux avec gdisk

Le partitionnement des disques ou des clés USB sous Linux peut se faire avec parted ou gparted son équivalent graphique.

Néanmoins, depuis l'arrivée des tables de partitions GPT (GUID partition table), l'utilitaire de prédilection pour partitionner un disque sous Linux est gdisk: l'ancien utilitaire fdisk ne prenant pas en charge les partitions GPT.

On commencera donc par installer gdisk:

Etape 1: Installation de gdisk

sudo apt-get install gdisk

Une fois gdisk installé, on le lance avec en paramètre le device du disque ou de la clé USB en question, par exemple:

sudo gdisk /dev/sdf

On obtient alors l'écran suivant:

GPT fdisk (gdisk) version 0.8.5

Partition table scan:

 MBR: protective
 BSD: not present
 APM: not present
 GPT: present

Found valid GPT with protective MBR; using GPT.

L'aide de gdisk est le suivant:

Command (? for help): ?
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu

Command (? for help):

Etape 2: Création d'une table de partition GPT.

Pour créer une ou des partitions sur le disque, on va commencer par créer une table de partition GPT avec l'option 'o' de gdisk.

Attention: Créer une nouvelle table de partition va détruire toutes les données du disque ou de la clé USB.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y

Ensuite si l'on affiche la table des partitions, on voit les caractéristiques du disque (ici une clé USB):

Command (? for help): p
Disk /dev/sdf: 7826688 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 7A77FEFC-B8DB-44F9-8DD3-3CA4D143B137
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7826654
Partitions will be aligned on 2048-sector boundaries
Total free space is 7826621 sectors (3.7 GiB)

Number Start (sector) End (sector) Size Code Name

Et on voit que le fait d'avoir créé une nouvelle table de partition a détruit toutes les partitions et données de notre disque !!!

Etape 3: Création d'une nouvelle partition.

Une fois cette nouvelle table de partition GPT créée, on va créer une partition avec l'option 'n' de gdisk:

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-7826654, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-7826654, default = 7826654) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Ici, on s'est contenté de choisir chaque paramètre proposé par défaut.

Si on affiche maintenant les caractéristiques de notre partition, on obtient:

Command (? for help): p
Disk /dev/sdf: 7826688 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 7A77FEFC-B8DB-44F9-8DD3-3CA4D143B137
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7826654
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number Start (sector) End (sector) Size Code Name

  1            2048         7826654   3.7 GiB     8300  Linux filesystem

Etape 4: Validation des changements sur le disque.

Notre nouvelle partition étant créée, il nous reste plus qu'à quitter gdisk en validant les changements:

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdf.
The operation has completed successfully.

Voilà, nous aurions pu évidemment créer d'avantage de partitions sur le disque, à condition de ne pas choisir les valeurs par défaut qui créent une partition utilisant la totalité du disque.

On verra dans un prochain billet comment créer un système de fichiers et le monter sous Linux.

- page 1 de 2