1. 程式人生 > >【老驥伏櫪-原創】製作黑威聯通啟動盤:進階篇

【老驥伏櫪-原創】製作黑威聯通啟動盤:進階篇

原文網址:http://www.nasyun.com/forum.php?mod=viewthread&tid=39748&fromuid=106494
(出處: NAS雲論壇)
 

前言

 

本文是【老驥伏櫪-狗年大禮包】的續篇進階篇。關於破解韌體,逆向工程技術的細節在【狗年大禮包】那篇文章中已經詳細介紹過了,這裡不再贅述。工具母盤也在【狗年大禮包】中釋出過了。本文 將詳細介紹如何使用工具母盤開發製作各種升級版的黑威聯通啟動盤,以及如何釋出你的傑作。這次將以Oracle VM VirtualBox為例,配合工具母盤,從如何搭建開發測試環境,到如何製作補丁,以及如何修改工具母盤。都將詳細講解。本文不適合沒有linux基礎的小白和菜鳥。



 

第一講
搭建開發測試環境


要製作任何版本的黑Q啟動盤,都可以使用我的工具母盤。為了更有效地製作黑Q啟動盤,搭建一個得心應手開發測試環境是第一步。下面我就以Oracle VM VirtualBox為例加以介紹。搭建開發測試環境可以使用任何虛機,KVM,VirtualBox,WMware,HyperV,或實體機。你要製作用於哪種機型的黑Q啟動盤,就最好用它來搭建開發測試環境。 使用VirtualBox虛機為例僅僅是為了方便敘述。

開發測試環境需要硬體CUP 64bit;至少2G記憶體;一個數據硬碟至少30G以上。最好支援com1序列口(ttyS0),如果需要檢視啟動過程的debug資訊。



我把工具盤接在IDE匯流排,作為啟動盤。資料盤接在SATA匯流排,容量50G。請看如下截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

網絡卡設定必須能夠訪問網際網路。我設定的這個網絡卡型別在VirtualBox虛機用這個肯定能工作。請看如下截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

設定com1(ttyS0)串列埠,在實體機上,不用設定它。但你需要另一臺機器接在com1通過TTY終端,才能檢視啟動時的debug資訊。注意:必須是com1才有效。我用虛機將它設定成\\.\pipe\com1,就可以在宿主機上通過PuTTY連線這個管道,檢視debug資訊了。當然,你也可以不用檢視啟動時的debug資訊。就不要設定它了。但黑威聯通啟動很慢,大約要等4到5分鐘時間才能切換控制檯,轉到黑屏。你如果盲測,就要耐心等待。如果你能看到debug資訊,你就知道啟動到什麼程度了。   請看如下截圖:

" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

以上是我設定的開發測試環境。下一步就可以啟動我的工具盤了。啟動VirtualBox虛機。你將看到如下截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

如果你曾經執行啟動安裝過黑Q。截圖會多出兩個選單。這都沒關係,不影響開發測試。請看如下截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

啟動TinyCore工具盤。為了防止誤操作,這時會要求你輸入使用者名稱:
預設使用者:admin,和預設密碼:admin。
進入TinyCore系統。點選終端圖示,開啟一個終端。終端的當前目錄是/home/tc。就可開始破解韌體,製作任意版本的黑Q啟動盤了。


第二講
任意版本的黑Q啟動盤製作


首先需要確定的是資料盤的匯流排控制器是什麼。我的例子中是SATA。因為威聯通預設是SATA。我的硬體檢測程式的預設值,就也是SATA。如果你的資料盤是接在SCSI, IDE,或其他匯流排控制器上,你就要編輯修改我的hardware_check指令碼程式中第六行的CONTROLLER="SATA"定義。這一點非常重要,弄錯了會出現無法檢測到硬碟的問題。

