KVM 虚拟机镜像文件挂载
虚拟机 挂载 kvm 镜像文件
2023-09-14 09:11:30 时间
raw磁盘镜像的挂载
一、offset计算法
原理:找出分区开始的位置,使用mount命令的offset参数 偏移到镜像内容真正开始的位置
宿主机:192.168.0.104
客户机:192.168.0.108 # /boot 标准分区,/LVM 分区,
镜像:/home/raw/kvm108.raw
需求:在104机器上面挂载108镜像到 /mnt/raw/目录
1、查看镜像文件,并计算出offset偏移量
#查看镜像文件信息
fdisk -lu /home/raw/kvm108.raw
#显示内容
Disk /home/raw/kvm108.raw: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00067e2a
Device Boot Start End Blocks Id System
/home/raw/kvm108.raw1 * 2048 2099199 1048576 83 Linux
/home/raw/kvm108.raw2 2099200 20971519 9436160 8e Linux LVM
#根据上述信息分析
kvm108.raw有两个分区,我们要挂载的是 LVM分区
#offset如何计算
offset=Start*Sector
#计算值
echo $[2099200*512] #结果1074790400
2、使用mount命令挂载loop设备
mount -o loop,offset=1074790400 /home/raw/kvm108.raw /mnt/raw/
#如果分区是LVM,将提示下面信息,无法挂载成功
mount: unknown filesystem type 'LVM2_member'
3、LVM分区挂载方法
#查询目录空闲的loop设备
losetup -f #losetup -a 查询所有loop设备的关联情况
#结果
/dev/loop0
#关联loop0设备到 kvm108镜像文件
losetup -o 1074790400 /dev/loop0 /home/raw/kvm108.raw
#格式化显示物理卷的概要信息
pvs
#结果
PV VG Fmt Attr PSize PFree
/dev/loop0 vg108 lvm2 a-- <9.00g 0
/dev/sda2 centos lvm2 a-- <19.00g 0
#注意:这里的VG名称一定不能相同,虚拟机如果是默认安装,VG名称可能出现都是centos,这时要修改一下VG
本例已事先到108虚拟机上面改好vg,链接https://blog.csdn.net/mshxuyi/article/details/100740563
#激活vg108卷组状态
vgchange -ay vg108
#结果
2 logical volume(s) in volume group "vg108" now active
#扫描所有逻辑卷
lvscan
#结果
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
ACTIVE '/dev/vg108/swap' [1.00 GiB] inherit
ACTIVE '/dev/vg108/root' [<8.00 GiB] inherit
#挂载
mount /dev/vg108/root /mnt/raw/
#显示挂载点
ls /mnt/raw/
#结果
total 12
lrwxrwxrwx. 1 root root 7 Aug 13 23:28 bin -> usr/bin
drwxr-xr-x. 2 root root 6 Aug 13 23:28 boot
drwxr-xr-x. 2 root root 6 Aug 13 23:28 dev
drwxr-xr-x. 74 root root 8192 Aug 17 2019 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 Aug 13 23:28 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 13 23:28 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
drwxr-xr-x. 2 root root 6 Aug 13 23:28 proc
dr-xr-x---. 2 root root 200 Aug 15 2019 root
drwxr-xr-x. 2 root root 6 Aug 13 23:28 run
lrwxrwxrwx. 1 root root 8 Aug 13 23:28 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
#取消挂载
umount /mnt/raw/
#激活取消
vgchange -an vg108
#结果
0 logical volume(s) in volume group "vg108" now active
#取消关联loop设备
losetup -d /dev/loop0
二、losetup + kpartx 映射分区法
宿主机:192.168.0.104
虚拟机:192.168.0.107 #标准分区格式 /boot, /, /swap 3个分区
镜像:/home/raw/kvm107.raw #在104
需求:在104机器上面挂载107镜像到 /mnt/raw/目录
#查询目录空闲的loop设备
losetup -f #losetup -a 查询所有loop设备的关联情况
#结果
/dev/loop0
#关联loop设备到镜像文件
losetup /dev/loop0 /home/raw/kvm107.raw
#映射分区
kpartx -av /dev/loop0 #-a 添加映射关系,-v 显示映射关系,映射成功的在 /dev/mapper/下
#结果
add map loop0p1 (253:2): 0 409600 linear /dev/loop0 2048 #/boot/分区
add map loop0p2 (253:3): 0 18462720 linear /dev/loop0 411648 #/根分区
add map loop0p3 (253:4): 0 2097152 linear /dev/loop0 18874368 #/swap分区
#查看映射
ll /dev/mapper/
#结果
total 0
lrwxrwxrwx 1 root root 7 Aug 17 10:28 centos-root -> ../dm-0
lrwxrwxrwx 1 root root 7 Aug 17 10:28 centos-swap -> ../dm-1
crw------- 1 root root 10, 236 Aug 17 10:28 control
lrwxrwxrwx 1 root root 7 Aug 18 11:29 loop0p1 -> ../dm-2
lrwxrwxrwx 1 root root 7 Aug 18 11:29 loop0p2 -> ../dm-3
lrwxrwxrwx 1 root root 7 Aug 18 11:29 loop0p3 -> ../dm-4
#挂载根分区
mount /dev/mapper/loop0p2 /mnt/raw/
#查看挂载点
ls /mnt/raw/
#结果
bin boot dev etc home lib lib64 lost+found media mnt
opt proc root run sbin srv sys tmp usr var
#取消挂载
umount /mnt/raw/
#关闭映射
kpartx -dv /loop/loop0p2
相关文章
- 虚拟机docker安装RabbitMQ[通俗易懂]
- 主机连接wifi,如何设置虚拟机上网方式「建议收藏」
- KVM虚拟机网络设置
- 虚拟机中安装windows10详细教程_openeuler虚拟机安装
- Windows Server 2019 安装 Oracle 19C RAC(VMWare虚拟机环境)
- 这次我们来学习深入解析java虚拟机:C2编译器,编译流程吧
- 创建KVM虚拟机_安卓kvm虚拟机
- VM12虚拟机中文破解版 Mac版VMware Fusion Pro密钥
- Java虚拟机-类文件详解编程语言
- 虚拟机Linux 中如何挂载U盘(虚拟机linux打开u盘)
- 失败虚拟机Linux挂载失败:排查原因及解决方案(虚拟机linux挂载)
- 如何利用Linux虚拟机挂载硬盘(linux虚拟机如何挂载)
- Linux虚拟机IP快速查看技巧(linux虚拟机ip查看)
- 快速掌握Linux虚拟机上网(虚拟机linux如何上网)
- 轻松掌握访问虚拟机的oracle技巧(访问虚拟机的oracle)
- 如何在Linux虚拟机上挂载外部设备?(linux虚拟机挂载)
- “Linux系统使用必备:25个虚拟机应用推荐”(虚拟机forlinux)
- MacOS安装虚拟机:快速入门指南(macos安装虚拟机)
- Linux虚拟机文件共享:实现信息交流的新方式(linux虚拟机文件共享)