Raspberry Pi Zero w : Créer un disque flash USB

Le noyau Linux fournit un ensemble de modules catégorisés dans “USB Gadget” qui permettent la création de périphériques USB. Vous y trouverez les périphériques de stockage, webcams, audio etc…
La Raspberry pi Zero dispose d’un port USB qui peut fonctionner comme périphérique, couplé au module noyau g_mass_storage nous allons pouvoir mettre en place notre clé USB virtuelle. Celà signifie que si nous branchons le port USB de la raspberry pi à un PC nous verrons une clé USB connectée.
Pour réaliser une clé usb nous allons devoir effectuer les opérations suivantes :
- Créer une image, ajouter une partition et la formater.
- Charger le module noyau correspondant.
Il faudra réaliser les opérations suivantes depuis un terminal (distant ou local) de votre Raspberry.
Création d’une image disque
Nous allons créer une image disque d’une taille de 1G.
mkdir /data
dd if=/dev/zero of=/data/disk bs=1M seek=1024 count=0
Créons une partition ext4
fdisk /data/disk
Voici le scénario à suivre :
Bienvenue dans fdisk (util-linux 2.27.1).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
Le périphérique ne contient pas de table de partitions reconnue.
Création d'une nouvelle étiquette pour disque de type DOS avec identifiant de disque 0xabc57e34.
Commande (m pour l'aide) : n
Type de partition
p primaire (0 primaire, 0 étendue, 4 libre)
e étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) :
Premier secteur (2048-2097151, 2048 par défaut) :
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-2097151, 2097151 par défaut) :
Une nouvelle partition 1 de type « Linux » et de taille 1023 MiB a été créée.
Commande (m pour l'aide) : w
La table de partitions a été altérée.
Synchronisation des disques.
Il faut à présent monter le disque :
sudo kpartx -a disk
Nous formattons la partition puis nous la montons.
mkfs.ext4 /dev/mapper/loop0p1
sudo mount /dev/mapper/loop0p1 /mnt/disk
On ajoute un fichier
sudo touch /mnt/disk/test.txt
Enfin nous retirons le disque.
sudo umount /dev/mapper/loop0p1
sudo losetup -d /dev/loop0
Installation du module g_mass_storage
modprobe g_mass_storage file=/data/disk
Branchez à présent le périphérique USB sur votre Raspberry pi, elle sera reconnue comme une clé USB.