電腦產品在出貨之前必須針對軟硬體功能進行測試,以確保產品品質。由於製造商是大批量產且會生產不同特性的電腦產品,因此需要具有高效率、自動化且應用性高的測試系統。
目前來說,網路式測試系統具有較高的效率與應用性,其通常具備一伺服器及一測試資料庫。操作人員可以根據當批待測裝置的設計,事先在伺服器上建立好測試檔案及測試環境檔案,以供待測裝置下載進行測試作業,而測試資料庫可提供相關測試參數及蒐集待測裝置的測試結果。
對電腦產品類的待測裝置,操作人員需要進行各種不同作業系統環境下的測試,以確保產品可在消費者可能安裝的作業系統下工作正常。在網路式測試系統中,待測裝置需要透過遠端安裝技術,從伺服器端下載安裝流程模組(Answer File),並據此安裝伺服器上的待測作業系統。當前業界在網路式測試系統上最常使用的遠端安裝環境為開機前執行環境(Preboot Execution Environment,PXE)。請參考第1圖,第1圖為習知用於一待測裝置之一測試流程10的流程示意圖。測試流程10包含下列步驟:步驟100:開啟電源。
步驟102:由操作人員按下F12鍵進入一網路開機程序以掛載PXE網路安裝功能。
步驟104:進入PXE功能選單。
步驟106:由操作人員選取一待測作業系統。
步驟108:從一伺服器下載該待測作業系統的一安裝流程模組。
步驟110:根據安裝流程模組,安裝該待測作業系統。
步驟112:於該待測裝置網路安裝完被選取待測作業系統後,從該伺服器下載該作業系統的一測試模組。
步驟114:呼叫一測試資料庫的測試參數。
步驟116:根據測試參數,執行該測試模組來進行一測試流程。
步驟118:於該測試流程完成後,傳送測試結果給該測試資料庫。
步驟120:結束。
透過習知測試流程10,操作人員一次可以安裝一個待測作業系統在待測裝置上,然而,待測裝置通常需要測試數十個作業系統,以確保產品品質。因此在習知測試系統中,操作人員每完成一次測試流程10,必須先重新啟動待測裝置,再度執行測試流程10,以安裝及測試下一個待測作業系統,直到所有的待測作業系統的測試作業結束。這表示操作人員必須時常待在待測裝置旁邊,確定當前待測作業系統是否測試完畢,再手動安裝下一個待測作業系統,而這也意謂著操作人員在下班之後,待測裝置無法持續測試作業。換句話說,這樣的測試系統必須耗費較高的人力成本。
除此之外,中華人民共和國公開號CN 1504880A揭露了一種運用Linux完成作業系統自動安裝的方法,其主要根據目標裝置的硬體實際情況,產生對應的安裝應答腳本(Answer File)和系統設置腳本,以達到作業系統自動安裝,但此方法僅用來自動安裝一個目標作業系統,若需自動安裝另一個目標作業系統,仍需要使用者手動重複相關流程。
請參考第2圖,第2圖為本發明實施例可自動化安裝作業系統之一電子裝置20之示意圖。電子裝置20可進行硬碟開機及非硬碟開機(如網路或光碟開機),且硬碟開機的選擇順位優先於非硬碟開機,例如:軟碟機→硬碟機→光碟機→網路的開機順序。此外,電子裝置20包含一系統操作單元200、一接收單元210、一安裝流程模組(Answer File)220、一安裝導向模組230、一系統安裝單元240、一系統指示模組250及一硬體測試模組260。系統操作單元200用來讓電子裝置20操作於已安裝完成之一作業系統202。在操作於該作業系統202時,硬體測試模組260開始測試電子裝置20的各項硬體裝置,例如基本輸入輸出系統(Basic Input/Output System,BIOS)、硬碟驅動程式、網路卡驅動程式、電源等測試。待測試作業結束後,安裝導向模組230清除電子裝置20的硬碟的一開機磁區232,以產生一無開機紀錄狀態NUL_BR。在本發明較佳實施例中,開機磁區為一主開機紀錄(Master Boot Record,MBR)。電子裝置20上的硬碟可以是集成設備電路(Integrated Device Electronics,IDE)或小型電腦系統介面(Small Computer System Interface,SCSI)、2.5吋或3.5吋的SAS、SSD、SATA硬碟,或磁碟陣列卡,如:RAID0、RAID1及RAID6。因此,電子裝置20利用安裝導向模組230可清除開機用硬碟的作業系統分割區載入資料(Boot Partition Loader)或/及硬碟分割資料(Partition Data)。於無開機紀錄狀態NUL_BR產生後,系統指示模組250可由系統安裝單元240產生,以指示下一個需要安裝的作業系統給系統操作單元200。安裝流程模組220用來提供對應於一目標作業系統222的一安裝流程SEP_Pr。於電子裝置20重新啟動後,系統安裝單元240根據無開機紀錄狀態NUL_BR及安裝流程SEP_Pr,安裝目標作業系統222,其中目標作業系統222是透過接收單元210來取得。在此之後,系統操作單元200則操作於新安裝完成的目標作業系統222。換句話說,由於硬碟的開機資料已被清除,因此電子裝置20重新啟動後無法進行硬碟開機,而改採用非硬碟開機,進而利用安裝流程模組220安裝新的作業系統。
因此,在本發明中,電子裝置20內可建置多組對應於不同作業系統的安裝導向模組與安裝流程模組,如此一來,電子裝置20可以根據安裝流程模組,安裝對應作業系統,並在操作於此作業系統期間清除開機磁區,以在重新啟動之後,根據無開機紀錄狀態自動安裝另一個作業系統。如此一來,電子裝置20可達到自動化連續安裝多個作業系統的目的。
此外,電子裝置20的安裝流程模組220、安裝導向模組230及硬體測試模組260可透過接收單元210取得。舉例來說,若電子裝置20所進行之非硬碟開機是一光碟開機,則接收單元210可為一資料傳輸介面,例如IDE或SCSI,以從光儲存裝置接收目標作業系統222、硬體測試模組260、安裝流程模組220及安裝導向模組230。或是,若接收單元210為一網路單元,其透過網路開機,連接於伺服器,並透過網路檔案分享或傳輸協定,取得目標作業系統222、安裝流程模組220及安裝導向模組230。在使用網路自動遠端安裝的情況下,系統操作單元200可產生系統指示模組250,並透過接收單元210傳送至伺服器,以指示下一個欲安裝的作業系統。
請參考第3圖,第3圖為本發明實施例一流程30之流程示意圖。流程30用來實現電子裝置20的操作,其包含下列步驟:步驟300:開始。
步驟310:於操作於作業系統202時,清除開機磁區232,以產生無開機紀錄狀態NUL_BR。
步驟320:於電子裝置20重新啟動後,根據無開機紀錄狀態NUL_BR及安裝流程SEP_Pr,安裝目標作業系統222。
步驟330:結束。
流程30係說明電子裝置20從一作業系統主動安裝為另一作業系統的操作步驟。電子裝置20安裝完成且操作於在目標作業系統時,再度執行步驟310,即再度清除開機磁區,以安裝另一個目標作業系統。換句話說,透過自動重複執行流程30,電子裝置20可自動化連續安裝多個作業系統。由於流程30用來實現電子裝置20的操作,因此詳細原理請參考前述說明。
除此之外,本發明的概念可以應用於業界測試系統中,讓受測的電腦裝置可以自動連續進行不同作業系統的測試作業,不需要操作人員一個一個手動安裝作業系統。請參考第4圖,第4圖為本發明實施例一測試系統40之示意圖。測試系統40包含一伺服器400、一待測裝置410、一測試資料庫420及一監控台430,其透過區域或廣域網路相連。測試系統40的測試方法主要為伺服器400提供多個待測作業系統,讓待測裝置410透過網路自動安裝,並在每一個作業系統安裝完成後進行相關測試流程。資料庫420用來提供測試流程的項目及參數,以及收集待測裝置410的測試結果。測試人員可以利用監控台430更改測試項目及參數。整個測試方法的詳細原理及需求請參考『伺服器設置』、『待測裝置設置』與『安裝及測試流程』說明。
『伺服器設置』:
伺服器400包含一開機前執行環境(Preboot Execution Environment,PXE)402、待測作業系統OS(1)~OS(n)、測試模組TES(1)~TES(n)、安裝流程模組(Answer File)AsF(1)~AsF(n)及安裝導向模組CMF(1)~CMF(n)。伺服器400可操作於微軟或Linux作業系統,利用PXE環境遠端控制待測裝置410自動連續安裝待測作業系統OS(1)~OS(n)及進行相關軟硬體測試。待測作業系統OS(1)~OS(n)可以映像檔型式儲存於伺服器400中,可為DOS(Disk Operating System)、Linux及微軟(Microsoft,MS)等等作業系統。
為了實現PXE環境,伺服器400必須至少具備一網路啟動模組404、一檔案分享及傳輸模組406及一開機前執行設定檔408。網路啟動模組404用於配置待測裝置410一網路位址;檔案分享及傳輸模組406用於與待測裝置410建立一網路檔案分享及傳輸連線,以傳輸及分享作業系統、測試及系統安裝相關的模組;開機前執行設定檔408用來於待測裝置410掛載開機前執行環境時,提供開機選單給待測裝置410。
舉例來說,在Linux作業系統的開機前執行環境下,伺服器400需具備一動態主機組態協定(Dynamic Host Configuration Protocol,DHCP)伺服模組、一網路檔案系統(Network File System,NFS)伺服模組、一簡式檔案傳輸協議(Trivial File Transfer Protocol,TFTP)伺服模組及一開機前執行設定檔pxelinux.cfg/default。動態主機組態協定伺服模組用來提供待測裝置410一動態網路位址,以讓待測裝置410成為測試系統40的一網路節點;網路檔案系統伺服模組提供檔案分享服務;簡式檔案傳輸協議伺服模組用來提供一建立在使用者資料元協定(User Datagram Protocol,UDP)上的檔案傳輸連結;開機前執行設定檔pxelinux.cfg/default是建立在pxelinux.cfg目錄下的default檔案,其一例子如下(#表示說明):
若在微軟作業系統的開機前執行環境下,除了前述動態主機組態協定、網路檔案系統伺服模組、簡式檔案傳輸協議伺服模組及一開機前執行設定檔,其設定內容可參照前述開機前執行設定檔pxelinux.cfg/default之外,伺服器400至少具備以下條件以達到自動安裝的功用:
一、需同時具備微軟部屬服務(Windows Deployment Service,WDS)及遠端安裝服務(Remote Install Service,RIS)伺服功能,或其他同等功效的微軟套件;
二、在遠端安裝服務裡welcome.osg、welcome.osg、warning.osg、oschoice.osg、install.osg及login.osg設定檔中<TITLE>指令區間內加入指令<META ACTION=AUTOENTER>,以及在login.osg中加入指令<INPUT NAME="USERNAME"MAXLENGTH=255 TYPE=TEXT VALUE=administrator>與<INPUT NAME="*PASSWORD"TYPE=PASSWORD MAXLENGTH=20><BR>,以跳過手動輸入管理員帳號、密碼與欲安裝的作業系統的標準流程;
三、微軟作業系統i386目錄下的pxeboot.n12檔名改為pxeboot.0,用來跳過使用者需按F12開啟開機前執行環境的手動步驟。
另外,在伺服器400中,每一個待測作業系統分別對應一個測試模組、安裝流程模組及安裝導向模組。測試模組TES(1)~TES(n)分別用來提供待測作業系統OS(1)~OS(n)的測試流程給待測裝置410,測試項目可包含重新開機、壓力測試、基本輸入輸出系統、硬碟驅動程式、網路卡驅動程式、電源、基板管理控制器(Baseboard Management Controller,BMC)、溫度測量、遠端開機功能(Wake On LAN,WOL)等等。安裝流程模組AsF(1)~AsF(n)分別用來提供待測作業系統OS(1)~OS(n)的安裝流程給待測裝置410。由於安裝流程模組廣為本領域具通常知識者所熟知,例如在Linux環境下可利用Kickstart或AutoYast配置文件,在微軟環境下可利用i386\templates目錄下的ristndrd.sif文件來實現。以下為安裝流程模組中用來導入測試模組的程式範例(#表示說明):
範例一、待測作業系統Red Hat/Kickstart語法:
範例二、待測作業系統SUSE Linux/XML(Extensible Markup Language)語法:
安裝導向模組CMF(1)~CMF(n)分別用來讓待測裝置410在待測作業系統OS(1)~OS(n)環境下,清除一主開機紀錄(Master boot Record,MBR)。本發明於下文提供些許安裝導向模組範例(#表示說明):
範例一、Linux相關待測作業系統中,以下指令用來清除主開機紀錄:dd if=/dev/zero of=/dev/sda bs=512 count=1
範例二、待測作業系統Windows:
『待測裝置設置』:
待測裝置410包含一網路單元412、一系統操作單元414、一系統安裝單元416。於待測裝置410開機使用PXE網路安裝功能時,網路單元412根據伺服器400所配置的網路位址,設定本身的網路位址,以加入測試系統40的網路,此外亦用來與伺服器400建立檔案傳輸及分享連線,以獲取及使用伺服器400的開機前執行設定檔、待測作業系統OS(1)~OS(n)、測試模組TES(1)~TES(n)、安裝流程模組AsF(1)~AsF(n)及安裝導向模組CMF(1)~CMF(n),以及測試資料庫420所提供的測試數據。系統操作單元414用來操作於已安裝好的待測作業系統,並根據所接收的測試模組與測試數據,執行測試流程。於測試流程結束後,系統操作單元414透過網路單元412呈報測試結果給測試資料庫420。此外,系統操作單元414可執行安裝導向模組CMF(1)~CMF(n),分別在操作中的待測作業系統OS(1)~OS(n)下,清除開機磁區,以產生無開機紀錄狀態。於待測作業系統OS(1)~OS(n)環境下,系統操作單元414產生並讀取系統指示模組SYSIM(1)~SYSIM(n),用來指示下一個待測作業系統給系統安裝單元416及伺服器400。系統安裝單元416包含待測裝置410的BIOS,其在每次重新開機之後,由於無開機紀錄狀態找不到硬碟,因而轉向進行網路開機,接著系統安裝單元416分別根據系統指示模組SYSIM(1)~SYSIM(n),接收安裝流程模組AsF(1)~AsF(n),以下載及安裝待測作業系統OS(1)~OS(n)。
『安裝及測試流程』:
請同時參考第5A及5B圖,第5A及5B圖為用於待測裝置410之一測試流程50的流程示意圖。假設測試流程50中,待測裝置410的開機順序為硬碟開機在先,網路開機在後。透過測試流程50,待測裝置410能自動連續安裝且測試待測作業系統。測試流程50包含下列步驟:步驟502:開啟電源。
步驟504:進入一網路開機程序,以掛載PXE網路安裝功能。
步驟506:進入PXE功能選單。
步驟508:選取一待測作業系統(若第一個需要安裝的待測作業系統為OS(1),則選取待測作業系統OS(1))。
步驟510:從伺服器400下載被選取待測作業系統的安裝流程模組及安裝導向模組。
步驟512:根據安裝流程模組,安裝被選取待測作業系統。
步驟514:於待測裝置410網路安裝完被選取待測作業系統後,從伺服器400下載待測作業系統的測試模組。
步驟516:呼叫測試資料庫420的測試參數。
步驟518:根據測試參數,執行測試模組來進行測試流程。
步驟520:於測試流程完成後,傳送測試結果給測試資料庫420。
步驟522:根據測試參數,判斷被測試之待測作業系統是否為最後一個待測作業系統?若是,則進行步驟536;若否,則進行步驟524。
步驟524:根據測試參數,產生被測試之待測作業系統所對應之系統指示模組至伺服器400,以指示下一個待測作業系統。
步驟526:利用安裝導向模組,清除開機磁區,以產生一無開機紀錄狀態。
步驟528:根據安裝流程模組,重新啟動。
步驟530:根據該無開機紀錄狀態,進入網路開機程序以掛載PXE網路安裝功能。
步驟532:進入PXE功能選單。
步驟534:根據PXE功能選單的預設系統,自動選取該系統指示模組中所指示的下一個待測作業系統,且接著進行步驟510。
步驟536:結束。
步驟504~508用來掛載PXE網路安裝功能及安裝第一個待測作業系統,即OS(1);相對地,在步驟530~534中,待測裝置410自動掛載PXE網路安裝功能及自動選擇待測作業系統。其中,在步驟504~506及530~532中,待測裝置410根據伺服器400所配置之網路位址,及透過建立一網路檔案分享及傳輸連線,掛載PXE網路安裝功能,並且根據開機前執行設定檔pxelinux.cfg/default的內容,顯示PXE選單。在步驟532~534中,待測裝置410是等待pxelinux.cfg/default所設定timeout時間之後,選擇預設的待測作業系統。
在步驟522~524中,根據測試參數,待測裝置410能得知是否有下一個需要安裝的待測作業系統,以及下一個的待測作業系統的名稱。另一方面,伺服器400會一直監控待測裝置410中的系統指示模組,舉例來說,若待測裝置410操作於待測作業系統OS(1)時,伺服器400監控系統指示模組SYSIM(1);若待測裝置410操作於待測作業系統OS(2)時,伺服器400監控系統指示模組SYSIM(2),以此類推。當所產生之系統指示模組中的待測作業系統項目內容變動時,伺服器400跟著修改/tftpboot/pxelinux.cfg/default中default項目的預設系統,並重新啟動該tftp服務。如此一來,等到進行步驟530~534時,待測裝置410可以選到先前的系統指示模組所指示之待測作業系統。以下為系統指示模組的範例之一(#表示說明):系統指示模組的範例之一可以是伺服器400在Linux環境下的系統指示模組的程式碼(shell script):
系統指示模組於待測裝置410上的程式碼(shell script):
在步驟526~530中,本發明根據需要安裝的待測作業系統,利用對應的安裝導向模組,清除開機磁區,如此一來,待測裝置410重新啟動之後會判斷硬碟尚未格式化(即無開機紀錄狀態),因而捨棄硬碟開機轉向網路開機,最後掛載PXE網路安裝功能。
簡單來說,若待測作業系統的順序為OS(1)~OS(8),僅需要選擇第一個待測作業系統OS(1),以及選擇安裝流程模組AsF(1)中所列出之第一個需要測試的作業系統OS(1),以自動安裝作業系統OS(1)。在此之後的所有待測作業系統皆可自動安裝並進行測試作業。在透過安裝流程模組AsF(1)安裝完作業系統OS(1)後,伺服器400與測試資料庫420會自動並置入要安裝導向模組CMF(1)與測試模組TES(1)在待測裝置410上,並且在所有測試完成後。待測裝置410會產生並讀取系統指示模組SYSIM(1),以先掛載伺服器400並呼叫在系統指示模組SYSIM(1)中用來指引下一個作業系統OS(2)的對應旗標,而伺服器會依照該旗標,產生安裝流程模組為AsF(2)。此外,待測裝置410執行系統指示模組SYSIM(1)後,會使用安裝導向模組CMF(1)去刪除待測裝置410的開機磁區,並接著重新開機,然後再依照前述重複呼叫安裝流程模組AsF(2)~AsF(8)、安裝導向模組CMF(2)~CMF(8)、系統指示模組SYSIM(2)~SYSIM(8)與硬體測試模組TES(2)~TES(8),以自動完成所有測試。
因此,透過測試流程50,在安裝第一個待測作業系統OS(1)之後,待測裝置410會自動安裝所有待測作業系統OS(2)~OS(n),且進行相關測試流程,操作人員可以等到所有測試流程結束後,再回到測試系統40,研究待測裝置410的測試結果。特別注意的是,第4圖為求方便說明而僅繪出一個待測裝置,但實際上伺服器400可一次與多個待測裝置進行作業系統安裝,相關參數及模組(如安裝流程模組及安裝導向模組)可以透過點對點或廣播方式傳輸,以個別或集中控制待測裝置的測試進度。
特別注意的是,本發明安裝流程模組可與其他模組,如安裝導向模組或系統指示模組,合併成一個模組,以節省測試系統的網路資源及執行端(如電子裝置20或待測裝置410)的系統資源。
綜上所述,本發明提供可自動安裝作業系統的裝置及方法,並將此概念應用在測試系統上,使得本發明測試系統的待測裝置可以自動地連續安裝且測試作業系統,如此一來,只需要在伺服器上預先建置好待測裝置所需的測試環境檔案及作業系統,不需要手動安裝每一個待測作業系統。換句話說,即使操作人員已下班,測試系統可以自行進行測試作業。因此,本發明測試系統可以節省大量的人力成本,進而提昇測試效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。