接著要清空當前工具盤的sd?2和sd?3分割槽。關於工具盤的分割槽結構,【狗年大禮包】中已有詳細介紹,這裡不再贅述。VirtualBox虛機按照我的上述設定時。當前工具盤為sdb2和sdb3分割槽。點選mount工具圖示,然後掛載sdb2和sdb3分割槽。掛載後執行如下命令:
 

  1. sudo rm -rf /mnt/sdb2/boot
  2. sudor m -rf /mnt/sdb3/boot

複製程式碼



截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

清空當前工具盤後,一定要解除安裝sdb2和sdb3分割槽。否則以後的命令會出錯。

然後選的一個你要破解並製作的黑Q啟動盤韌體。我這裡以:TS-X53A_20171117-4.3.3.0378.zip韌體為例講解如何製作該黑Q啟動盤。第一步,用vi編輯修改create_qnap_boot 指令碼程式中的第8-9 行。把韌體名稱改為“TS-X53A_20171117-4.3.3.0378”,去掉附加名zip。因為還沒有破解該韌體,我們現在還不知道它的model型別。那我們就先用“XXX”代替。我的例子中,我是先把韌體下載到了我自己的web伺服器上了。所以截圖中是指向我的本地伺服器。請看截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

就可以執行命令:
 

  1. sudo ./create_qnap_boot (一定不要忘記執行 sudo)

複製程式碼


因為沒有正確的model型別。執行命令上述命令肯定會出錯的。在這種情況下,使用我的這個命令create_qnap_boot指令碼目的是獲取破解該韌體的Linux初始RAM磁碟。在沙箱中建立一個initrd 的子目錄,以便得到Linux初始RAM磁碟的所有檔案。讓我們可以進行修補。我的指令碼在出錯後應當停止下來。但這裡有個小小的bug,它沒停止。我測試時也沒有測試到這個問題。直到開始寫這篇文章,才發現。不過不影響我們製作黑Q啟動盤。請看截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

這個命令做完後。我們已經在沙箱中建立了一個initrd 的子目錄。接下來就可以根據我在【狗年大禮包】中所講的。給這個版本的破解版打補丁了。你也可以新增自己的外掛模組(例如:網絡卡,hyperV 虛機的外掛模組,等等)。具體方法如下:

首先在當前目錄中建立兩個子目錄 a/ 和 b/。因為我的hal_app1需要補丁的檔案都在initrd/etc/init.d中,我就會拷貝這個目錄中的所有檔案到子目錄 a/ 和 b/。我把子目錄 a/作為原始基準。所以這個目錄中的檔案一個位元組都不能改動。我使用vi編輯器改動子目錄b/需要補丁的地方。請看截圖:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

vi編輯器是linux系統中最常用的編輯器。玩兒linux江湖高手們,都會非常熟練地使用他。我用它完成所有補丁的修改,也就5-6分鐘的事。但對於很多用慣了windows的GUI文字編輯器的人,可能就會感覺不便。我考慮到了這一點,為了方便壇友,我在工具盤TinyCore系統上事先為大家安裝了sshd 服務。SSH 為Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。這個sshd 服務很有用。大家可以通過它,連線遠端終端PuTTY,或使用pscp拷貝檔案到windows系統上。用自己得心應手的編輯工具修改補丁檔案,然後再把它們拷貝回去。具體如何使用PuTTY和pscp,我就不贅述了。自己百度一下吧。

啟動工具盤上的sshd 服務,執行命令:./start_sshd 截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

工具盤的使用者名稱是:tc。通過SSH連線主機時,一般是需要密碼的。因此還需要給工具盤的tc使用者設定一個密碼。工具盤是執行在沙箱上。所有密碼也是臨時的。重啟機器,密碼就沒了。

設定密碼的命令是: echo tc:12345 | sudo chpasswd -m
這個命令的意思是,給使用者tc設定密碼12345。
我們還需要知道當前主機的ip地址是什麼,命令是:ifconfig。截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

