from--https://www.maxiaowei.tech/posts/3612691073.html
起因
家里的 nas 的第一个系统就是 unraid,整体体验不错,系统蛮符合我的需求的。只是由于它自带的 app 商店经常需
要科学的方法才能连上,体验不太好,才换成现在的 truenas。而现在的 truenas 社区 app 的 docker 镜像地址都换成了 tccr.io,不能用 dockerhub 的镜像加速以后连接速度感人。最近在犹豫是否换回 unraid,就准备在虚拟机中尝试下 unraid 现在的 app 商店情况如何。
由于 unraid 没有提供系统镜像,只能从 U 盘启动系统,在虚拟机中使用 unraid 就比较麻烦,百度搜索只搜到一篇安装失败的博客,参考价值不大,只能自己想办法。
不想看折腾过程的直接看结论即可。
过程
U 盘直通
既然 unraid 需要从 U 盘启动,就尝试在 vm 虚拟机的 bios 中设置 U 盘启动。然而无效,似乎 vmware 的 bios 不能识别 unraid 的启动 U 盘。
可以看到由于前三项的启动都失败了,bios 转到了最后的网络启动,说明此方法无效。
后经过搜索,发现需要将 U 盘转化为 vm 的硬盘,才可以通过它启动。方法如下:
. 打开虚拟机设置界面,选择添加 -> 硬盘 ->SATA 类型 -> 使用物理磁盘。
. 选择 U 盘对应的设备,使用情况中选择整个磁盘。
需要注意要选对正确的物理驱动器编号,这个编号应该与系统的磁盘管理中的编号是对应的(不确
定,在我的电脑中是这样的),U 盘的话一般是最后一个。如果不确定的话,在后面能显示选择的物理盘的容量,可以作为参考。
. 确定好磁盘文件的文件名后,U 盘的映射就成功了,可以看到多了一块硬盘。
. 在 bios 中将该硬盘放在启动盘的第一位,以确保使用该硬盘启动系统。
至此,应该能够在 VM 中启动 unraid 了,但是我遇到了无法通过网络访问 unraid 的问题。似乎 VMware 的网络设置对 unraid 无效,无论是选择桥接还是 NAT 模式,unraid 输出的 ip 地址都是以 169.254 开头的地址,均无法连接。通过 ifconfig 命令查看网络信息,发现没有 eth0 网卡,仅有 br0 这一用于 docker 桥接的网卡,猜测是 VMware 默认的网卡不被 unraid 支持。
配置网卡
通过一番搜索,在 unraid 的官方论坛中(Trying Unraid inside vmware workstation, eth0 problems – Virtualizing
Unraid – Unraid),发现可以通过修改 VMware 虚拟机的 vmx 文件来改变虚拟机使用的网卡类型,坛友反应使用 ethernet0.virtualDev = “vmxnet” 这一配置即可。通过记事本或其他文本编辑软件打开虚拟机文件夹中 vmx 后缀的文件,找到 ethernet0.virtualDev 这一配置项,默认应该是 e1000,将其修改为 vmxnet 后重启虚拟机,发现问题依旧没有解决。
通过该帖子中的链接,发现该网卡最新版本为 vmxnet3,尝试修改为 vmxnet3 后仍然无效。
另一种启动方式
又经过了一番搜索,找到了 ESXI 安装 unraid 的方法 Setting up UNRAID on VMWare ESXI! (2020) – YouTube。在 unraid 的论坛中也找到了类似的帖子 Compiled Info: unRAID as Guest on ESXi – Virtualizing Unraid – Unraid。两者都提到了利用 PlopKexec 来加载和启动 unraid。关于什么是 PlopKexec,下面贴一段官方介绍。
PlopKexec is a Linux Kernel based boot manager for auto detecting and chain loading Linux distributions on USB and CD/DVD drives.
简而言之,PlopKexec 可以自动启动在 USB / 光驱中的 Linux 系统。在 PlopKexec – Download 中下载 plopkexec-1.6bin.tar.gz,解压后得到镜像文件 plopkexec.iso。
重新配置虚拟机,移除之前添加的映射了 U 盘的硬盘(此步可选),在 CD/DVD 设备中选择 plop 镜像文件。
如果设备状态中的
启动时连接
没有勾上,则需要手动勾上。
在 bios 中将 CD-ROM 设定为第一启动项,并手动将 U 盘连接到虚拟机中(如果没有移除 U 盘映射的硬盘,应该不需要操作)。启动虚拟机,等待 plopkexec 启动并找到 U 盘中的 unraid 系统。
经过一段时间的等待,plopkexec 就找到了 unraid 系统,可以手动按回车或者等待倒计时结束,就会启动 unraid 系统。此时系统输出的 ip 地址正确,可以通过该地址连接到 unraid 的 web 页面了,ifconfig 中也出现了 eth0 网卡。终于可以愉快地在虚拟机中使用 unraid 了。
如果 plopkexec 没有找到 unraid,可以尝试下拔插 U 盘、重新启动虚拟机、修改虚拟机中 USB 控制器版本等操作,再行尝试。
总结
下面对 unraid 的安装步骤做一个总结。
. 下载 Plopkexec,指定 unraid 虚拟机的 CD 驱动器使用该 iso 镜像文件。
. 虚拟机的 bios 设置 CD-ROM 为第一启动顺序,利用 plopkexec 加载 unraid 的 U 盘。
. 完成。
经过测试,unraid 支持默认的 e1000 网卡,所以上一节中修改网卡类型这一步骤不是必须的,且暂时不知道两种网卡的区别。
由于有了 plopkexec,上一节中将 U 盘转化为磁盘的操作也不是必须的。
参考
. Compiled Info: unRAID as Guest on ESXi – Virtualizing Unraid – Unraid,该帖子中还提到了直接使用 VMDK 制作虚拟机的方式,但是仅提供了 6.2.3 及以前的版本。
. Run unRAID as a VM in VirtualBox within Windows 10 : unRAID (reddit.com)
. Trying Unraid inside vmware workstation, eth0 problems – Virtualizing Unraid – Unraid