前言
发现很多朋友想升级自己的UNRAID服务器系统,但是由于网络或者其它原因升级不成功的,可以尝试自己制作一下离线升级包升级。
这种升级方式升级的系统因为是调用系统自带的升级插件升级的,所以和官方升级一样,有退回功能,就算升级失败也可以退回原来的系统,安全系数还是很高的。
本文公分为四个部分:
-
第一步,找到系统升级的安装文件
-
第二步,解析出下载地址并且下载系统文件包
-
第三步,修改安装文件,实现离线安装
-
第四步,遇到意外升级失败怎么退回
下面就是制作教程。
第一步,找到系统升级的安装文件
Unraid系统是通过插件安装的方式来更新系统的,安装系统的插件就在下面的位置:
/usr/local/emhttp/plugins/unRAIDServer/unRAIDServer.plg
找到这个文件并且拷贝到自己的电脑上或者别的可以编辑的地方,我们需要通过这个文件解析出Unraid系统的系统更新的地址,来下载官方的系统包。
第二步,解析出下载地址并且下载系统文件包
用编辑器打开刚刚复制出来的plg文件,可以找到这行信息:
<!ENTITY name "unRAIDServer">
<!ENTITY author "LimeTech">
<!ENTITY version "6.9.2">
<!ENTITY category "stable">
<!ENTITY pluginURL "https://s3.amazonaws.com/dnld.lime-technology.com/&category;/&name;.plg">
<!ENTITY zip "https://s3.amazonaws.com/dnld.lime-technology.com/&category;/&name;-&version;-x86_64.zip">
<!ENTITY md5 "https://s3.amazonaws.com/dnld.lime-technology.com/&category;/&name;-&version;-x86_64.md5">
<!ENTITY files "bz*,make_bootable.bat,make_bootable_linux,make_bootable_mac,memtest,changes.txt,license.txt,syslinux/syslinux.cfg-">
其中的pluginURL后面是安装文件的地址,zip就是系统包的下载地址。但是其中有部分信息要根据前面的信息替换才能得到真实地址。
这里因为我的系统已经升级到最新了,所以里面的下载地址就是最新的,如果你们不是最新系统就需要自己把version项替换成需要升级的系统版本,然后再解析出下载地址。
经过解析,6.9.2版本的安装文件地址
系统包的地址
这两个文件我们都需要下载。
注意,这两个文件的文件名不能修改,否则无法安装。
安装文件文件名:unRAIDServer.plg
系统包文件名:unRAIDServer-6.9.2-x86_64.zip
这里的plg文件的文件名和第一步的一样,但是内容不一样,所以必须重新下载,后面步骤里用到的plg文件也是新下载的,不是第一步里的那个文件。
第三步,修改安装文件,实现离线安装
因为我们需要离线安装,需要通过系统的插件页面安装,所以最好是把安装文件放到系统的/boot/文件夹,也就是U盘的根目录,这样就很方便我们选择和安装系统。
用文本编辑器打开新下载的plg文件,找到
<FILE Name="/tmp/&name;.zip">
<URL>&zip;</URL>
</FILE>
<FILE Name="/tmp/&name;.md5">
<URL>&md5;</URL>
</FILE>
这部分是用来下载系统包和验证文件的,因为我们是要离线安装,所以不需要下载,直接把这部分删除就行。删除部分为从"<FILE Name="/tmp/&name;.zip""开始到第二个"</FILE>"结束,可以用"Name="/tmp/&name;.zip""作为关键词来找到这部分代码。
然后再找到下面的代码:
sum1=$(/usr/bin/md5sum /tmp/&name;.zip)
sum2=$(cat /tmp/&name;.md5)
if [[ "${sum1:0:32}" != "${sum2:0:32}" ]]; then
echo "wrong md5"
exit 1
fi
这部分是用来验证安装包是否下载完整的。因为我们可能会对安装包做修改,比如替换一些文件什么的,所以直接把这部分删除,并且增加把我们下载的系统包放到/tmp/文件夹的代码。
把这部分代码修改成这一句代码:
cp /boot/&name;-&version;-x86_64.zip /tmp/&name;.zip
这句话的意思是,把我们下载的系统包放到/tmp/&name;.zip目录,因为原安装文件就是把系统包下载到这里,所以我们把离线包复制到这里以后,后面的代码就都不需要修改了,直接让系统自己安装就行。
到了这里,离线包就基本做完了,直接把修改的plg文件和下载的zip文件一起放到/boot/文件夹,也就是U盘根目录,然后在插件页面选择这个插件安装就能把系统升级好了。
如果有特殊需求,比如想要开心的话,可以自己找别人发的开心版的bzroot文件替换到zip文件里的相同文件就行。
第四步,遇到意外升级失败怎么退回
用这种离线包升级的系统和在系统界面升级的一样,是有退回功能的,下面分为两种情况退回原系统。
第一种情况,能进入webgui界面的。直接进入系统升级界面,在Unraid OS (上一个)后面有个恢复按钮,点击以后就能自动退回升级前的系统了。
第二种情况,升级后无法进入系统的。用别的电脑打开系统U盘,在U盘里找到一个“previous”文件夹,把里面的所有文件都复制到U盘根目录,替换原来的文件,这样就退回原来的系统了。
最后,祝大家开心的折腾。
原创文章,作者:夜风博客,如若转载,请注明出处:https://www.homedt.net/47709.html