losetup -P
オートメーション
losetup -P
https://askubuntu.com/a/496576/52975で言及されているように、Ubuntu 16.04から開始する最良の方法です。さらに自動化する機能を次に示します。使用法:
$ 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
ソース:
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"
)
ループモジュールmax_part config
これは、16.04以前の適切な方法です。
loop
Ubuntu 14.04のカーネルに組み込まれているカーネルモジュールです。
適切に設定すると、Linuxは自動的にデバイスを分割します。
cat /sys/module/loop/parameters/max_part
loop
デバイスが生成できるパーティションの数を示します。
それは0
何の自動分割は起こらない理由であるUbuntuの14.04ではデフォルトで。
変更するには、次のいずれかを追加できます。
options loop max_part=31
のファイル/etc/modprobe
、または:
GRUB_CMDLINE_LINUX="loop.max_part=31"
し/etc/default/grub
てからsudo update-grub
。
モジュールパラメータの設定方法については、カーネルモジュールパラメータを追加する方法でも説明しています。
再起動後、次のことを行います。
sudo losetup -f --show my.img
イメージを/dev/loopX
デバイスにマウントし、パーティションを/dev/loopXpY
デバイスに自動的にマウントします。
したがって、これはリブートする意思がある場合に最も便利な方法です。
こちらもご覧ください