上一章节,我在win10下利用qemu安装了一个aarch64的 kylin-server-v10的ISO系统镜像包。安装时将系统安装到了虚拟硬盘kylin-server-v10.img 里,现在有个需求,要读出kylin-server-v10.img中文件系统的内容。
通过fdisk命令可以看到 kylin-server-v10.img 有三个分区,前两个是物理分区(pv), 最后一个lvm的分区。
关于什么是LVM 请参考 :https://www.cnblogs.com/yeyuzhuanjia/p/17402453.html
1 挂载img镜像中的物理分区
(1) losetup -f 找出系统中可用的 loop 设备
root@ubuntu:~# losetup -f
/dev/loop6
(2) losetup -P 创建带分区的回环设备
losetup -P /dev/loop6 /mnt/hgfs/7_Share/kylin-server-10.img
这里看一看到lvm分区的含有两个逻辑卷lv 分别位 klas-root klas-swap 这个名字挂载的时候会用到。
(3) 挂载分区
如下图所示 前两个分区正常挂载,LVM的分区无法挂载
mount /dev/loop6p1 p1
mount /dev/loop6p2 p2
mount /dev/loop6p3 p3
(4) 卸载分区
umount p1
umount p2
losetup -d /dev/loop6
2 挂载img中lvm分区
(1) 查看lvm分区起始扇区位置
fdisk -u -l /mnt/hgfs/7_Share/kylin-server-10.img
计算出起始字节位置: 332800*512=170393600 这个offset挂载的时候用得到
(2) losetup -f 找出系统中可用的 loop 设备
root@ubuntu:~# losetup -f
/dev/loop7
(3)losetup /dev/loop7 /mnt/hgfs/7_Share/kylin-server-10.img -o 1703936000
ls /dev/mapper/klas-* 查看一下lv映射的设备文件
mount /dev/mapper/klas-root p3 然后挂载即可
(4) 卸载