好了,現在就可以使用sshd 服務了。可以把檔案拷貝檔案到windows系統上。修改補丁然後再把它們拷貝回去。把檔案補丁製作完成後,就要生成專門為該韌體的補丁檔案了。注意:生成的補丁檔名一定要與韌體的主檔名一致。我的create_qnap_boot 指令碼程式是按照這個約定程式設計的。否則就會出現找不到補丁檔案的錯誤。

生成補丁檔案命令是:diff -Nar a/ b/ > TS-X53A_20171117-4.3.3.0378.patch
截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

生成補丁檔案後。一定不要忘記把b/目錄的修改過的檔案拷貝回到initrd/etc/init.d中

如果你為這個韌體製作的該黑Q啟動盤,還有一些你自己的特殊需要的檔案,模組等等需要新增。你也可以新增到對應的initrd 的目錄中的對應地方。就不用我再贅述了吧。這樣為這個韌體版本建立的黑Q啟動盤就基本完成了。

在進行除錯測試這版本的個黑Q啟動盤之前,還有最後一件事情要做。非常簡單了。就是看一看這個韌體都有哪些model型別。想起前面我們用“XXX”代替的那個model型別了吧。

使用ls命令看一下initrd/etc/ 的目錄model*檔案都有哪些並記錄下來:ls initrd/etc/model*
取掉前面的model_ 和 後邊的 .conf 中間部分就是我create_qnap_boot 指令碼程式需要的model型別名。注意:其中model_ext.conf是個特殊檔案,它不是model型別名。

TS-X53A_20171117-4.3.3.0378這個韌體支援的model如下:

QX370_10
QX470_QX520_11_11
QX470_QX520_12_12
QX470_QX520_12_20
QX470_QX660_12_20
QX471_QX670_11_10
QX580_10
QX850_QX670_12_10
QX850_QX670_12_20
QX850_QX670_13_10
QX850_QX670_13_20
QX910_11
QX910_QX920_10_10
QX960_QY010_10_10

接下來要選定一個型別,執行如下命令來安裝韌體model型別:

 

  1. sudo cp -f ./hal_util_${MODEL_TYPE}.conf ./hal_util.conf
  2. sudo cp -f ./model_${MODEL_TYPE}.conf ./model.conf

複製程式碼



因為是手工安裝,${MODEL_TYPE}要用指定的型別替換。列如:QX910_11
 

  1. sudo cp -f ./hal_util_ QX910_11.conf ./hal_util.conf
  2. sudo cp -f ./model_ QX910_11.conf ./model.conf

複製程式碼



現在就可有做重新打包,生成這個韌體製作的黑Q啟動盤了。也很簡單。
只要執行./re_packing 命令。你自己版本的黑Q 啟動盤就做成了。

接下來要做的是,TS-X53A_20171117-4.3.3.0378.patch從主機拷貝出來保留起來。因為是在沙箱裡。現在不能重啟機器。否則剛在所做的工作就丟失了。在重啟機器之前,還要備份原始基準目錄 a/ 的所有檔案。除非你有絕對把握一次成功。 

現在這個版本的黑Q啟動盤就做好了。就要講如何除錯測試與釋出。請繼續看樓下,第三講【除錯測試與釋出】。精彩繼續!

 

第三講
除錯測試與釋出


黑Q啟動盤做好後,一定要測試後再發布。重新啟動機器,就可以開始測試了。你可能需要檢視啟動過程的debug資訊。這時出現主選單後,不要立即選擇“啟動主分割槽威聯通系統”開始啟動。應當按我前面講過的,先把ttyS0連上。我以VirtualBox虛機為例。我用虛機的\\.\pipe\com1管道,在宿主機上通過PuTTY連線這個管道時,要先啟動PuTTY開啟這個管道,再啟動主分割槽威聯通系統。才能檢視debug資訊。一旦先啟動黑Q,它沒有檢測的ttyS0存在,它就會放棄向ttyS0發信息。截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

