V2V/P2V后将ide磁盘转化为virtio的方案

来源:互联网 发布:淘宝卖家退保证金 编辑:程序博客网 时间:2024/06/05 12:03

V2V/P2V后将ide磁盘转化为virtio的方案


场景介绍

从VMware转化为kvm的VM,磁盘格式只能是通用的ide,而在kvm上想要获得较高的性能或想上传至openstack环境就要使用virtio的驱动。本文分别介绍Linux和windows系列磁盘转化方法。

Windows系列

1.下载virtio-win的iso驱动,并挂载至kvm的虚拟机上;
2.在kvm上的虚拟机上添加一块virtio驱动的磁盘;
3.启动虚拟机,进入系统后在设备管理器中会发现不识别的磁盘硬件,右键安装驱动,从iso安装virtio驱动即可;
4.关闭虚拟机,将虚拟机原来的ide磁盘驱动更改为virtio,重启虚拟机;
5.检查虚拟机,不出现蓝屏,能进入系统,查看磁盘驱动为virtio;

Linux系列

1.直接将ide修改为virtio驱动,重启虚拟机尝试,如果正常启动即成功转化,若报找不到root分区或者直接持续黑屏无法启动则需要进行修复;
经本人尝试,RHEL系列系统可以正常无缝启动,原因是RHEL系列的内核会自动加载virtio相关的模块,且能自动匹配并修改挂载路径;openSUSE发行版会报“waiting for /dev/root to appear...”;中标麒麟系统也可正常无缝启动,因为此系统实际内核是Fedora,和RHEL是同一系列;
2.此处介绍openSUSE的解决方案
出现此问题的原因其实是启动时需要挂载的路径找不到导致的无法启动,因为某些发行版的kernel参数中会记录根路径,且openSUSE中磁盘映射记录在/boot/grubX/device.map,启动时需要读取/etc/fstab,单纯更改驱动不能修改这些配置,因而会出现找不到启动盘或者根路径的问题而无法启动,所以具体思路是修改启动时需要加载的磁盘路径配置即可,对不同的发行版的具体操作会有些许差别,openSUSE具体操作如下:
a.通过iso进入救援模式,通过fdisk -l查询分区路径,包括/,/boot等;
b.根据a出现的信息挂载相应的分区:
mount /dev/%root device% /mnt
mount /dev/%boot device% /mnt/boot
mount --rbind /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev
c.修改系统root路径至/mnt
chroot /mnt
d.修改/etc/fstab文件,保证各个分区路径都是正确的,如root, boot, 以及swap分区可能记录成如下:
/dev/sda1
/dev/sda2
/dev/sda3
根据fdisk -l输出,这些分区应该是如下:
/dev/vda1
/dev/vda2
/dev/vda3
e.修改/boot/grub/menu.lst文件,用正确的路径替换boot分区路径,如将/dev/sda2改为/dev/vda2;
f.确认/var/tmp存在(若不存在,则手动创建),然后执行如下命令:
mkinitrd -v -f --preload virtio --preload virtio_blk --preload virtio_pci /boot/$initrd $version

g.重启虚拟机


1 0
原创粉丝点击