在fnOS上安装 KVM 虚拟化,并使用Cockpit网页管理虚拟机

发表于:2024-9-20 10:44:34 虚拟机(敬请期待) 17498
本帖最后由 kggzs 于 2024-9-20 11:00 编辑
【fnOS飞牛NAS部署KVM虚拟化,并实现在Web界面管理虚拟机,不影响飞牛系统更新。打造拥有虚拟机功能的完美NAS,Debian虚拟化KVM部署OpenWrt】
视频教程:https://www.bilibili.com/video/B ... 00471323001df0dd15f
文档说明
1. 安装 KVM虚拟化组件
安装 KVM 及相关工具软件:
  1. sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
复制代码
如果服务正在运行,KVM 安装成功。

2. 安装 Cockpit管理工具
启动 Cockpit 服务:
  1. sudo systemctl start cockpit
复制代码
使用您的fnOS用户名和密码登录,就可以管理服务器和虚拟机了。

3.关闭Apparmor对Libvirt安全限制
执行完成后reboot重启机器。

4.创建Bridge网络,使虚拟机通过bridge0桥接到物理网络
在Cockpit Web管理界面进行操作(这一步需先创建虚拟机存储池)

6.解决虚拟机网桥不通的问题
1. 允许 bridge0 网桥的流量,在 filter 表的 FORWARD 链中添加规则,以允许通过 bridge0 网桥的流量,这样可以确保来自虚拟机的流量可以通过网桥转发到其他主机:
  1. nft add rule ip filter FORWARD iifname "bridge0" accept
  2. nft add rule ip filter FORWARD oifname "bridge0" accept
复制代码
3.确保 nftables 服务在启动时加载配置:
  1. sudo systemctl enable nftables
复制代码
7.解决虚拟机开机无法自动启动的问题
编辑libvirtd.service文件:
  1. sudo nano /lib/systemd/system/libvirtd.service
复制代码
修改为改为:
  1. ExecStart=/bin/bash -c 'while [ ! -d /vol1/1000/vmdisk ]; do sleep 5; done; /usr/sbin/libvirtd $LIBVIRTD_ARGS'
复制代码
至此,教程结束,虚拟机一切功能正常,fnOS更新不会影响虚拟机的使用,虚拟机的磁盘文件在飞牛的存储池内,也能保证虚拟机数据的安全性。

其他功能(可选)其他1:调整虚拟机关机超时时间(可选)
可以修改 /etc/default/libvirt-guests文件中的相关设置,调整关机超时时间减少等待,配置文件也可以控制虚拟机关机的相关动作,默认的关机时间为300s,即5分钟:
根据自己情况修改,修改完成后,重新启动 libvirt 服务生效:
  1. sudo systemctl restart libvirtd
复制代码
其他2:虚拟机的快照功能(可选)
1.放行bridge0流量:
  1. sudo iptables -A FORWARD -i bridge0 -j ACCEPT
  2. sudo iptables -A FORWARD -o bridge0 -j ACCEPT
复制代码
虚拟机创建好以后,配置文件存放在/etc/libvirt/qemu/ 路径下
可以导入虚拟机的配置文件,快速恢复虚拟机。
重要数据应该存放在带有效验恢复能力的RAID1 RAID5等阵列中,加以保护。

注意事项
  • 按上面做法,在系统盘损坏或者系统损坏重装后,至少不会丢失存储空间的数据。
  • 此操作需要具备一定的Linux和网络基础知识,不建议新手对fnOS底层进行修改操作。
  • 虚拟机内不建议存放重要数据,以免虚拟文件损坏导致数据丢失。
  • 无论如何,重要的数据使用冷备份、网盘备份等多重备份才能确保其安全性。
  • 补充说明:
  • 1、操作前请确认自己希望使用fnOS做底层,并且希望使用虚拟机功能,否则视频将没有意义。
  • 2、fnOS的系统盘建议使用独立的硬盘,不要在系统盘上创建存储空间,当系统盘损坏格式化或者系统重装时,至少不会丢失存储空间目录中的用户数据。
  • 3、存储空间建议使用具有效验恢复能力的RAID1 RAID5等阵列方式,重要数据同时做好冷备份和多重备份。
  • 4、fnOS仍在测试阶段,请勿存放重要数据,有朋友出现全部数据丢失的情况。
  • 5、新手不建议对fnOS的Debian底层进行修改,需要一定的Linux基础和网络基础知识。
  • 6、虚拟机创建好以后可以将配置文件备份一下,有虚拟机配置文件和虚拟磁盘文件,在系统重装后可以快速恢复虚拟机。
  • 7、重度虚拟机用户,需要检查确保虚拟机Balloon驱动正常,并安装GA代理软件。以实现更好的虚拟机体验,更好的动态内存分配和内存回收利用,让fnOS拥有更多的可用内存。win系统guest agent软件在virtio驱动包里,op系统可以opkg安装qemu-ga软件包。