除錯測試過程中,你要仔細檢視是否有什麼錯誤資訊,分析它是否是由於你在補丁時有什麼疏漏。你新增的外部模組是否與該韌體吻合,等等一系列情況。因為每個人在製作時遇到的問題不盡相同。我沒法在這裡細說了。只能概況為上述摘要。

如果除錯測試發現bug需要修改,只要再次啟動進入TinyCore 系統。點選終端圖示,開啟一個終端。因為沙箱的原因,再次啟動系統後,必須用vi編輯器再次修改create_qnap_boot 指令碼程式中的第8-9 行。把韌體名稱改為“TS-X53A_20171117-4.3.3.0378”,也再次修改model型別,現在已經知道model型別了,列如:QX910_11。重新執行一次命令:
 

  1. sudo ./create_qnap_boot (一定不要忘記執行 sudo)

複製程式碼


這時不會再去威聯通官網下載當前正在破解的除錯版韌體了。而是直接再次為你在沙箱中再次生成Linux初始RAM磁碟的initrd 子目錄。截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;"> 

而且你上一次所有的修改都不會丟失。因為你執行過./re_packing 命令。你可以繼續修改除錯,直至成功。但如果你需要繼續做補丁的話。你不能用修改過的檔案做基準。這就是為什麼我讓你備份原始基準目錄 a/ 的原因。

作為例子,我做的TS-X53A_20171117-4.3.3.0378,經除錯測試後非常成功。沒有遇到任何問題。其實,也不會遇到問題。因為這個工具母盤都是我設計製作的,我自己做黑Q啟動盤怎麼會有問題呢?發一個該版的截圖給大家看看吧:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

接下來講講如何釋出你製作的黑Q啟動盤。因為我的工具母盤已經發布過了,你只要釋出你製作的補丁,Model型別列表,和新增的外部模組.ko檔案就可以了。講這些檔案打個包。寫個安裝說明就可以了。例如:我要釋出TS-X53A_20171117-4.3.3.0378韌體,我就會發布:

TS-X53A_20171117-4.3.3.0378.patch 檔案和 “model型別與安裝說明.txt” 檔案。這兩個檔案很小,加起來不到20K。可以直接在nasyun論壇中釋出。
作為例項,我將上述檔案做個壓縮包,直接在nasyun論壇中釋出這個版本如下:

本帖隱藏的內容

 TS-X53A黑Q啟動盤.rar (3.44 KB, 下載次數: 407)




當然你也可以釋出製作好的整個連帶工具盤的黑Q啟動盤。這個盤很大哦。400M左右呢,太佔頻寬,不利於釋出。這也是我設計工具母盤的另一個原因。

大家拿到這個釋出版後,如何安裝呢? 非常簡單,其步驟如下,就不再發截圖了。只做文字敘述。
1. 啟動我的工具盤。進入TinyCore系統。點選終端圖示,開啟一個終端。
2. 啟動工具盤上的sshd 服務。
3. 用pscp命令上傳TS-X53A_20171117-4.3.3.0378.patch檔案到/home/tc目錄中。
4. 用vi編輯修改create_qnap_boot 指令碼程式中的第8-9 行。把PATCHED_FIRMWARE改為“TS-X53A_20171117-4.3.3.0378”。把MODEL_TYPE類改為一個選定的型別。
5. 執行命令:sudo ./create_qnap_boot  (一定不要忘記執行 sudo)。
6. 安裝完畢。重新啟動機器。

簡單吧!

除了我在【狗年大禮包】中釋出的教學破解版和這次提供的教學破解版威聯通韌體的黑Q啟動盤兩個版本之外(一個是8盤位的,一個是4盤位的)。威聯通官網還發布了從1盤位到24盤位的各種韌體。學習嵌入式linux 逆向工程,只看教程是不夠的。必須自己動手實踐。我把製作威聯通官網其它各種版本的韌體的黑Q啟動盤,就留給大家作為“家庭作業”了。希望廣大壇友們,積極完成家庭作業,把自己的傑作釋出的論壇上來。不交家庭作業的,“嵌入式linux 逆向工程”這門課程的“期末考試”成績,就只能是不及格了。哈哈!

