本發明專利技術公開了一種CF卡操作系統的更新方法,通過Linux系統的debugfs工具刪除并重新創建CF卡上的extlinux文件,添加引導參數rd.live.ram,使得CF卡可讀寫;將CF卡中的操作系統內核、initrd和extlinux文件更新,更新extlinux文件的引導參數rd.live.ram,使initrd在升級完后找到位于硬盤上root分區的根文件系統,且在initrd完成準備工作后,執行pivot_root指令切換到root分區的根文件系統中,實現對運行中的CF卡操作系統的升級。本發明專利技術能夠在不需要拔出CF卡的情況下升級操作系統,避免了業務停止和返廠重新燒錄的缺陷。避免了業務停止和返廠重新燒錄的缺陷。避免了業務停止和返廠重新燒錄的缺陷。
【技術實現步驟摘要】
一種CF卡操作系統的更新方法
[0001]本專利技術屬于存儲設備系統更新的
,具體涉及一種CF卡操作系統的更新方法。
技術介紹
[0002]由于Linux系統具有開源的特性、軟件授權費用低和應用開發資源豐富等優點,已經得到了廣泛的應用,并且在民用和辦公以及開發領域具有越來越多的用戶。CF卡(Compact Flash)作為一種存儲設備,革命性的使用了閃存,具有可永久性保存信息,無需電源,速度快,重量輕,耗電量小,體積小等特點,CF卡可以直接安裝在芯片上的控制器接口,不帶驅動器,無移動的部件,發生機械故障的可能性很小,數據更安全,這使它成為優良的多功能的存儲系統,這種可隨機攜帶的控制器使CF卡與多種平臺相兼容,適合軟件生產廠商生產安裝有軟件產品的操作系統鏡像。只要將CF卡插入到電腦的CF卡插槽中,即可啟動其中的Linux操作系統。然而,后期如果要對已經生產的CF卡操作系統進行升級,就必須要將CF卡拔出,返廠重新燒寫新的操作系統進行升級。
[0003]對CF卡的Linux操作系統進行升級比升級普通的Linux操作系統要困難許多,主要是因為在默認情況下,啟動過程中,initrd會將squahsFS只讀掛載到CF卡目錄,而不是加載到內存中,否則會嚴重影響系統性能。因此,在操作系統運行過程中CF卡是不可寫的,如果需要升級必須關機,停止正在運行的操作系統,將CF卡拔下后,將新的操作系統燒寫進CF卡中進行升級,這就勢必會對當前正在運行的業務產生影響。
[0004]現有技術CN200710043619.0公開了基于移動設備存儲卡來更新閃存操作系統的方法,需要通過移動設備上的存儲卡重新燒錄閃存操作系統,在更新操作系統時需要將系統斷電,不適合用于對已經出廠的設備進行升級,因為這意味著CF卡必須返廠重新燒錄,系統中正在運行的程序必須被迫停止。
[0005]squashFS是一套基于Linux內核使用的壓縮只讀文件系統,大小通常超過1G,解壓后的大小可達好幾個G。在CF卡操作系統中,squashFS位于CF卡內,系統啟動時會將其解壓掛載。如果直接掛載到CF卡目錄,那么CF卡是只讀的,不可進行寫入操作。而如果把它加載到內存中,可以對CF卡實現讀寫的操作,然而,squashFS的大小可達好幾個G,將它加載到內存中會嚴重影響系統性能。
[0006]因此,本專利技術提供了一種CF卡操作系統的更新方法,能夠在CF卡操作系統運行時進行升級,無需拔出CF卡或者關閉電源,保證了運行程序的連貫運行。
技術實現思路
[0007]本專利技術的目的在于提供一種CF卡操作系統的更新方法,旨在解決上述問題。
[0008]本專利技術主要通過以下技術方案實現:一種CF卡操作系統的更新方法,包括以下步驟:步驟S100:將升級包上傳到插有CF卡的電腦上,所述升級包包含操作系統內核、
initrd、根文件系統、extlinux文件以及更新腳本;步驟S200:運行升級包,解壓升級包,運行更新腳本,執行更新;步驟S300:CF卡的initrd會根據extlinux中的引導參數rd.live.ram的值選擇是否掛載squahsFS;首先利用Linux系統的debugfs刪除CF卡上的舊extlinux文件,創建新的extlinux文件,添加引導參數rd.live.ram=1,使啟動過程中,將CF卡中的squashFS鏡像復制到內存中運行,使得CF卡變得可讀寫;步驟S400:備份CF卡和電腦硬盤中的文件,以防止后續操作失敗導致數據丟失;步驟S500:替換CF卡中的操作系統內核、initrd、extlinux文件,修改extlinux文件的引導參數rd.live.ram,使initrd在升級完后找到位于硬盤分區上的根文件系統,并切換到根文件系統中,解壓新操作系統的根文件系統到硬盤分區上,實現操作系統更新。
[0009]為了更好地實現本專利技術,進一步地,所述步驟S500中,選擇硬盤中另一個分區作為新操作系統的root分區,root分區就是根文件系統所在的分區;對該分區進行格式化,將分區的標簽設置為root,以便解壓新操作系統的根文件系統到硬盤分區上。
[0010]為了更好地實現本專利技術,進一步地,所述步驟S500中,在修改extlinux文件的引導參數rd.live.ram時,將原來的引導參數rd.live.ram=1刪除,然后,添加新的內核參數告知內核新的根文件系統所在位置,修改后的rd.live.ram=LABEL=root,使initrd在升級完后找到位于硬盤上root分區的根文件系統,且在initrd完成準備工作后,執行pivot_root指令切換到root分區的根文件系統中。
[0011]為了更好地實現本專利技術,進一步地,所述步驟S300包括以下步驟:步驟S301:CF卡上新建的extlinux讀取extlinux引導文件,根據配置文件將內核參數傳遞給內核,加載內核并初始化內存;步驟S302:內核把initrd轉化成正常的內存文件系統并釋放initrd使用的內存;步驟S303:initrd作為root被掛載,賦予CF卡讀寫權限。
[0012]為了更好地實現本專利技術,進一步地,所述步驟S500包括以下步驟:步驟S501:linuxrc被執行,任何可執行文件做初始化;步驟S502:Linuxrc解壓CF卡中的SquashFS鏡像,只讀掛載真正的根文件系統;步驟S503:linuxrc使用pivot_root系統調用把根文件系統并放在根目錄;步驟S504:在根文件系統上執行正常的啟動程序;步驟S505:升級成功后,移去initrd文件系統。
[0013]為了更好地實現本專利技術,進一步地,所述步驟S500中,在解壓成功后,刪除CF卡上的squashFS鏡像文件,因為之后系統不再需要將squashFS解壓掛載,刪除squashFS文件可以節約CF卡空間。
[0014]為了更好地實現本專利技術,進一步地,若系統升級成功,則刪除步驟S400中的備份文件。
[0015]本專利技術的有益效果如下:(1)本專利技術能夠在不需要拔出CF卡的情況下升級操作系統,避免了業務停止和返廠重新燒錄的成本;(2)本專利技術通過Linux系統的debugfs工具,可以刪除并重新創建CF卡上的extlinux文件,添加引導參數rd.live.ram=1,使得CF卡可讀寫;并沒有直接通過debugfs替
換CF卡中的文件,極大地降低了升級過程中的風險;(3)原本的CF卡操作系統采用了壓縮的只讀根文件系統,受限于CF卡本身的讀寫速度,性能方面不如安裝在硬盤上的操作系統,而本專利技術將新的根文件系統直接解壓到硬盤上,使得新操作系統在讀寫性能上遠好于舊操作系統;與此同時,內核與initrd仍然保留在CF卡中,可以保留原本CF卡操作系統兼容硬盤陣列(RAID)或者加密硬盤場景的能力;(4)本專利技術將新的根文件系統解壓到硬盤上,刪除CF卡上的舊squashFS,使得后續啟動過程中不再需要將squashFS解壓掛載。一方面可以簡化將來的升級流程,使得CF卡能夠一直保持可讀寫狀態本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種CF卡操作系統的更新方法,其特征在于,包括以下步驟:步驟S100:將升級包上傳到插有CF卡的電腦上,所述升級包包含操作系統內核、initrd、根文件系統、extlinux文件以及更新腳本;步驟S200:運行升級包,解壓升級包,運行更新腳本,執行更新;步驟S300:CF卡的initrd會根據extlinux中的引導參數rd.live.ram的值選擇是否掛載squahsFS;首先利用Linux系統的debugfs刪除CF卡上的舊extlinux文件,創建新的extlinux文件,添加引導參數rd.live.ram=1,使啟動過程中,將CF卡中的squashFS鏡像復制到內存中運行,使得CF卡變得可讀寫;步驟S400:備份CF卡和電腦硬盤中的文件,以防止后續操作失敗導致數據丟失;步驟S500:替換CF卡中的操作系統內核、initrd、extlinux文件,修改extlinux文件的引導參數rd.live.ram,使initrd在升級完后找到位于硬盤分區上的根文件系統,并切換到根文件系統中,解壓新操作系統的根文件系統到硬盤分區上,實現操作系統更新。2.根據權利要求1所述的一種CF卡操作系統的更新方法,其特征在于,所述步驟S500中,選擇硬盤中另一個分區作為新操作系統的root分區,root分區就是根文件系統所在的分區;對該分區進行格式化,將分區的標簽設置為root,以便解壓新操作系統的根文件系統到硬盤分區上。3.根據權利要求2所述的一種CF卡操作系統的更新方法,其特征在于,所述步驟S500中,在修改extlinux文件的引導參數rd.live.ram時,將原來的引導參數rd.live.ram=1刪除,然后,添加新的內核參數告...
【專利技術屬性】
技術研發人員:翁羽蘇,吳永越,買步云,周虎,
申請(專利權)人:成都安恒信息技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。