收藏
送赞 14
分享

发表回复

评论列表(47)

还不错,视频前两天好像看过~知识眼前飘过不入脑··
2024-9-20 16:21:19 回复
厉害的,感谢大佬分享,看啥时候飞牛把这个纳入官方app就好了,这样子不用担心资源冲突了。
2024-9-20 16:28:16 回复
不知名网友  发表于 2024-9-20 16:45:19
66666666666666666666666
2024-9-20 16:45:19 回复
大佬,我按照你的步骤一步一步走,但是点击安装就提示这些
ERROR internal error: qemu unexpectedly closed the monitor: 2024-09-21T12:10:32.293105Z qemu-system-x86_64: -device {"driver":"ide-cd","bus":"ide.0","drive":"libvirt-1-format","id":"sata0-0-0","bootindex":1}: Failed to get shared "write" lock Is another process using the image [/vol1/1000/vmdisk/istoreos.img.gz]? Domain installation does not appear to have been successful. If it was, you can restart your domain by running: virsh --connect qemu:///system start istoreOS otherwise, please restart your installation. Command '['virt-install', '--connect', 'qemu:///system', '--quiet', '--os-variant', 'linux2022', '--reinstall', 'istoreOS', '--wait', '-1', '--noautoconsole', '--cdrom', '/vol1/1000/vmdisk/istoreos.img.gz']' returned non-zero exit status 1.
2024-9-21 20:11:58 回复
感谢分享,已加精
2024-9-21 20:30:02 回复
虚拟机啥时候提上日程啊。。。。我要装ikuai。。。。。坐等,还有一天跨年了。2025年  详情 回复
2024-12-30 11:07
希望飞牛后续能将该功能集成到系统界面  详情 回复
2024-10-14 21:46
同学istoreos.img.gz不是镜像文件吧?istoreos.img才是,你是不是没有解压问题呢?
2024-9-22 10:45:17 回复
hsh
这个好像需要转格式  详情 回复
2024-10-9 15:53
这个包在openwrt上能直接使用,我以为不需要解压呢
2024-9-23 09:19:43 回复
希望支持虚拟机管理,pcie直通和硬盘直通功能
可以参考下 https://www.freevm.com/
虚拟化平台做的还可以,就是社区版限制了,收费版没标价
2024-9-24 23:56:39 回复
虚拟机已经上车,但是配置桥接以后fnos无法识别网络状态,远程无法登录无法连接
2024-9-30 09:06:41 回复
解决了么,我也是配置桥接以后 IP就在网桥上面了 导致物理口没有IP地址 远程无法登录了  详情 回复
2024-12-9 13:05
双网口就可以了 桥接一个网口过去  详情 回复
2024-11-14 21:03
安装的镜像地址失效了
2024-9-30 16:03:14 回复
大佬,我按照你的教程把前面的都搞定了没问题 。就是核显共享,搞不定。你B站的教程,只在后面笼统的讲了一下 ,能具体指导一下吗
2024-9-30 20:38:24 回复
虚拟群晖问题还是挺多的,启动的时候会直接内存超出设置,web管理页面内存一直红着。还有一个很怪的问题,用的虚拟磁盘,监控套件挂一个摄像头后,飞牛影视一开很快就死机,感觉像是核显冲突了
2024-10-1 00:25:15 回复
多套几层,折腾折腾,路过点赞
2024-10-8 11:21:02 回复
这个好像需要转格式
2024-10-9 15:53:46 回复
实验完了,成功了,弱弱问一句,咋删除?
2024-10-9 17:03:00 回复
你重装系统就行了  详情 回复
2024-10-10 09:14
你重装系统就行了
2024-10-10 09:14:19 回复
妈呀,没别的方法吗  详情 回复
2024-10-10 09:28
HU昌歌 发表于 2024-10-10 09:14
你重装系统就行了

