本帖最后由 shalisi 于 2020-2-8 23:47 编辑
任意版本的黑Q启动盘制作并修改model.conf 说明,红色字体是需要执行的命令。
使用工具有:Notepad++ StarWindConverter win32diskimager SecureCRT WinSCP 1:使用StarWindConverter把老骥伏枥的 QNAP1G-BOOT.vmdk 转换为QNAP1G-BOOT.img 2:使用win32diskimager将QNAP1G-BOOT.img写入U盘 启动TinyCore工具母盘。为了防止误操作,这时会要求你输入用户名,默认用户:admin,和默认密码:admin。进入TinyCore系统。 点击终端图标,打开一个终端。终端的当前目录是/home/tc。程序是以这个目录为基准设计的。千万不要切换目录,以免程序运行出错。 启动工具盘上的sshd 服务,执行命令: ./start_sshd 截屏如下: 工具盘的用户名是:tc。通过SSH连接主机时,一般是需要密码的。因此还需要给工具盘的tc用户设定一个密码。工具盘是运行在沙箱上。所有密码也是临时的。重启机器,密码就没了。 设定密码的命令是:
echo tc:12345 | sudo chpasswd -m 这个命令的意思是,给用户tc设置密码12345。 我们还需要知道当前主机的ip地址是什么,命令是: ifconfig
截屏如下: 这样就可以用Winscp工具通过SSH链接主机,连接上之后修改create_qnap_boot文件。 如果U盘之前有安装过威联通的要先删掉工具盘为sdb2和sdb3分区。(直接写U盘的跳过这步!) 点击mount工具图标,然后挂载sdb2和sdb3分区。 方法: 点击最下方那个硬盘的图标后,再点击sdb2和sdb3。 有的电脑是sda sdb sdc .......我下面以sdb为例,如果你的区分不是sdb,请修改好再执行命令
挂载后执行如下命令: sudo rm -rf/mnt/sdb2/boot sudo rm -rf/mnt/sdb3/boot ls /mnt/sdb2/mnt/sdb3 命令执行后卸载sdb2和sdb3分区。 编辑修改create_qnap_boot脚本程序中的第8-9行。把固件名称改为你想破解的型号,例如“TS-X77_20180528-4.3.4.0597”,去掉附加名zip。因为还没有破解该固件,我们现在还不知道它的model类型。那我们就先用“XXX”代替。 关于下载地址:可以自己建FTP 或者 在com后面加.cn 再把TS-X82改为TS-X77。 这样下载速度会快很多 使用SSH联上SecureCRTP 执行命令:
sudo ./create_qnap_boot 因为没有正确的model类型。执行命令上述命令肯定会出错的。 这个命令做完后。我们已经在沙箱中建立了一个initrd的子目录。接下来就可以根据我在【狗年大礼包】中所讲的。给这个版本的打破解补丁了。 首先在当前目录中建立两个子目录a/ 和 b/。因为hal_app1需要补丁的文件都在initrd/etc/init.d中,需要拷贝这个目录中的所有文件到子目录a/ 和 b/。把子目录 a/作为原始基准。所以这个目录中的文件一个字节都不能改动。 命令: mkdir a mkdir b cp initrd/etc/init.d/* a/ cp initrd/etc/init.d/* b/ 点WINSCP右边窗口空白处 右击刷新
右击a和b文件夹下载到电脑上进行修改。关于具体怎么修改补丁:要修改的文件有11个,如图: 把电脑上b文件夹里的其它文件删掉,留下上面图片那11个文件。不删也可以,我是因为文件太多,看了头晕才把不用改的文件删掉。 使用Notepad++打开老骥伏枥的patch文件和电脑b文件夹里的chkcfgpart.sh 要改的东西不多,就是patch文件里那些 -和+ 的地方,减号意思是删掉减号同行的文字,加号是说添加加号后面的文字。 对比这几行,其实就是把hal_app改为hal_app1就行。 其它需要修的文件同上面一样修改就行 修改补丁然后再把它们拷贝回去。 方法: 使用WinSCP工具,右击左边b文件夹上传,覆盖掉右边的b文件夹。 把文件补丁制作完成后,就要生成专门为该固件的补丁文件了。注意:生成的补丁文件名一定要与固件的主文件名一致。我的create_qnap_boot脚本程序是按照这个约定编程的。否则就会出现找不到补丁文件的错误。 生成补丁文件命令是:
diff -Nar a/ b/ > TS-X77_20180528-4.3.4.0597.patch 生成补丁文件后。一定不要忘记把b/目录的修改过的文件拷贝回到initrd/etc/init.d中。 sudo cp b/* initrd/etc/init.d/ 在进行调试测试这版本的个黑Q启动盘之前,还有最后一件事情要做。非常简单了。就是看一看这个固件都有哪些model类型。想起前面我们用“XXX”代替的那个model类型了吧。 使用ls命令看一下initrd/etc/ 的目录model*文件都有哪些并记录下来:ls initrd/etc/model* 接下来要选定一个类型,执行如下命令来安装固件model类型: 首先要进入initrd/etc cd initrd/etc/ 手工安装指定的类型。列如:QZ140_QZ170_10_10 sudo cp -f ./hal_util_QZ140_QZ170_10_10.conf./hal_util.conf sudo cp -f ./model_QZ140_QZ170_10_10.conf./model.conf 现在就可有做重新打包,生成这个固件制作的黑Q启动盘了。也很简单。 只要执行./re_packing命令。你自己版本的黑Q启动盘就做成了。 sudo ./re_packing 接下来要做的是,TS-X53A_20171117-4.3.3.0378.patch从主机拷贝出来保留起来。因为是在沙箱里。现在不能重启机器。否则刚在所做的工作就丢失了。在重启机器之前,还要备份原始基准目录a/ 的所有文件。除非你有绝对把握一次成功。 关于修改model.conf 方法如下: 修改启动盘里面的initrd.boot文件中间包含的/etc/model.conf. 使用母盘,挂载sda2分区,拷贝/mnt/sdb2/boot/initrd.boot 然后用gzip -d和 cpio解包, 修改完了再原路打包拷贝回去。 命令: mkdir c cp /mnt/sdb2/boot/initrd.boot c/ cd c mv initrd.boot initrd.boot.gz gzip -d initrd.boot.gz sudo cpio -ivmd < initrd.boot rm -f initrd.boot rm 删除文件-f参数加上后表示强制删除,不需要Y/N了 cd etc 修改c/etc下的model.conf 怎么修为请参考论坛文章,或者请教群里的朋友!修改后执行下面命令: sudo cp -f ./hal_util_QZ140_QZ170_10_10.conf./hal_util.conf sudo cp -f ./model_QZ140_QZ170_10_10.conf./model.conf cd .. sudo find . | sudo cpio -o -H newc | gzip >../initrd.boot cd 现在在WinSCP右边窗口刷新下应该就可以找到initrd.boot文件了 cp /mnt/sdb2/boot/initrd.boot.cksum ./ cksum initrd.boot >initrd.boot.cksum sudo mv -f initrd.boot /mnt/sdb2/boot/ sudo mv -f initrd.boot.cksum /mnt/sdb2/boot/ 然后,卸载sdb2和sdb3 最后重启!
|