最近入手了一台零刻EQ12,在PVE的基础上安装了OpenWrt和黑群晖。安装过程中走了不少弯路,所以记录一下安装过程中遇到的问题,希望可以帮到大家。过程我不会写的很详细,只会写一些容易踩坑的地方,详情的教程网上已经很多了,请大家自行搜索。
由于我是在安装完之后写的这篇文章,有些步骤可能会出现遗漏,如果在安装过程中遇到问题可以在评论区评论,然后大家一起来讨论。
一、安装PVE
PS:我遇到的问题仅限于零刻EQ12 + PVE 7.4版本,新版本可能就没有这个问题了,建议先正常安装试试,如果遇到问题再参考下述手段。
首先下载安装镜像,可以从清华大学开源镜像站下载,这样速度比较快,截至发帖日期时最新版本是7.4。
https://mirrors.tuna.tsinghua.edu.cn/proxmox/iso/
准备一个空白U盘,下载完成后使用写入工具将镜像写入U盘,我使用的是Refus 。
在机器上插入U盘,开启后选择U盘引导,出现下图这个界面时不要直接选择 Install Proxmox VE,需要改动一下内核引导参数,直接进行安装会因为无法拉起 X11 导致报错。
在上图这个界面在Install Proxmox VE 选项上按 e 键进入内核参数修改页面,如下图:
然后在 Linux 这一行末尾,加入 nomodeset 引导参数,如下图:
然后按Ctrl-X或者F10保存并启动引导程序。
过一会就会出现 Installation aborted – unable to continue 这样的报错,其实就是安装程序的 GUI 界面没有拉起来导致的报错。
修改/usr/share/X11/xorg.conf.d/10-quirks.conf,在文件最后加入如下代码:
Section "Device"
Identifier "Card0"
Driver "fbdev"
EndSection
加入代码并保存之后,在终端执行 xinit ,即可拉起安装程序GUI界面进行安装,安装过程就不再赘述了,网上有很多教程,大家自行搜索。
安装完成之后会提示自动重启,但是在我的机器在安装完成后并没有自动重启,最后我在命令行手动输入reboot进行了重启。
解决安装过程报错的帖子地址:
https://forum.proxmox.com/threads/generic-solution-when-install-gets-framebuffer-mode-fails.111577/#post-493820
https://bugzilla.proxmox.com/show_bug.cgi?id=4230
二、LXC安装 OpenWrt
安装OpenWrt参考恩山的这个帖子来安装就行,我用的是Lean的源码编译的Lede固件,编译时选中Target Images —>*.tar.gz,这样就可以直接使用了,不用再重新打包。
https://www.right.com.cn/forum/thread-8218119-1-1.html
我的主路由是Mikrotik RB4011,OpenWrt只提供KMS、ZeroTier、以及网络加速服务,所以只有一个LAN口,在这里贴一下我的配置文件:
arch: amd64
cores: 2
hostname: OpenWrt
memory: 2048
net0: name=eth0,bridge=vmbr0,hwaddr=76:92:66:8D:A1:D9,type=veth
onboot: 1
ostype: unmanaged
rootfs: data:200/vm-200-disk-0.raw,size=4G
swap: 0
lxc.include: /usr/share/lxc/config/openwrt.common.conf
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net dev/net none bind,create=dir 0 0
安装完OpenWrt之后最大的坑来了,DNS解析无法正常工作,排查后发现是Dnsmasq无法正常启动,解决方法是修改 /etc/init.d/dnsmasq 启动脚本中的代码,将dnsmasq_start()函数末尾中 procd_add_jail 开头的几行代码注释掉, 然后重启dnsmasq服务或者重启系统,DNS即可恢复正常工作。
Lean 的 OpenWrt 系统可以参考上图,而官方的则多了几行:
# procd_add_jail dnsmasq ubus log
# procd_add_jail_mount $CONFIGFILE $DHCPBOGUSHOSTNAMEFILE $DHCPSCRIPT $DHCPSCRIPT_DEPENDS
# procd_add_jail_mount $EXTRA_MOUNT $RFC6761FILE $TRUSTANCHORSFILE
# procd_add_jail_mount $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_dhcpscript
# procd_add_jail_mount /etc/passwd /etc/group /etc/TZ /etc/hosts /etc/ethers
# procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile
# case "$logfacility" in */*)
# [ ! -e "$logfacility" ] && touch "$logfacility"
# procd_add_jail_mount_rw "$logfacility"
# esac
更详细的内容请参考恩山的这个帖子:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4053183
三、安装黑群晖
安装黑群晖大家可以参考这位UP的帖子:https://www.bilibili.com/read/cv21410771,我也是参考这位UP的帖子安装的,不过在某些地方进行了小小的改动,第13、14、15步被我省略了,改用了另一种方法。
这位UP是将引导镜像作为SATA磁盘的模式进行使用,安装完成后在磁盘管理里能看到一个多余的SATA硬盘,强迫症不能忍,所以我使用虚拟USB磁盘进行引导,强迫症一本满足。
方法比较简单,在群晖虚拟机配置文件中添加相关参数,虚拟机配置文件位于 /etc/pve/qemu-server/{你的虚拟机id}.conf,然后在配置文件末尾追加 args: -device 'qemu-xhci,addr=0x18' -drive 'id=synoboot,file=/mnt/data/template/iso/arpl.img,if=none,format=raw' -device 'usb-storage,id=synoboot,drive=synoboot,bootindex=5' 即可,注意将前面这段参数中的 /mnt/data/template/iso/arpl.img 替换为第 12 步 中的文件保存路径。
在进行第 16 步的直通SATA控制器时,直通页面提示未开启IOMMU,所以我们需要开启下IOMMU才能进行直通。
SSH进入PVE命令行界面,修改 /etc/default/grub 文件,将GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
然后执行 update-grub 并重启。
重启后按安装教程的第 16 步进行操作,发现 Device 这一栏是空的,无法分辨哪个PCI设备是SATA控制器。
这个时候SSH连接上PVE,执行 lspci 命令,包含 SATA controller 字样的PCI 设备就是 SATA控制器,然后根据前面的设备 ID,就可以在WEB页面进行直通操作了。
接下来就可以按照教程贴继续安装了,需要注意的是第 22 步生成启动配置会从国外网站下载一些文件,速度比较慢,建议打开网络加速功能,这样能节省时间。
四、结尾
感谢这些开发开源软件以及编写各类教程的朋友,你们帮助了许多人,让这个世界变得更加美好。
原文链接:https://www.bilibili.com/read/cv22737723/