losetup -P
automation
losetup -P
é o melhor método começando no Ubuntu 16.04, como mencionado no link , aqui estão as funções para automatizar se . Uso:
$ 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
Fonte:
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"
)
módulo de loop max_part config
Este é um método decente antes de 16.04.
loop
é um módulo do kernel, embutido no kernel no Ubuntu 14.04.
Se você configurá-lo corretamente, o Linux automaticamente dividirá os dispositivos para você.
cat /sys/module/loop/parameters/max_part
diz quantas partições loop
dispositivos podem gerar.
Por padrão, é 0
no Ubuntu 14.04 e é por isso que não ocorre divisão automática.
Para alterá-lo, podemos adicionar:
options loop max_part=31
para um arquivo em /etc/modprobe
ou:
GRUB_CMDLINE_LINUX="loop.max_part=31"
para /etc/default/grub
e, em seguida, sudo update-grub
.
Como definir um parâmetro de módulo também é coberto em: Como adicionar parâmetros de módulo de kernel
Após a reinicialização, quando você faz:
sudo losetup -f --show my.img
monta a imagem em um dispositivo /dev/loopX
e monta automaticamente as partições em /dev/loopXpY
devices.
Portanto, este é o método mais conveniente se você estiver disposto a reinicializar.
Veja também