losetup -P automatisation
Méthode mentionnée par /superuser//a/684707/128124 (ajoutée dans util-linux v2.21, ajoutée Ubuntu 16.04), voici des fonctions pour l'automatiser davantage. Usage:
$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2
$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there
$ sudo losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop1 0 0 0 0 /full/path/to/my.img
$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0
La source:
los() (
img="$1"
dev="$(sudo losetup --show -f -P "$img")"
echo "$dev"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
echo "$dst"
sudo mkdir -p "$dst"
sudo mount "$part" "$dst"
done
)
losd() (
dev="/dev/loop$1"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
sudo umount "$dst"
done
sudo losetup -d "$dev"
)
module de boucle config max_part
Méthode décente avant util-linux v2.21.
loop est un module du noyau, intégré au noyau dans Ubuntu 14.04.
Si vous le configurez correctement, Linux divise automatiquement les périphériques pour vous.
cat /sys/module/loop/parameters/max_part
indique le nombre de partitions que les looppériphériques peuvent générer.
C'est 0par défaut sur Ubuntu 14.04, c'est pourquoi aucune séparation automatique ne se produit.
Pour le changer, on peut soit ajouter:
options loop max_part=31
vers un fichier dans /etc/modprobe, ou:
GRUB_CMDLINE_LINUX="loop.max_part=31"
à /etc/default/grubpuis sudo update-grub.
La façon de définir un paramètre de module est également abordée sur: /ubuntu/51226/how-to-add-kernel-module-parameters
Après un redémarrage, lorsque vous effectuez:
sudo losetup -f --show my.img
il monte l'image sur un /dev/loopXpériphérique et monte automatiquement les partitions sur les /dev/loopXpYpériphériques.
C'est donc la méthode la plus pratique si vous souhaitez redémarrer.
Voir également