妈呀,没别的方法吗
2024-10-10 09:28:02 回复
谢谢分享教程!
2024-10-14 20:23:28 回复
希望飞牛后续能将该功能集成到系统界面
2024-10-14 21:46:32 回复
厉害的,感谢大佬分享
2024-11-9 11:57:49 回复
双网口就可以了  桥接一个网口过去
2024-11-14 21:03:47 回复
按照教程装到网桥那一步,担心影响单位整个网络,把网桥删了之后对应网卡的地址就没了,再配置临时地址,登录该地址在fnos 的web端修改网络配置,重启后还是不生效,请问这个怎么弄呀
2024-11-15 11:00:24 1 回复
怎么卸载
2024-11-15 20:31:36 回复
同问同问同问同问同问同问同问  详情 回复
2025-1-2 12:09
感谢分享
2024-11-18 13:52:44 回复
期待飞牛赶快集成这个功能
2024-11-24 18:09:11 回复
加精 不会用 先收藏
2024-12-9 11:43:00 回复
解决了么,我也是配置桥接以后 IP就在网桥上面了 导致物理口没有IP地址 远程无法登录了
2024-12-9 13:05:59 回复
我wan口一拨号联网飞牛就无法访问外网,wan口已经做了直通,也按教程做了桥接放行。
2024-12-12 07:26:01 回复
感谢大佬分享
2024-12-28 20:03:30 回复
我咋感觉通常是在PVE上装fnos,这咋反过来了
2024-12-29 19:20:46 回复
虚拟机啥时候提上日程啊。。。。我要装ikuai。。。。。坐等,还有一天跨年了。2025年
2024-12-30 11:07:07 1 回复
安装后飞牛网络设置报错了 系统繁忙 ,不过不影响系统和虚拟主机使用
2024-12-31 11:48:25 回复
不想用了,如何卸载啊
2025-1-2 12:08:12 回复
同问同问同问同问同问同问同问
2025-1-2 12:09:13 回复
创建bridge0 后发现IPV6 地址无法自动获得  什么情况?
2025-1-2 20:27:18 回复
好复杂,我还是等官方的虚拟机出来吧
2025-1-3 15:47:42 回复
超赞,谢谢分享!!
2025-1-7 16:27:21 回复
还是希望官方的虚拟机快快的更新
2025-1-7 21:09:33 回复
有点复杂,我们这些小白操作有难度。
如何部署win虚拟机?
2025-1-10 10:46:10 回复
厉害的,感谢大佬分享
2025-1-10 13:08:58 回复
如果你想卸载之前安装的KVM及相关工具(如`qemu-kvm`, `libvirt-daemon-system`, `libvirt-clients`, `bridge-utils`)以及Cockpit管理工具,可以按照以下步骤操作:

### 卸载KVM及相关组件

首先,卸载与KVM虚拟化相关的软件包。你可以使用如下命令来执行卸载:

```bash
sudo apt-get remove --purge qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
```

`--purge`选项会同时删除软件包的配置文件。如果你希望保留配置文件以备将来使用,则可以省略该选项。

### 卸载Cockpit管理工具

接下来,卸载Cockpit及其相关组件:

```bash
sudo apt-get remove --purge cockpit
```

同样地,如果不想删除配置文件,可以去掉`--purge`选项。

### 清理系统

完成卸载后,建议运行以下命令来清理不再需要的依赖包,并更新软件包列表:

```bash
sudo apt-get autoremove
sudo apt-get update
```

### 检查并移除残留服务

确保没有残留的服务或配置影响系统。例如,检查是否有剩余的Libvirt服务正在运行,并停止和禁用它们:

```bash
sudo systemctl stop libvirtd
sudo systemctl disable libvirtd
```

对于Cockpit服务也可以进行类似的检查和停止操作:

```bash
sudo systemctl stop cockpit
sudo systemctl disable cockpit
```

### 最后的检查

最后,重启系统以确保所有更改生效,并确认所有相关的服务都已经正确停止和卸载:

```bash
sudo reboot
```

重启之后,可以通过检查系统状态来确认所有相关服务是否已被成功移除:

```bash
systemctl list-units --type=service | grep -E "libvirt|cockpit"
```

如果没有输出结果,说明相关的服务已经被成功移除。这样就完成了KVM和Cockpit在你的Debian系统上的卸载过程。如果有任何错误信息或其他问题,请提供详细的错误描述以便进一步帮助。
2025-1-10 19:04:00 回复
usb无线网卡驱动成玄学:1有的时候入USB无线网卡不识别,必须重装系统才能识别。2、有的时候重启就能识别usb无线网卡。
2025-1-11 11:34:05 回复
这个帖子是不是少了一段安装cockpit的命令?
2025-1-13 10:34:32 回复
66666666666666666666666
2025-1-13 17:17:34 回复
2025-1-14 09:31:12 回复
感谢分享,
2025-1-14 22:55:24 回复
谢谢分享教程!
7 天前 回复