qcow2等格式镜像磁盘冷访问

本文介绍了如何在不启动虚拟机的情况下,对CentOS 7.6和Kylin V10的qcow2镜像进行修改,包括加载NBD模块、连接镜像、识别和挂载分区,以及执行chroot等操作。主要涉及Linux命令行工具如qemu-nbd、partprobe、vgchange等,适用于系统维护和镜像定制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 环境

本文适用于在不启动虚拟机的场景下,想修改镜像里面的内容,比如chroot安装软件,拷贝文件进去等等。
环境信息如下:
HOST OS:Kylin-Server-10-SP1-Release-Build20
镜像:centos-7.6.qcow2和kylin-v10-arm64-minimal-20210603.qcow2


2. qcow2等格式镜像磁盘冷访问

2.1 加载NBD模块

对于Kylin Server V10系统默认集成了nbd模块

modprobe nbd nbds_max=64

若是centos系统,需要编译nbd模块,附上centos 7.6上nbd模块编译内容如下:

yum install kernel-devel kernel-headers gcc automake
wget http://vault.centos.org/7.6.1810/os/Source/SPackages/kernel-3.10.0-957.el
rpm -ihv kernel-3.10.0-957.el7.src.rpm 
cd ~/rpmbuild/SOURCES
tar Jxvf linux-3.10.0-957.el7.tar.xz -C /usr/src/kernels/
cd /usr/src/kernels/
mv 3.10.0-957.5.1.el7.x86_64 3.10.0-957.5.1.el7.x86_64-old
mv linux-3.10.0-957.el7 3.10.0-957.5.1.el7.x86_64
make mrproper
cd 3.10.0-957.5.1.el7.x86_64
make mrproper
cp ../3.10.0-957.5.1.el7.x86_64-old/Module.symvers .
cp /boot/config-3.10.0-957.el7.x86_64 ./.config
make oldconfig
make prepare
make scripts
make CONFIG_BLK_DEV_NBD=m M=drivers/block
make CONFIG_BLK_DEV_NBD=m M=drivers/block/
cp drivers/block/nbd.ko /lib/modules/$(uname -r)/kernel/drivers/block/
depmod -a

2.2 基于LVM分区的qcow2镜像

2.2.1 qemu-nbd连接镜像

采用设备nbd0连接

qemu-nbd -n -c /dev/nbd0 centos-7.6.qcow2

2.2.2 识别分区

partprobe /dev/nbd0

2.2.3 读取physical volumes

vgscan --cache

2.2.4 激活volume group

vgchange -ay

2.2.5 挂载设备

通过lvdisplay查看lv信息,然后挂载分区(根据镜像系统中lv信息挂载)

mount /dev/centos/root /mnt/

2.2.6 卸载分区

umount /mnt
lvchange -an /dev/centos/root
lvchange -an /dev/centos/swap
vgchange -an centos
qemu-nbd -d /dev/nbd0
vgscan --cache

2.3 基于普通分区的qcow2镜像

2.3.1 qemu-nbd连接镜像

采用设备nbd1连接

qemu-nbd -n -c /dev/nbd1 kylin-v10-arm64-minimal-20210603.qcow2

2.3.2 查看分区

通过命令fdisk -l

Disk /dev/nbd1:3.39 GiB,3629121536 字节,7088128 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:7B5DFE79-DF47-47FC-BDD6-E93A3E5E91D4

设备           起点    末尾    扇区  大小 类型
/dev/nbd1p1    2048 1128447 1126400  550M EFI 系统
/dev/nbd1p2 1128448 1144831   16384    8M BIOS 启动
/dev/nbd1p3 1144832 7086079 5941248  2.9G Linux 文件系统

2.3.3 挂载分区

挂载根分区,针对根分区可进行chroot等操作,然后退出

mount /dev/nbd1p3 /mnt/
chroot /mnt
......
exit

2.3.4 卸载分区

umount /mnt
qemu-nbd -d /dev/nbd1

3. 问题记录


4. 参考文献

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值