0%

All in one小主机重装实录--DSM 6.2.3

前言:

本文主要介绍在Proxmox VE 6.3上导入XPEnology Loder 、注入virtio网卡驱动并安装DSM 6.2.3系统。

导入虚拟机模板

这里 下载虚拟机模板,这个也是我放弃之前的Ubuntu Server 20.04转投PVE的重要原因,真实原因是之前一直没搞定Debian的kodi显卡硬件解码才被迫用的Ubuntu 。

下载回来的模板上传到PVE的/var/lib/vz/dump目录里面,在web界面–local存储–备份里面就能找到,恢复出来的时候需要收到选择恢复到哪个存储池,否则就会按照模板里面的路径来回恢复。

修改SN号和MAC、隐藏50M引导磁盘

把模板恢复出来之后先别急着开机,还需要修改sn和mac地址。

我这里导入后的VM ID是102,挂载50M那个XPEnology Loder盘的第一个分区,编辑grub/grub.cfg

修改sn和mac地址,修改SataPortMap。

1
2
3
4
5
6
7
8
9
10
11
cd /var/lib/vz/images/102/
mkdir synoboot_mount
mount -o loop,rw,offset=$((2048*512)) vm-102-disk-0.raw synoboot_mount
vi synoboot_mount/grub/grub.cfg
set sn=xxxx
set mac1=xxxx
# 分配5个sata口给dsm系统
set sata_args='SataPortMap=5'

# unmount it after editing
umount /var/lib/vz/images/102/synoboot_mount

回到web界面,把50M引导磁盘从sata0改挂到sata5。sata5对于虚拟机内部就是第6个sata口。由于设置了SataPortMap=5,只分配5个sata口给dsm系统,所以第6个sata口在dsm内就不可见了。

改好设置之后,每次都需要从第三项 DS918+ VMWare/ESXI with Jun's Mod v1.04b 启动,只要第一次选过以后都会记忆上一次的结果。

注入virtio网卡驱动

1.04b版本的loader默认只有e1000vmxnet3网卡的驱动,这2种网卡在kvm虚拟机下效能低下,要改为virtio网卡。

XPEnology论坛有位IG-88大佬发布了扩展驱动包,包含了很多硬件的驱动,其中就包含了virtio

这个virtio的驱动程序是从群晖官方Virtual DSM内提取的,但是由于一直没有确认驱动是否稳定,IG-88大佬只是把驱动放在扩展包中并没有激活使用,所以直接使用扩展包也是无法驱动virtio网卡。

从目前论坛的报告状态来看,至少virtio_net在虚拟机中是可以稳定运行。

我自己也测试过硬盘用virtio_blocks是无法识别硬盘的,virtio_net可以正常识别网卡。

接下来就是把驱动注入到Loader里面,既然都要手动打包驱动了,那就没必要使用扩展驱动包把不用的驱动打包进内核。

我这里是直接把原版Loader的extra2.lzma解开,只增加virtio的网卡驱动。关于extra.lzmaextra2.lzma这2文件有什么区别,一直没搞明白。按照大部分的教程都是修改extra.lzma,我改了一天一直没有效果。后来用相同方法修改extra2.lzma成功了。

解开扩展驱动包的extra2.lzma在压缩包里面提取virtio virtio_ring virtio_pci virtio_net四个.ko文件.

挂载原版loader的第二个分区,然后把里面的extra2.lzma解开。

往里面的usr/lib/modules/添加刚刚提取的四个.ko文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd /var/lib/vz/images/102/
mkdir synoboot_mount
mount -o loop,rw,offset=$((32768*512)) vm-102-disk-0.raw synoboot_mount
mkdir ex2
mv ./synoboot_mount/extra2.lzma ./ex2/
cd ./ex2
lzma -d extra2.lzma
cpio -idv < extra2
rm extra2
root@pve:/var/lib/vz/images/102/ex2/usr/lib/modules# ls -l | grep virtio
#在这个目录下放入4个.ko
-rw-r--r-- 1 root root 12832 Apr 27 19:58 virtio.ko
-rw-r--r-- 1 root root 39192 Apr 27 19:58 virtio_net.ko
-rw-r--r-- 1 root root 28448 Apr 27 20:04 virtio_pci.ko
-rw-r--r-- 1 root root 13952 Apr 27 20:04 virtio_ring.ko

编辑etc/rc.modules 找到EXTRA_MODULES=后面加入4个virtio。

1
EXTRA_MODULES="mii mdio libphy atl1 atl1e atl1c alx uio ipg jme skge sky2 ptp_pch pch_gbe qla3xxx qlcnic qlge netxen_nic sfc e1000 pcnet32 vmxnet3 bnx2 libcrc32c bnx2x cnic e1000e igb ixgbe r8168 tg3 usbnet ax88179_178a button evdev virtio virtio_ring virtio_pci virtio_net"

重新打包extra2.lzma,放回30M的分区。

1
2
3
4
5
6
cd /var/lib/vz/images/102/ex2
(find . -name modprobe && find . \! -name modprobe) | cpio --owner root:root -oH newc | lzma -8 > ../extra2.lzma
cd ../
mv ./extra2.lzma ./synoboot_mount/
###Unmount it after editing
umount synoboot_mount

虚拟机硬件配置

直通硬盘,一句话搞定

1
qm set 102 -sata2 /dev/disk/by-id/ata-ST500LM012_HN-M500MBB_S2Y6J9BD406715

回到PVE的Web界面,修改虚拟机的网卡类型为virtio,并修改好MAC地址。添加一个串行端口(serial0)用于查看Loader的输出。

最后开启虚拟机,如无意外很快就能在群晖助手中找到已经安装好DSM系统的主机了。

Enjoy !!

参考: