超详细教程-J4125小主机从到手到安装PVE,iStoreOS作为主路由全过程小记(使用虚拟化)


0.前言

早在今年劳动节,家里就放了一个J4125的小主机,从没系统开始全程配置的那种。但是由于从安装pve到iStoreOS这部分,大抵并非我在操作,有很多操作到目前为止还是不熟悉。恰逢同学也买了个J4125小主机,在昨天到了,有机会熟悉一下这些流程。那么,让我们开始吧!

I.基础准备

在硬件方面,一般情况下,你需要:

  • 一台正常的J4125小主机
  • 一个容量在4G以上的U盘(建议使用USB3.0高速U盘)
  • 显示器与屏幕线
  • 键盘鼠标
  • 能正常联网的路由器或其它设备
  • 几根网线

鉴于小主机到手,一般是没有预装系统的。我们需要在一台正常能联网的电脑上下载必要的文件。
在软件方面,你需要下载如下文件:

  • Ventoy(官方网站)
    一般Windows系统请下载ventoy-x.x.xxx-windows.zip这样的文件
  • Proxmox VE(官方网站)
    这个下载Proxmox VE 8.0 ISO Installer这个选项的文件,版本号可能不一样,没关系
  • iStoreOS(KoolCenter固件下载服务器)
    下载其中最新的,文件后缀为.img.gz的文件。例如istoreos-22.03.4-2023071416-x86-64-squashfs-combined.img.gz
    下载完成后不需要解压。
  • img2kvm(KoolCenter固件下载服务器)
    在其中找到img2kvm
  • WinSCP(官方网站)
    下载速度过慢可以考虑国内源

拆盒子-O-

主机到手,首先检查外观以及能否正常启动。如果你购买的是准系统,需要拆机自行安装内存条和硬盘。这一部分不做详细介绍。我们从硬件准备完全后开始说起。

开机前准备工作

警告:这个操作会清除U盘数据,请确保U盘内没有重要数据或者都已备份。
特别提醒:由于PVE8.1加入了Secure Boot相关支持,当前版本(Ventoy 1.0.96)暂时不支持PVE8.1,若安装该版本PVE,暂时不能使用Ventoy,而是需要直接烧写PVE镜像
最新版本1.0.97已支持

这里我们选择Ventoy作为U盘引导程序,因为Ventoy可以直接读取ISO文件进行引导,不需要你反复刷写U盘,把文件拷进去就可以了,非常方便。

我们先解压刚刚下好的Ventoy,运行其中的Ventoy2Disk.exe,在右上角将分区类型改为GPT,如图所示:

修改完成后,选中你要写入的设备,点下安装即可。完成后,你的U盘会出现一个磁盘名称为Ventoy的盘,这就是我们要用的盘

完成后,将我们下载好的proxmox的ISO镜像复制到你的U盘(Ventoy)中,随后将U盘插入小主机的USB端口。然后为小主机接入键盘,鼠标,连接好显示器,同时用一根网线将小主机连接到已有的能联网的路由器(建议插到最左或最右端口,不为别的,美观一些哈哈),准备开机。
为了便于区分,在路由系统配置完成之前这边建议只为小主机连接一条网线,即上述网线。

教程假设的是你的小主机没有预装系统的情况。按理来讲,开机之后会直接进入Ventoy,但如果你是有预装系统并需要重开的话,需要向小主机的商家咨询一下如何修改引导启动顺序,这里不做详细介绍。进入BIOS的按键一般为Delete,但并不全是,视设备而定吧。

按下开机键,建议检查一下BIOS中英特尔虚拟化技术有没有开启,一般小主机默认都会开启的,方式要咨询小主机商家。按下开机键不操作的情况下,一般会直接引导到你的Ventoy中,利用键盘上下键选中ProxmoxVE的镜像,回车确认,直接按默认的Boot in normal mode即进入了ProxmoxVE的安装向导。

II.安装ProxmoxVE

在进入安装向导之前,你可能会需要在黑屏白字界面等待片刻,不要慌。等待完成后,会出现欢迎界面。这个时候直接按回车,即选中Install Proxmox VE (Graphical),这样就有图形化安装界面了。对界面不做详细介绍,下面用文字的形式描述每个界面,未提到的选项可以不用管,如有特殊需求再说吧:

  • 第一个界面(END USER LICENSE AGREEMENT (EULA)):直接点右下角的I agree,表示同意许可
  • 第二个界面:在的Target Harddisk处选择你要安装的硬盘,不要选到U盘去了,要选小主机内的那个硬盘。此操作同样会清空硬盘数据
  • 第三个界面(Location and TIme Zone selection):下方Country处填所在国家,一般是国内,那么输入China
    这里提供预设值(键盘布局无需更改):
   Country : China
   Time zone : Asia/Shanghai
   Keyboard Layout : U.S. English
  • 第四个界面(Administration Password and Email Address):Password处填写pve系统的root密码Confirm处确认密码,Email处填写一个有效的能用的邮箱。
  • 第五个界面(Management Network Configuration):这个界面中,如果你已经将小主机其中一个口接入有DHCP的路由器,这个界面将会通过DHCP自动填写上IP,网关和DNS服务器,也会自动填写主机名为pve.lan。下面详细介绍各个选项:

    Management interface为用于管理pve的端口。未插网线时会自动选择一个端口,已经连接一根网线到路由器时,会自动选择这个端口。请记好,可以拍照保存一下(当然实在忘了后面也可以看的,只是建议)。

    Hostname(FQDN)为当前小主机在你局域网中的主机名,不要设置成现有的网站名字(例如baidu.com)要设置成局域网内使用的名字,例如pve.j4125,或者保持默认也可。

    IP Address(CIDR)为小主机在网络中的IP地址,后续会重新更改,因此这里可以保持默认。

    Gateway为网关,连接路由器的情况下会自动填写。

    DNS Server为DNS服务器,可保持默认。如有需要可以自行指派阿里云DNS,谷歌DNSdeng。

下面是示例(根据情况而定,不要跟着我写啊喂):

完成之后会看到一个Summary界面,你可以将这个界面拍照保存,这个界面包含了你刚刚设置的信息。确认无误后,其他选项不需管,直接点右下角的Install即可。安装完成后会自动重启,等待片刻即可看到ProxmoxVE的系统命令行界面。最上方显示的IP为当前小主机pve系统的管理网页地址。注意这里显示的地址后续不会自动改变,会一直显示最开始设置的IP。
这里演示的管理地址是https://192.168.100.150:8006/(小主机IP为192.168.100.150)

默认用户名为root,密码为上面安装过程中第四个界面设置的密码。

III.配置ProxmoxVE

到这一步为止,已经可以拔掉小主机上的显示器和U盘了。

进入ProxmoxVE管理面板

你的电脑应当和小主机所连接的路由器在同一网络下,即你的电脑可以连接到小主机所连路由器的WiFi或网口。
直接访问上面获取到的管理地址。初次访问,可能会提示你安全证书错误:

这是正常现象,展开详细信息继续访问即可。如何为pve配置证书不在本文讨论范畴中,具体请上网搜寻。
进入管理界面,修改语言为中文

账号为root,密码是安装时设置的密码。直接登录。

更换ProxmoxVE软件源

鉴于国内网络环境连接到官方的软件源服务器速度较为缓慢,且pve默认使用企业源,在此我们将解决这些问题。这里使用中科大源。
使用如下命令修改:

# 将现有的企业源保留备份
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
# 更换非订阅源
source /etc/os-release
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
# 更换Debian系统源
sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
# 更换LXC容器源
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon
# 更换ceph源
if [ -f /etc/apt/sources.list.d/ceph.list ]; then CEPH_CODENAME=`ceph -v | grep ceph | awk '{print $(NF-1)}'`; source /etc/os-release; echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME $VERSION_CODENAME no-subscription" > /etc/apt/sources.list.d/ceph.list; fi
# 最后apt uptade一下
apt update && apt-get install -y apt-transport-https ca-certificates  --fix-missing
# 删除无订阅弹窗
# 执行完成后,请在浏览器内按下Ctrl+F5刷新缓存
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

IV.安装iStoreOS

尽管iStoreOS官方已经有较为详备的X86 PVE安装指南,但如果要保证接下来我提供的教程不出问题,最好跟着我的教程走哦。以下的教程是对官方的一些补充以及作为主路由环境下的一些更改,应该会更详细一点。

iStoreOS官方为X86_64平台提供了EFI和非EFI两种镜像,且二者对系统本身无任何影响,本教程使用非EFI引导,如有需要,可自行更换。

在PVE中创建虚拟机

进入PVE系统管理界面,右上角“新建虚拟机”。接下来的页面中,遵循如下图片(红色笔迹画起部分为需要更改的地方,其他保持默认):

写入固件并配置虚拟机

这步利用WinSCP工具,把下载好的固件和img2kvm工具放入root目录下。
打开WinSCP,在弹出的登录窗口中,无需修改其他设置,将主机名改为上面获取到的pve的IP,用户名为root,密码为安装时设置的root密码。

首次连接会要求信任主机密钥,点“是”即可

开始时右侧应该就是root文件夹。可以直接用Ctrl+C,Ctrl+V将文件复制到右边,也可以拖进去。

结束后,登录ProxmoxVE系统后台,在节点pve的Shell窗口中输入chmod 777 /root/img2kvm要确保当前处在root目录下
然后输入:./img2kvm 固件完整名 虚拟机ID
比如教程所示的虚拟机ID是100,下载的固件完整名:istoreos-22.03.5-2023072811-x86-64-squashfs-combined.img.gz
所以输入的命令就是:./img2kvm istoreos-22.03.5-2023072811-x86-64-squashfs-combined.img.gz 100
结束后如图所示:

接下来切回你新创建的虚拟机,在硬件界面会有一个未使用的磁盘。双击它,直接点添加即可,无需更改设置。

接下来打开选项界面,双击引导顺序并修改,将最后那个新加的硬盘的已启用打勾,然后将他拖拽到最上方

这步做完之后,别急着启动,先看下面。

再强调一遍!!!别急着启动!!!

V.配置PCI直通(IOMMU)

如果你的PVE安装起来之后,在添加PCI设备时没有如图所示的黄色提示,并且设备列表里有设备,说明IOMMU已经开启,无需进行这一步操作。因为一些奇怪原因,它可能没有自动开启,这时候需要如下步骤手动启动。(前提是前面要求的,BIOS(UEFI固件)中虚拟化相关东西一定要保持开启)


添加PCI设备之前,可能会遇到这个问题。接下来,我们将手动开启IOMMU解决。

修改GRUB引导

在pve的Shell中输入nano /etc/default/grub,随后找到这一行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

对于Intel CPU,将其改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

对于AMD CPU,将其改为

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

(仅对引号中内容追加)
(本教程对应英特尔 赛扬 J4125处理器,AMD CPU的命令不适用,仅作保留备用)
检查无误后,按Ctrl+X并按y确认保存更改,随后回车键退出nano

使PT模式起作用

PT模式:会在IOMMU需要使用时候才启动,适配器不需要使用 DMA 转换到内存,因此可以提高其他没有分配过设备的性能

上面的GRUB引导修改中,iommu=pt就是启用PT模式。但是,这个模式需要额外一些设置:
在pve的Shell中输入nano /etc/modules,在这个文件的末尾追加这四行:

vfio 
vfio_iommu_type1 
vfio_pci 
vfio_virqfd

检查无误后,按Ctrl+X并按y确认保存更改,随后回车键退出nano
更改任何相关模块后都需要刷新 initramfs。因此,在Shell中输入

update-initramfs -u -k all

最后在Shell中输入update-grub
然后就可以重启PVE啦,Shell中输入reboot进行重启
重启之后,在PVE的Shell中,输入dmesg | grep -e DMAR -e IOMMU验证是否已经启动。
如果已启动,出现的一系列字中会有一行DMAR: IOMMU enabled如果没有,说明不成功,请仔细检查自己的操作过程。

VI.配置网卡直通

鉴于大多数J4125小主机都是大于1个网口的。常见的有双网口,4网口,6网口等。这里我们拿4网口作为例子。双网口以上的配置方法大同小异,无非是直通几个PCI设备的问题,也可以看下面的教程。

首先,找到安装pve时的Management Interface。在我的系统中,这个端口是enp5s0
在PVE的Shell中输入lspci | grep -i ethernet,查看各个PCI网卡的地址。此处示例如图:

其中05:00.0对应的就是enp5s0。同理,04:00.0对应的就是enp4s0。于是,我们返回到iStoreOS虚拟机的硬件一栏。

左上角添加处,添加PCI设备。在PVE8中,按如图方式选择。在设备一栏,选择你刚刚通过lspci | grep -i ethernet找到的Management Interface以外的网卡(此处是除了enp5s0以外),一个一个地添加,将他们全部直通到iStoreOS中。选项大致如图所示:

(注:是否全部选择并直通取决于自身使用需求。如果需要将所有端口都作为软路由,则可以全选择。)
添加完成后,效果如图:

这样网卡就直通完啦(/ω\)

VII.配置iStoreOS

万事俱备,可以 iStoreOS,启动!
按照本教程走的话,暂时不需要使用quickstart修改IP地址。我们可以直接将pve的网段改到iStoreOS下。iStoreOS的默认IP是192.168.100.1,不手动修改的情况下,按照如下图所示步骤更改即可。

这个时候,你可能会发现,咦?PVE连不上了!完蛋了!前功尽弃了!

啊不不不,你先别急。因为我们把PVE连到了他其中的iStoreOS,我们不能够再通过先前路由器的网段连接PVE了。别慌。教程之初,你应该用一根网线将小主机和之前的路由器连接起来了。现在,将该网线插在小主机的网口从原来的Management Interface改为前文中你直通的任意一个网口(一定不是最初连接的那个网口)。

这个时候,稍等片刻,你的电脑应该会自动获取到IP地址(如果没有获取到,可以尝试更换网口)。很多情况下,iStoreOS会把之前的Management Interface作为WAN口,导致无法通过http://192.168.100.2:8006访问PVE,这个时候需要我们进入iStoreOS修改网口设定。

此时你应该可以打开192.168.100.1,打开iStoreOS的配置界面啦。默认用户名是root,密码是password。出于密码强度考虑,你应该自己手动修改一下默认密码,在这个链接里修改http://192.168.100.1/cgi-bin/luci/admin/system/admin

随后,我们需要修改iStoreOS配置使内网可以访问PVE:
登录iStoreOS后台,访问如图所示的页面,随后将PVE虚拟的网口(即未显示端口速率的那个口,一般是eth0,如图所示)从WAN口的勾选去除,改为LAN口。随后将后面的端口找一个改为WAN口,用于让iStoreOS联网。

如果是双网口小主机,将会只能选择目前已经连接到电脑的那个端口,那么我们可以在改完之后将连接到电脑的网线插到原来的Management Interface,此时这个网口将作为LAN口使用。
*注:改完之后,原来的端口将无法访问iStoreOS,故应用更改后无法刷新界面,必须重新连接网线

这个时候再次访问PVE的管理网址,当你发现你可以成功管理iStoreOS和PVE之后,你可以找一根网线,将上文设置的那个WAN口连接到光猫或者上级路由器。随后在iStoreOS网页管理中,直接点旁边的网络向导,按照提示配置,就能上网啦φ(゜▽゜*)♪
*注:如果你不知道小主机上的网口在iStoreOS中的对应关系,可以再用一根网线接到光猫或者路由器,然后另一端接到小主机上的空闲网口一个一个尝试,并刷新iStoreOS的网口配置页,观察哪个口已连接,哪个口就对应小主机上的端口。建议建立一个表格进行记录。

至此,你已经成功地将你的J4125小主机变成了可以玩玩虚拟化的软路由了。后续也可以在pve系统里安装lxc容器来运行Linux,Docker这些,甚至可以装Windows系统虚拟机(当然J4125的性能,只推荐Win8及以下的企业版和Windows Server)

注:本步中你电脑连接到小主机上的那个接口已经算是一个lan口了,设置完成后,这个接口可以直接接下面的无线路由器,或者交换机,或者直连电脑这些,都是可以的嗷

VIII.后记

完结撒花~这篇教程着实花了我好久时间,从早上写到下午16点,花了好久捏。(虽然说早上太困了睡到10点半)(甚至手机闹钟都叫不醒我(((

在编写的过程中,我也发现了自己配置小主机和帮同学配置过程中的很多问题。尤其是帮同学搞的时候,甚至好几次错误地把PVE的Management Interface直通到了iStoreOS,导致直接访问不了pve了。可以说是艰难险阻真的多,网上的教程又不怎么全面,真是让人糟心。这么多的试错下,我还是想想,要不自己当个先行者,写一篇完完整整的从到手到能上网的全教程,以利后人awa

各位看在我这么累的份上,不妨来点评论..或者看看左下角的赞赏码...啥的?至少鼓励鼓励我继续写嘛哈哈
(虽然是纯粹出于热爱,也不图什么回报,无论如何以后遇到啥东西想总结的也会继续写的)

ok,忙了这么久,我先撤退,打会游戏,各位再见

附录 - 手动配置IP地址

该部分已废弃,仅作存档处理,请勿参考



打开控制面板中的所有适配器选项,找到有线网口对应的那个适配器,双击打开,然后属性->Internet 协议版本 4 (TCP/IPv4)->属性,选择使用下面的IP地址

  • IP地址,填192.168.100.114(最后的114也可以在10~255之间随意改,不冲突即可)
  • 子网掩码处,填完IP地址后,会自动补全
  • 默认网关,192.168.100.1
  • DNS服务器可以写阿里DNS(223.5.5.5和223.6.6.6)或者其他

例如,我的设置如下:

现在,可以打开浏览器,在地址栏输入上面获得的管理地址,看看能否访问进去。如果不行,表明电脑连接的端口有误,要把网线切换到Management Interface那个口,这时你可以换一个口插试试。上述配置无需更改,试到能访问pve就可以了。

附录 - 参考资料

修改记录

2024.01.15 10:11
1.更正了关于PVE网络配置的严重错误
2.优化了换源命令,使之更加通用(命令来自USTC帮助文档,见附录)

2023.08.08 14:20
更换图片CDN,整理散乱分布的图片

2023.08.02 00:47
加粗部分文字,修改错别字

2023.07.28 18:00
初版

声明:Youwen|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 超详细教程-J4125小主机从到手到安装PVE,iStoreOS作为主路由全过程小记(使用虚拟化)


道阻且长