在ubuntu上用kvmtool起虚拟机

kvmtool是一款精简的虚拟化工具,堪称精简版的qemu只不过只能起跟host架构一致的虚拟机,本文介绍怎么从用kvmtool起虚拟机。

1首先从github上下载kvmtool的源码,

git clone https://github.com/kvmtool/kvmtool.git
cd kvmtool && make 

这样就会得到lkvm这个kvmtool的用户态工具。

2用lkvm起虚拟机:

要起虚拟机首先要有kernel,initrd 和rootfs,前两个很容易得到,只要到你的/boot下面把可用的vmlinuz-xx和initrd-xx拿过来就好了,rootfs就要自己做了。

2.1制作rootfs:

2.1.1首先下载对应你机器架构的roofs tar包,对于amd64 可以:

wget https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-root.tar.xz ,这是一个xz压缩的包

xz -d xenial-server-cloudimg-amd64-root.tar.xz && mkdir rootfs && tar -xvf xenial-server-cloudimg-amd64-root.tar -C rootfs

得到的rootfs只是rootfs文件树还不用来起虚拟机,但是要作为制作真正的rootfs的基础,在制作之前我们要改一下root用户的密码,不然即使虚拟机启动成功也不能登陆进去。改密码很容易,只要将你本机上/etc/shadow文件中的root哈希值替换rootfs的shadow文件中的哈希值即可,这样你就可以用跟你本机一样的登陆密码了。

2.1.2 制作rootfs镜像

(1)新建一个用于挂在的文件这里是ext2_rootfs
dd if=/dev/zero of=rootfs.ext2 bs=100M count=50
losetup  /dev/loop1 rootfs.ext2
mke2fs -m 0 /dev/loop1 5120000
mount -t ext2 /dev/loop1 ./ext2_rootfs/
(2)向ext2_rootfs中复制刚才的rootfs文件树中的东西
(3)卸载
umount /dev/loop1

losetup -d /dev/loop1

这样我们就得到了可用的rootfs镜像--rootfs.ext2

起虚拟机:

./lkvm -k vmlinuz--xx \
      -i initrd--xx \
      -d rootfs.ext2 \
      -m 2048

enjoy!


猜你喜欢

转载自blog.csdn.net/wujianyongw4/article/details/80108985
今日推荐