請繼續看樓下,第四講【修改工具母盤】, 精彩繼續!

 

第四講
修改工具母盤

 

上文詳細講述了任意版本的黑Q啟動盤製作,以及除錯測試與釋出。這些都是基於不改動工具母盤的情況下進行的。對於江湖高手了說,希望連工具母盤都能自己改造和製作。這也不難,我這個人向來不保守。我的理念從來就是把自己有限的知識,在自己有生之年,儘量傳送給大家。也把我的經驗儘可能地分享給大家。知識容易講,但經驗這個東西不是講講就能學會的。它需要通過實踐和積累。所有希望大家勇於實踐。

 

改造工具母盤,其實也不難。我的工具盤和我所有開發的原始碼都放在sdb1分割槽的根目錄下的laojifuli.gz檔案中。這是一個對TinyCore 系統Linux初始RAM磁碟的一個補丁檔案。對它進行修補時,需要將它解包,修改後需要將它重新打包。

 

我以當前的VirtualBox虛機為例進行詳細講解,首先你要在/home/tc目錄下建立一個子目錄,然後把laojifuli.gz拷貝過來,再將它解包。

 

  1. mkdir diy
  2. sudo mount /dev/sdb1 /mnt/sdb1
  3. cp /mnt/sdb1/laojiful.gz ./
  4. cd diy/
  5. gzip -dc ../laojifuli.gz | sudo cpio -id

複製程式碼

解包過程就完成了,可以修改根據需要修改任何地方了,修改完成後,要重新打包,再拷貝回sdb1分割槽的根目錄下。命令如下:

 

  1. cd diy/
  2. sudo find | sudo cpio -o -H newc | gzip > ../laojifuli.gz
  3. cd ..
  4. sudo laojifuli.gz /mnt/sdb1/laojifuli.gz

複製程式碼

解包,重新打包的截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

在diy/目錄下現在有兩個子目錄。Home/ 和 tmp/ 兩個子目錄。tmp/ 子目錄中的內容是對於TinyCore 系統的補丁。除非你是TinyCore 系統的專家,否則不要改動裡面的內容。

Home/tc/ 子目錄中的內容是我破解威聯通韌體和建立黑Q啟動工具母盤的所有原始碼。沒有幾段程式。簡單吧!其實高手做程式,不是越大,越複雜越有水平。而是恰恰相反,是少而精。畫龍點睛才是高手。截圖如下:
" lazyloaded="true" _load="1" style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none; font-style: normal; border: 0px; cursor: pointer;">

 

事實上,【狗年大禮包】中釋出的工具母盤中,我已經包含了TS-X53A_20171117-4.3.3.0378韌體版本和TS-X82S_20171117-4.3.3.0378韌體版本。

 

教學演示盤預設的威聯通韌體是“TS-X82S_20171117-4.3.3.0378”。
預設的model 型別是“QY410_QY450_10_10”。

 

進階篇的講解將以TS-X53A_20171117-4.3.3.0378韌體為例。【狗年大禮包】中釋出的工具母盤可以支援兩種韌體,和21種model型別。列表如下:

 

=====TS-X82S_20171117-4.3.3.0378 Models list=====

QY410_QY450_10_10
QY411_QY450_10_10
QY412_QY450_10_10
SAF80_SBH80_10_10
TBJBOD
TBJBOD_QW580_QW750_20_20
TBJBOD_QW580_QX180_20_20

=====TS-X53A_20171117-4.3.3.0378 Models list=====

