losetup -P
automatisation
losetup -P
est la meilleure méthode à partir d’Ubuntu 16.04, comme indiqué à l’ adresse https://askubuntu.com/a/496576/52975 , voici des fonctions à automatiser si nécessaire. 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 max_part config
Ceci est une méthode décente avant 16.04.
loop
est un module de 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 loop
périphériques peuvent générer.
C'est 0
par défaut sur Ubuntu 14.04, c'est pourquoi aucune division automatique n'a lieu.
Pour le changer, on peut soit ajouter:
options loop max_part=31
dans un fichier /etc/modprobe
, ou:
GRUB_CMDLINE_LINUX="loop.max_part=31"
à /etc/default/grub
et ensuite sudo update-grub
.
Comment définir un paramètre de module est également couvert à: Comment ajouter des paramètres de module au noyau?
Après un redémarrage, quand vous faites:
sudo losetup -f --show my.img
il monte l'image sur un /dev/loopX
périphérique et monte automatiquement les partitions sur des /dev/loopXpY
périphériques.
Donc, c'est la méthode la plus pratique si vous êtes prêt à redémarrer.
Voir également