一 losetup命令概述
losetup命令用来设置loop设备,loop设备可以将文件虚拟成块设备,这样用户就可以对其进行挂载,
比如常见的ISO光盘镜像、img镜像都可以被虚拟成块设备,然后进行挂载和访问。
二 挂载镜像
- 使用fdisk命令查看sysimage-sdcard.img镜像文件
从运行结果可知:sysimage-sdcard.img大小542M,包含两个分区,分区1大小30M,分区2大小512M - 查找空闲的loop设备
参数-f会查找第一个未被使用的loop设备,从/dev/loop0开始
linux@ubuntu:~$ losetup -f
/dev/loop1 - 将sysimage-sdcard.img虚拟成块设备,当加载带分区的镜像文件时需要添加参数-P,该参数会强制Linux内核扫描分区表,然后依次进行关联。
losetup命令运行成功后,我们能够像访问块设备一样访问sysimage-sdcard.img
linux@ubuntu:~$ sudo losetup -P /dev/loop1 sysimage-sdcard.img - 使用lsblk命令查看块设备信息,从打印信息可知:/dev/loop1创建了两个分区,分区1大小30M,卷名为loop1p1,分区2大小512M,卷名为loop1p2,和sysimage-sdcard.img完全匹配。
- 挂载关联成功的分区
linux@ubuntu:~$ mkdir boot
linux@ubuntu:~$ mkdir rootfs
linux@ubuntu:~$ sudo mount /dev/loop1p1 boot
linux@ubuntu:~$ sudo mount /dev/loop1p2 rootfs
linux@ubuntu:~$ df -hT | grep loop
/dev/loop1p1 vfat 30M 13M 18M 42% /home/linux/boot
/dev/loop1p2 ext2 504M 318M 162M 67% /home/linux/rootfs - 查看或者修改分区文件
- 卸载分区,然后断开关联的loop设备
linux@ubuntu:~$ sudo umount boot
linux@ubuntu:~$ sudo umount rootfs
linux@ubuntu:~$ sudo losetup -d /dev/loop1