QX370_10
QX470_QX520_11_11
QX470_QX520_12_12
QX470_QX520_12_20
QX470_QX660_12_20
QX471_QX670_11_10
QX580_10
QX850_QX670_12_10
QX850_QX670_12_20
QX850_QX670_13_10
QX850_QX670_13_20
QX910_11
QX910_QX920_10_10
QX960_QY010_10_10

 

現在,可以隨便對工具母盤進行改造。如果你是江湖高手,可以推翻我的全部設計。製作一個你自己的工具母盤。期待你的傑作。

 

關於修改工具母盤,就講完了。此啟動盤的理念和啟動引導的基礎架構設計均絕對是老驥伏櫪本人獨創,併合法利用開源專案 (Tiny Core Linux Project) 開發的。 也是老驥伏櫪通過 NASYUN 論壇在全球獨家首發。 請壇友們遵守GNU General Public License, 未經授權禁止用於商業用途。

 

第五講
【威聯通韌體資源和有關製作黑Q啟動盤的若干問題】

 

威聯通官網釋出的韌體是為它自己的特定硬體設計的。只會滿足它們自己硬體的需要。但威聯通是使用嵌入式linux 的產品,須遵守GPL 協議。釋出了工具鏈和linux 的核心程式碼。

威聯通的工具鏈和linux系統的核心程式碼包資源的網址是:

 

網址: https://sourceforge.net/projects ... NAS%20GPL%20Source/

 

大家可以去下載它的工具鏈。編譯核心或各種自己需要的外掛模組。具體方法請參閱它的使用者手冊。目前威聯通官網釋出的韌體4.3.3和4.3.4都是使用Linux的4.2.8核心。如果你自己編譯核心有困難。可以到網上找找有沒有適合版本的模組。


關於製作各種虛機,實體機的黑Q啟動盤問題:

事實上,黑Q啟動盤的製作除了破解之外,主要需要解決網絡卡,和硬碟支援模組的問題。使用我的工具母盤能夠檢測到網絡卡,不代表用它製作的黑Q啟動盤也能檢測到網絡卡。工具母盤與黑Q啟動盤雖然都是Linux系統,但那是兩種不同的Linux系統。下面我給大家一些我已知的情況,僅供參考。

 

1. KVM 虛機:
威聯通官網釋出的韌體中,已經包含支援KVM 虛機的各種外掛模組的ko檔案。使用我的工具母盤無需新增任何新的模組,只需破解,打補丁。就可以製作KVM 虛機的黑Q啟動盤。這也是為什麼我的【狗年大禮包】中用KVM 虛機為例,給大家做示範的原因。

 

2. VirtualBox虛機:
在網絡卡方面VirtualBox虛機支援virtio-net。這是KVM 虛機外掛模組支援的一種網絡卡。硬碟支援模組VirtualBox虛機不需要特殊的外掛模組,所以用威聯通官網釋出的韌體,也可直接製作VirtualBox虛機的黑Q啟動盤。但要正確設定VirtualBox虛機才行。所有這篇文章我用VirtualBox虛機,給大家做示範。

 

3. VMware 虛機:
威聯通官網釋出的新版韌體中,沒有VMware 虛機的支援模組。很舊的版本中可能有。如果要製作VMware虛機的黑Q啟動盤,至少需要補充vmxnet3.ko網絡卡模組,可能還需要vmware的vmw_pvscsi.ko匯流排的模組。因為我釋出的工具母盤,只是依據威聯通官網釋出的韌體包。我不是黑客,不能釋出vmxnet3.ko和vmw_pvscsi.ko模組。有需要的壇友,可以自行下載威聯通的工具鏈,製作vmxnet3.ko模組用於VMware虛機的黑Q啟動盤。這是“家庭作業”的一道選擇題。給完成這道作業題的釋出者加分。

 

4. Hyper V虛機:
與VMware 虛機相似,威聯通官網釋出的韌體中,也不包括它的網絡卡模組和pci匯流排模組。有需要的壇友,也需要自行下載威聯通的工具鏈,製作網絡卡模組用於Hyper V虛機的黑Q啟動盤。這是“家庭作業”的又一道選擇題。

 

