安装部署KVM虚拟机(二)

使用 qemu-img 和 qemu-system-x86_64 命令行方式安装

验证

有关QEMU支持的格式:

  • raw
  • qcow2
  • qcow
  • dmg
  • nbd
  • vdi
  • vmdk
  • vhdk

继续在上面空白的镜像上创建文件系统

加载nbd内核模块

使用qemu-nbd工具,将空白的镜像连接到/dev/nbd0块设备

在块设备上创建两个分区。一个SWAP交换分区,一个作为客户机的根分区。

查看分区后的块设备。

创建交换分区

在根分区创建EXT4文件系统

充分利用内核末班nbd的提供的功能,用qemu-nbd将一个raw格式的镜像文件关联到块设备/dev/nbd0。

查看nbd内核模块的信息。

块设备的元属性已经被修改了。

同样镜像文件的属性也被改变了

现在该 debian.img 镜像文件包含了两个分区和一个文件系统。

接下来安装客户机的OS系统,以Debian为例。

debootstrap:  Bootstrap a basic Debian system

参考 https://hosxy.github.io/2017/05/03/debootstrap%E5%AE%89%E8%A3%85debian/

将/dev/nbd0p2分区挂载到/mnt,这样就能看见内容了

将根分区挂载到/mnt,挂载点作为安装目标,使用debootstrap从公开仓库安装最新的Debian发行版

Debian全球镜像站点 https://www.debian.org/mirror/list

验证根文件系统创建好了

为个给镜像安装GRUB引导程序,将宿主机的文件系统/dev目录挂载到镜像文件系统/mnt内

使用chroot工具,切换到镜像的根文件系统的命名空间。这样执行的操作就是在客户机系统内的。

检查chroot环境下的发布版本

在已经chroot的环境下,挂载/proc和/sys虚拟文件系统,这是因为GRUB引导程序需要它们

仍然在已经chroot的环境下,安装Debian内核元数据包和grub2工具

在根设备上安装GRUB

更新GRUB配置和initrd镜像。生成GRUB配置文件,更新内存盘镜像

更改密码

在新客户机内部允许访问pseudo 终端,之后就可以登录虚拟机了

更改多用户运行级别

这时fstab还是空的,给fstab增加root挂载点,使它能够启动

取消挂载的文件系统

退出chroot的路径

在宿主机根分区上安装GRUB,关联raw镜像文件

更新GRUB配置文件,反映正确的客户机块设备信息。sda2是客户机内部可见的nbd0p2是当前宿主机可见的。从客户机的角度,第二块分区默认就是sda2。

取消挂载

取消ndb0设备与镜像的关联

再查看宿主机上支持的CPU架构

使用x86-64架构qemu-system-x86_64 启动QEMU虚拟机

启动的是之前的我们安装好的debian.img镜像

安装成功

至此,说明之前的安装是成功的。安装之后可以ping通宿主机,关机重启之后网络就失效了。网络还得学一下如何配置,重点是bridge网络。可以在客户机内使用dhclient <网卡>申请IP地址。

发布者

Jiaheng Tao

挖掘概念,创造工具

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据