飞牛OS安装KVM虚拟机
本文最后更新于 2024-10-18,如有疑问请联系管理员!
本文教学如何使用飞牛OS安装KVM,实现直接在飞牛里安装和运行各类虚拟机,以及硬件直通设置,虚拟机安装以飞牛安装iStoreOS虚拟机为例子。
SSH工具:Windows11 CMD
1.基础设置
1.创建虚拟机共享文件夹
新建一个共享文件VirtualMachine
夹用于存储虚拟机文件
2.安装镜像上传
将虚拟机的安装镜像文件上传到这个文件夹
3.启动SSH功能
打开肥牛ssh设置,启用SSH功能
4.SSH远程连接
远程连接肥牛ssh,我这里用windows11自带的作为演示,连接方式为
ssh 你的用户名@你的飞牛地址
然后回车输入密码,密码输入的时候是看不见的
如果遇见这个就先输入yes
回车再输入密码
Are you sure you want to continue connecting (yes/no/[fingerprint])?
提升权限,输入
sudo -i
回车输入密码
2.KVM安装
1.更新系统软件包
先更新软件列表和系统包
输入
sudo apt update && sudo apt upgrade -y
2.安装 KVM 及相关工具软件:
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
回车,如果遇见下面这个直接输入Y
回车
3.检查KVM是否安装成功
输入下面代码检查
sudo systemctl status libvirtd
服务已经运行成功
3.Cockpit工具安装
1.安装 Cockpit管理工具
输入代码,回车
sudo apt install cockpit cockpit-machines
遇见这个照例输入Y
回车
2.启动Cockpit服务:
输入代码回车
sudo systemctl start cockpit
安装完成后即可打开浏览器,输入以下地址访问Cockpit:
http://<您的服务器IP>:9090
温馨提示:如果您机器的9090端口被docker或者其他程序占用了,请修改对应程序端口或删除对应程序
3.打开Cockpit管理工具页面:
如果遇见这个选择高级
,然后点击继续访问
用户名和密码是您飞牛
的用户名
和密码
4.关闭Apparmor对Libvirt安全限制
Libvirt
在执行和访问系统文件的时候会被Apparmor
阻挡,因此为了确保Libvirt
始终有必须的权限,必须禁用apparmor
ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
完成后输入
reboot
重启机器,等待系统重启
5.创建Bridge0网桥
重启登录管理工具
切换管理员权限
输入飞牛的密码
创建网桥Bridge0
端口根据自己的网卡选择,然后保存
保存后飞牛的IP会重新获取
桥接后的网卡将不再显示在飞牛系统的管理面板中,但不影响使用,后续会说调整IP方法
新的IP地址可以登录路由器后台查看
6.自定义修改内网IP
切换管理员权限
点击Bridge0
接口
点击ipv4
和ipv6
可自由更改设备IP
7.创建虚拟机存储池
这里目录就选一开始创建的VirtualMachine
文件夹目录就行
顺序:虚拟机
-左上角存储池
-右边创建存储池
点击激活
激活后可以直接看见文件夹里的文件
8.创建虚拟机
以安装iStoreOS为例子
名称随意填写
安装类型选择本地安装
安装源选择刚刚上传到文件夹里的Windows11 iso镜像(随便一个iso镜像都行),选择镜像的原因是iStoreOS是使用img镜像直接启动,无需iso文件安装,但是KVM管理页面无法填写空白路径启动,所以随便选一个iso文件就行
存储就选刚刚创建的VirtualMachine
卷选iStoreOS.img镜像
内存像iStoreOS这种系统分配1-2G即可
点击创建并编辑
重新检查虚拟机配置和修改
根据您的镜像文件选择固件类型
修改vCPU数量,根据自己情况对应选择
虚拟机自动启动功能等
下拉,网络接口选择bridge
如果是default接口点击编辑
,如果没有接口就点击添加网络接口
,然后按照下图选择
接口类型选择Bridge to LAN
源 选择前面创建的桥接接口 Bridge0
型号 选择 virtio
然后点击保存
linux系统普遍支持virtio虚拟网卡驱动
windows需要下载对应网卡驱动,安装系统成功后进入系统安装对应驱动
确认无误后点击安装
,然后立刻点击安装旁边的三个点,选择强制关机
这是因为iStoreOS虚拟机不需要安装系统就可以直接启动
拉回到下面,删除cdrom磁盘
点击删除
重新点击运行
启动虚拟机就可以正常启动虚拟机
按照提示按下回车
键激活控制台
控制台已激活,输入
quickstart
回车
按键盘上下键移动关标到1.Change LAN IP
,然后回车,修改lan口的ip地址
输入你要给iStoreOS分配的ip地址
我的网关是192.168.11.1
所以我给他分配地址192.168.11.66
,回车确认
掩码MASK
一般都是255.255.255.0
,输入后回车,如果你的不是就修改成你的就行
移动光标到QUIT
,回车退出
输入
reboot
重启iStoreOS,等待重启
9.虚拟机网络不通,防火墙流量放行
解决虚拟机无法 ping 通网桥(如 bridge0)内其他主机的问题,需要在 nftables 的规则中添加放行 bridge0 网桥的规则
激活控制台后,Ping一下你的路由器,看看网络连通性
Ping不通,网页输入iStoreOS管理页面地址也无法打开。
重新用终端ssh连接飞牛,提升权限后
输入下面的指令,回车放行bridge0
接口的流量
这里的bridge0
就是你上面创建的桥接接口名称
nft add rule ip filter FORWARD iifname "bridge0" accept
nft add rule ip filter FORWARD oifname "bridge0" accept
执行下面命令保存规则
sudo nft list ruleset > /etc/nftables.conf
输入下面指令,回车,使iptable服务在启动时加载
sudo systemctl enable nftables
回到控制台虚拟显示器,重新ping局域网的设备已经可以ping通了
现在网页也可以打开刚刚设置好的iStoreOS管理页面地址192.168.11.66
了
iStoreOS用户名和密码,具体根据你下载的版本而定,一般都是下面这个
默认账户:root
默认密码:password
10.虚拟机开机自启
虚拟机自动开机自启,由于虚拟机的libvirt启动比飞牛系统启动更加快速,虚拟机启动时还无法访问飞牛的存储池和挂载点,会导致虚拟机自动启动失败,因此还需要调整设置
输入下面命令编辑libvirtd.service文件
sudo nano /lib/systemd/system/libvirtd.service
寻找到Service中ExcStart这行代码
ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS
使用键盘移动光标到这行,然后删除这行代码
更换为
ExecStart=/bin/bash -c 'while [ ! -d /vol1/1000/VirtualMachine ]; do sleep 5; done; /usr/sbin/libvirtd $LIBVIRTD_ARGS'
其中:/vol1/1000/VirtualMachine
更换为你的虚拟机文件夹路径
修改完成按下ctrl
+x
按下Y
保存
遇见这个就按下回车
确定
保存后会退出到这个界面
输入
reboot
重启飞牛
重启后发现iStoreOS管理页面可以正常打开,说明虚拟机自启动成功
登录进来,后面自行修改配置
11.硬件直通
设置完以上还不能使用设备的硬件直通功能,还需要后续的修改
点击添加主机设备
点击添加主机设备
,切换到PCI设备列表,然后添加无线网卡,显示失败,此时还不能添加硬件直通,其他的PCI设备添加也显示失败。
输入下面代码进入编辑Grub
nano /etc/default/grub
修改GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.force_probe=7d55"
为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
按下Ctrl+X
推出编辑,输入Y
保存修改,
遇见这个界面按下回车
,
然后输入
nano /etc/modules
将下面代码输入到最后面
vfio
vfio_iommu_type1
vfio_virqfd
vfio_pci
然后继续Ctrl+X
退出,输入Y
保存编辑,然后按下回车
然后继续输入
update-grub
继续输入
update-initramfs -u -k all
输入下面代码重启机器
reboot
输入下面代码检查是否开启硬件直通
dmesg | grep iommu
这样就是硬件直通已经成功开启了
回到管理页面重新添加无线网卡发现已经可以成功添加
- 感谢你赐予我前进的力量