5. Esxi VMware 虛擬伺服器
虛擬伺服器與普通虛機不同,它具有更強的虛擬模擬功能。可以配置成上述各種虛機的虛擬化環境。我自己沒有Esxi VMware 虛擬伺服器,沒法做測試。希望有這方面經驗的廣大壇友積極測試,給與定評。

 

6. 各種實體機
實體機主要面對的是網絡卡問題。如果屬於威聯通官網釋出韌體的支援範疇。則可以直接製作黑Q啟動盤。一般而言,現在的實體機,只要不是使用非常特殊的網絡卡,都不會有問題。其實Linux釋出的核心是包括目前各種網絡卡驅動模組的。只是威聯通對Linux釋出的核心進行了裁剪,讓其只能用於威聯通的特定硬體,這也是一種保護手段。實體機要解決網絡卡問題也很容易。可以自行下載威聯通的工具鏈,把威聯通裁剪掉的適應你的實體機的網絡卡驅動模組補上,編譯出該網絡卡驅動模組。然後新增到啟動盤就可以了。因為有各種各樣的實體機,只能靠大家自己解決了。

 

 

關於製作ISO格式的黑Q啟動盤的問題:

可能會有壇友希望提供ISO格式的黑Q啟動盤。我曾經試圖釋出一個給大家,但因為威聯通系統在應用結構的設計上,需要用到sdb6分割槽保持大約50-60K的資料,提供個系統啟動時,用於給storage_util --sys_startup 從資料盤組裝/dev/md9 和 /dev/md13。【狗年大禮包】哪篇文章中有關破解的“思索與分析” 章節中已經詳細介紹過了。不再贅述。因為ISO格式是隻讀盤。所以必須在關機時,把這些資料儲存起來。如果掛載一個小硬碟來解決這個問題。那麼ISO格式的黑Q啟動盤就有點“脫了褲子放屁”的感覺。直接用小硬碟啟動不就成了嗎。我查了威聯通的資料格式,它是採用gpt分割槽格式化的。分割槽之間沒有留下對齊的間隙。只是在最尾部留了一點點空隙。於是我決定利用這個空隙做成了一個ISO格式的黑Q啟動盤。

 

為了模仿威聯通系統的DOM,我還需要為sdb2和sdb3建立一個臨時loop的記憶體空間。這兩個分割槽盤,要吃掉寶貴的400多兆記憶體空間。影響系統效率。

 

最關鍵的還不是上述問題,更讓我頭疼是,這個ISO格式的黑Q啟動盤只能設定成給某種機器硬體的專用盤。由於威聯通是硬體繫結的。換個機器硬體,就得再發一個ISO格式的黑Q啟動盤。這一點我在【狗年大禮包】那篇文章中講過了。

 

最終我還是決定,不釋出ISO格式的黑Q啟動盤了。這與我釋出通用工具母盤的理念相抵觸。大家知道我釋出過黑群暉的ISO格式啟動盤。製作黑群暉ISO格式啟動盤,也要解決很多難題。事實上,現在江湖上的黑群暉的ISO格式啟動盤也是我獨家釋出的。

 

雖然江湖上高手如雲,但如果我不釋出ISO格式的黑Q啟動盤,我認為近期不會有ISO格式的黑Q啟動盤了。所有我勸大家暫時不必去“百度啦”,“谷歌啦”地去浪費時間搜尋啦。

 

好啦!我的進階篇就先寫到這裡。我的【狗年大禮包】和它的續篇進階篇,非常詳細地揭示威聯通的破解過程。已經為大家攻破,拿下了它的三個主要山頭,接下來雖然還會有些溝溝坎坎,但已經是一馬平川。令威聯通系統已經無險可守了。讓整個系統就像被剝去了婚紗的新娘,接下來大家該如何做,你知道的。預祝大家玩兒黑Q愉快!