losetup -P
自动化
https://superuser.com/a/684707/128124提到的方法(在util-linux v2.21中添加,在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
util-linux v2.21之前的体面方法。
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
。
有关如何设置模块参数的信息,请访问:https : //askubuntu.com/questions/51226/how-to-add-kernel-module-parameters
重新启动后,您可以执行以下操作:
sudo losetup -f --show my.img
它将映像安装到/dev/loopX
设备,然后自动将分区安装到/dev/loopXpY
设备。
因此,如果您愿意重启,这是最方便的方法。
也可以看看