• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      “以local系統(tǒng)為宿主的live系統(tǒng)實(shí)現(xiàn)機(jī)制”技術(shù)研究

      2021-10-21 08:51:30郭垚閆博文王少君
      科技信息·學(xué)術(shù)版 2021年15期

      郭垚 閆博文 王少君

      摘要 :為了解決用戶在遇到缺少存儲介質(zhì)或未適配硬件時無法使用live系統(tǒng)實(shí)現(xiàn)系統(tǒng)啟動的問題。使用live系統(tǒng)啟動流程大致分為四步,啟動介質(zhì)選擇,加載內(nèi)核及必須的驅(qū)動,內(nèi)存加載SquashFS文件,掛載根文件系統(tǒng)并初始化。其中,本專利主要針對的是啟動介質(zhì)的維護(hù)及驅(qū)動快速適配。我們使用了“以local系統(tǒng)為宿主的live系統(tǒng)實(shí)現(xiàn)機(jī)制”技術(shù)。本文詳細(xì)介紹了local系統(tǒng)的實(shí)現(xiàn)及優(yōu)勢,將local系統(tǒng)作為宿主實(shí)現(xiàn)live系統(tǒng)詳細(xì)實(shí)現(xiàn)流程,并詳細(xì)闡述了使用本專利技術(shù)帶來的優(yōu)勢。采用以local系統(tǒng)為宿主的live系統(tǒng)實(shí)現(xiàn)機(jī)制,相比原live系統(tǒng)大大減少了對存儲介質(zhì)的依賴,并提升了對硬件設(shè)備的兼容性。

      關(guān)鍵詞 Local系統(tǒng);Live系統(tǒng);SquashFS(只讀文件壓縮);BIOS;initramfs(內(nèi)存加載臨時根文件)

      1簡介

      使用live系統(tǒng)啟動linux操作系統(tǒng)時過于依賴外部介質(zhì),以及在使用過程中會出現(xiàn)高額的硬件適配維護(hù)成本,為了解決這些問題,我們使用了“以local系統(tǒng)為宿主的live系統(tǒng)實(shí)現(xiàn)機(jī)制”技術(shù)。

      本專利技術(shù)中發(fā)現(xiàn)Local系統(tǒng)無需依賴外部介質(zhì),并存在大量可用的穩(wěn)定存儲空間,squashfs-tools的文件壓縮也可直接壓縮至Loacl系統(tǒng)中,這樣通過squashfs-tools將原Live系統(tǒng)中的SquashFS文件壓縮至Local系統(tǒng)即可無需外部介質(zhì)也能正常啟動Live系統(tǒng),并且通過本技術(shù)中的菜單引導(dǎo)項以及initramfs的虛擬根文件系統(tǒng),減少對硬件驅(qū)動的維護(hù)成本。

      2根文件系統(tǒng)宿主轉(zhuǎn)移設(shè)計

      2.1 簡要分析

      一個標(biāo)準(zhǔn)的Linux系統(tǒng),必須要有一個完整的根文件系統(tǒng),Live文件系統(tǒng)作為以外部介質(zhì)為存儲的啟動系統(tǒng),直接從CD-ROM或類似存儲設(shè)備運(yùn)行到計算機(jī)內(nèi)存中的操作系統(tǒng),而不是從硬盤驅(qū)動器中加載。Live系統(tǒng)可以在沒有輔助存儲(例如硬盤驅(qū)動器)或損壞的硬盤驅(qū)動器或文件系統(tǒng)的計算機(jī)上運(yùn)行,從而可以恢復(fù)數(shù)據(jù)。

      Live系統(tǒng)主要分為兩部分:完整的根文件系統(tǒng),Linux內(nèi)核啟動管理器。但由于受硬件設(shè)備的限制,不可能直接將根文件系統(tǒng)拷貝到計算機(jī)內(nèi)存中去使用,必須使用SquashFS對根文件系統(tǒng)進(jìn)行壓縮,然后將其加載進(jìn)內(nèi)存中供操作系統(tǒng)調(diào)用。

      Local文件系統(tǒng)直接儲存在硬盤中,隨時可供系統(tǒng)讀寫,依賴硬盤存儲,并具備完整的適配驅(qū)動。一般的PC機(jī)上自啟動的系統(tǒng)則是依賴Local文件系統(tǒng),但是由于硬件存儲的局限性,無法做到系統(tǒng)可移動啟動,一旦硬盤出現(xiàn)損壞將會導(dǎo)致整個系統(tǒng)無法正常運(yùn)行。

      本技術(shù)結(jié)合Local的優(yōu)勢,將Live文件系統(tǒng)依賴的啟動介質(zhì)轉(zhuǎn)移至機(jī)器硬件上,減輕了Live文件系統(tǒng)對外部介質(zhì)的依賴,并且由于Local文件系統(tǒng)中存在完整的系統(tǒng)內(nèi)核和必備的硬件驅(qū)動,在使用本技術(shù)時可以避免對這部分的額外維護(hù)。

      2.2 與本發(fā)明相關(guān)的現(xiàn)有技術(shù)

      Live文件系統(tǒng)本質(zhì)上是一個簡易的Linux操作系統(tǒng),其技術(shù)是將Linux系統(tǒng)的根文件進(jìn)行壓縮管理,壓縮成SquashFS文件,在使用時將Live文件系統(tǒng)中的SquashFS加載進(jìn)內(nèi)存中供操作系統(tǒng)調(diào)用,Live文件系統(tǒng)的啟動則一般使用Syslinux、GRUB、GRUB Legacy和LILO,指引用戶選擇正確的Live文件系統(tǒng)選項,加載內(nèi)核及initramfs,保證系統(tǒng)的完整性。

      使用Live文件系統(tǒng)啟動流程如下圖:

      1.用戶進(jìn)入BIOS設(shè)置界面,將承載Live文件系統(tǒng)的介質(zhì)作為系統(tǒng)的啟動盤;

      2.等待系統(tǒng)加載承載介質(zhì)中的內(nèi)核及initramfs;

      3.完成內(nèi)核及initramfs加載后,查找Live文件系統(tǒng)中的SquashFS文件;

      4.將SquashFS文件加載到內(nèi)存中,供Linux內(nèi)核讀寫;

      5.將內(nèi)存中的SquashFS文件以偽設(shè)備的形式進(jìn)行掛載,并作為當(dāng)前系統(tǒng)的根文件系統(tǒng);

      6.掛載根文件完成后,調(diào)用初始化腳本對操作系統(tǒng)進(jìn)行初始化,完成Live系統(tǒng)的啟動。

      2.3現(xiàn)有技術(shù)的缺點(diǎn)

      用戶選擇使用Live文件系統(tǒng)啟動,必須將Live文件系統(tǒng)存儲到額外的存儲介質(zhì),并保證該存儲介質(zhì)有足夠的空間存放,一旦缺少存儲介質(zhì),該技術(shù)則無法使用,因此使用Live文件系統(tǒng)對存儲介質(zhì)的依賴太強(qiáng)。由于當(dāng)前Live文件系統(tǒng)多數(shù)是可移動的,無法適配所有機(jī)型,因此在Live文件系統(tǒng)中必須使用單獨(dú)的內(nèi)核及必要的設(shè)備驅(qū)動,一旦出現(xiàn)使用的Live文件系統(tǒng)中設(shè)備驅(qū)動無法適配當(dāng)前機(jī)型,則會導(dǎo)致在使用Live文件系統(tǒng)時需要額外新增當(dāng)前機(jī)型的設(shè)備適配,這樣大大增加了系統(tǒng)的維護(hù)成本。

      3本發(fā)明技術(shù)方案的詳細(xì)闡述

      3.1本發(fā)明所要解決的技術(shù)問題

      本發(fā)明解決了Linux操作系統(tǒng)使用Live文件系統(tǒng)帶來的下列技術(shù)問題:

      1.當(dāng)缺少外部介質(zhì)時仍可以正常使用Live文件系統(tǒng),減輕Live文件系統(tǒng)對存儲介質(zhì)依賴;

      2.避免使用Live文件系統(tǒng)時對基礎(chǔ)設(shè)備驅(qū)動帶來的維護(hù)成本;

      3.2本發(fā)明提供的完整技術(shù)方案

      3.2.1根文件宿主轉(zhuǎn)移

      完整的根文件系統(tǒng)是標(biāo)準(zhǔn)Linux系統(tǒng)必備的,正常使用的Linux根文件系統(tǒng)一般是存儲在硬盤中,系統(tǒng)運(yùn)行需要提供文件讀寫服務(wù),如果用戶使用Live文件系統(tǒng)作為機(jī)器運(yùn)行系統(tǒng),則系統(tǒng)運(yùn)行依附于運(yùn)行環(huán)境內(nèi)存,當(dāng)前市場是普遍使用的機(jī)器并沒有太大的內(nèi)存,因此使用Live文件系統(tǒng)其根文件系統(tǒng)不能過大,為了保證運(yùn)行環(huán)境內(nèi)存的充分利用,一般Live文件系統(tǒng)使用的根文件系統(tǒng)都是壓縮之后的,更方便讀取。

      在本技術(shù)中根文件系統(tǒng)的壓縮采用的是debootstrap工具,在chroot進(jìn)入根文件系統(tǒng)后,使用squashfs-tools壓縮Live文件系統(tǒng)所需的根文件,將整個系統(tǒng)目錄打包壓縮成一個SquashFS文件供Live文件系統(tǒng)使用,SquashFS文件則被安裝到Local文件系統(tǒng)中,在用戶選擇Live文件啟動后,會直接從硬盤中查找壓縮的SquashFS文件并加載到當(dāng)前環(huán)境內(nèi)存中,供Linux內(nèi)核使用,這樣就完美的避開了Live文件系統(tǒng)中根文件必須存儲到額外存儲介質(zhì)的特定條件,只需要保證使用Live文件系統(tǒng)啟動的機(jī)器中硬盤沒有完全損壞即可正常使用。

      根文件宿主轉(zhuǎn)移流程如下圖:

      3.2.2 Live文件系統(tǒng)引導(dǎo)

      Live系統(tǒng)正常啟動需要啟動管理器來進(jìn)行引導(dǎo),常見的啟動管理器有Syslinux、GRUB、GRUB Legacy和LILO等,本技術(shù)以GRUB為例。

      GRUB啟動器的主體主要分三部分:

      1./etc/default/grub:grub的默認(rèn)配置文件,控制GRUB菜單項的部分功能,并附帶系統(tǒng)所有內(nèi)核配置。

      2./etc/grub.d/:包含所有GRUB需要使用的腳本,用戶創(chuàng)建grub.cfg,并且grub.cfg中的菜單順序也是由此目錄中的文件順序決定的。

      3./boot/grub/grub.cfg:這是GRUB的主要配置文件,但是不應(yīng)手動更改,應(yīng)該使用grub.d文件夾中的腳本去更新該文件。

      為了實(shí)現(xiàn)使用Live文件系統(tǒng)可以在當(dāng)前運(yùn)行環(huán)境上使用,本技術(shù)在grub.d文件夾中新增Live文件系統(tǒng)的啟動項配置腳本,在腳本中實(shí)現(xiàn)Live文件系統(tǒng)啟動的內(nèi)核和initramfs與當(dāng)前運(yùn)行環(huán)境是相同的,保證使用Live文件系統(tǒng)在安裝SquashFS文件時使用指定分區(qū)加載根文件系統(tǒng),確定根文件路徑,腳本同時添加了Live的引導(dǎo)方式。這樣,在用戶進(jìn)入GRUB界面選擇Live文件系統(tǒng)啟動時,提供了指定的SquashFS文件路徑,保證Live啟動能正確查找到選定SquashFS加載到內(nèi)存,并將根文件掛載到指定路徑,在掛載根文件系統(tǒng)后,直接使用Local系統(tǒng)的內(nèi)核和initramfs,減少后期環(huán)境適配成本。

      Live系統(tǒng)添加到GRUB啟動器引導(dǎo)流程如下圖:

      3.2.3同步內(nèi)核模塊

      Initramfs作為tmpfs的一個應(yīng)用,使用cache作為文件系統(tǒng)的裝卸,在本技術(shù)中,initramfs是通過啟動引導(dǎo)程序加載到內(nèi)存中,在內(nèi)存中解壓形成一個仿真根文件系統(tǒng),為了實(shí)現(xiàn)加載啟動過程中所需的設(shè)備驅(qū)動,仿真根文件系統(tǒng)會提供一個可執(zhí)行程序,在仿真根目錄下加載必要的設(shè)備驅(qū)動,如:USB、SATA、SCSI硬盤驅(qū)動、LVM、RAID文件系統(tǒng)驅(qū)動等等。在加載必須的設(shè)備驅(qū)動后,完整的Linux系統(tǒng)所需前置條件就達(dá)成了,之后就可以加載硬盤上的根目錄了,系統(tǒng)運(yùn)行環(huán)境滿足后調(diào)用Linux系統(tǒng)初始化進(jìn)程/sbin/init完成系統(tǒng)初始化。

      由于Live文件系統(tǒng)的局限性,內(nèi)核及設(shè)備驅(qū)動必須與根文件壓縮文件同時存儲在額外介質(zhì)內(nèi),這樣在使用Live文件系統(tǒng)啟動運(yùn)行環(huán)境時,可能出現(xiàn)Live文件系統(tǒng)的設(shè)備驅(qū)動與運(yùn)行環(huán)境不適配,Live文件系統(tǒng)啟動完成后還需要用戶進(jìn)行額外的設(shè)備驅(qū)動更新安裝,造成不必要的維護(hù)成本。在本技術(shù)中可以實(shí)現(xiàn)Live文件系統(tǒng)中的設(shè)備驅(qū)動與當(dāng)前運(yùn)行環(huán)境保持一致,在initramfs初始化時,會主動從Local文件系統(tǒng)中拷貝當(dāng)前運(yùn)行環(huán)境的驅(qū)動模塊,將/lib/modules拷貝到Live文件系統(tǒng)中對應(yīng)目錄,這樣在使用Live文件系統(tǒng)啟動時,運(yùn)行環(huán)境的設(shè)備驅(qū)動與Live文件系統(tǒng)完全適配,無需后續(xù)的驅(qū)動維護(hù)。

      內(nèi)核模塊同步流程如下圖:

      3.3本發(fā)明技術(shù)方案的整體架構(gòu)

      本技術(shù)檔案選擇以Local文件系統(tǒng)為宿主,實(shí)現(xiàn)了不依賴額外介質(zhì),使用本地引導(dǎo)的方式,消除了采用Live文件系統(tǒng)啟動的維護(hù)成本,整體的實(shí)現(xiàn)架構(gòu)如上圖,采用本技術(shù)后運(yùn)行環(huán)境的Live文件系統(tǒng)啟動流程如下圖:

      1.用戶進(jìn)入BIOS設(shè)置界面,直接選擇本地磁盤啟動,不用依賴額外介質(zhì);

      2.磁盤讀取成功后,加載Local文件系統(tǒng)中的內(nèi)核及initramfs,保證設(shè)備驅(qū)動與運(yùn)行環(huán)境正常適配;

      3.依據(jù)GRUB新增腳本,快速找到SquashFS文件系統(tǒng);

      4.將壓縮后的SquashFS文件系統(tǒng)加載到內(nèi)存中,此為Live系統(tǒng)的根文件系統(tǒng);

      5.將Local文件系統(tǒng)中的設(shè)備驅(qū)動模塊/lib/modules拷貝到Live文件系統(tǒng)中的相同目錄,保證Live文件系統(tǒng)的設(shè)備與當(dāng)前運(yùn)行環(huán)境保持一致;

      6.卸載Local文件系統(tǒng)根文件系統(tǒng),防止Local文件系統(tǒng)與Live文件系統(tǒng)發(fā)生沖突,完成Live系統(tǒng)的啟動;

      通過對比本技術(shù)與原Live文件系統(tǒng)啟動流程,我們可以發(fā)現(xiàn):

      1.SquashFS存儲,原Live文件系統(tǒng)啟動方式中需要額外的存儲介質(zhì),但是在本技術(shù)中直接安裝在Loacl文件系統(tǒng)中,脫離了外接存儲介質(zhì)的依賴;

      2.系統(tǒng)啟動的引導(dǎo)項,原Live文件系統(tǒng)啟動方式中是引導(dǎo)跟隨SquashFS一起存儲的內(nèi)核及initramfs,但是在本技術(shù)中是引導(dǎo)運(yùn)行環(huán)境中的內(nèi)核及initramfs;

      3.內(nèi)核模塊共用,原Live文件系統(tǒng)的內(nèi)核模塊是存儲在額外介質(zhì)中的,但是在本技術(shù)中直接將運(yùn)行環(huán)境的內(nèi)核模塊在initramfs中拷貝到Live文件系統(tǒng)的相同目錄下,這樣保證了使用Live文件系統(tǒng)啟動運(yùn)行環(huán)境也無需消耗額外的維護(hù)成本。

      3.4本發(fā)明技術(shù)方案帶來的有益效果

      本發(fā)明技術(shù)方案通過轉(zhuǎn)移Live文件系統(tǒng)中SquashFS存儲宿主,實(shí)現(xiàn)Live文件系統(tǒng)啟動脫離外接存儲介質(zhì)依賴,針對Live文件系統(tǒng)添加引導(dǎo)菜單,在運(yùn)行環(huán)境中如果存在內(nèi)核及內(nèi)核模塊,Live文件系統(tǒng)啟動直接拷貝Local系統(tǒng)的內(nèi)核及內(nèi)核模塊,提升了對硬件設(shè)備的兼容性,避免了在Live文件系統(tǒng)啟動后,基礎(chǔ)設(shè)備驅(qū)動不適配帶來的維護(hù)成本。此方案可廣泛應(yīng)用與Linux操作系統(tǒng)中的系統(tǒng)回退或還原中,實(shí)現(xiàn)以Live文件系統(tǒng)回退或還原系統(tǒng)。

      參考文獻(xiàn)

      [1]David Clinton.Linux實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2019:105-122,298-299

      [2]冉宏元.跟老男孩學(xué)Linux運(yùn)維:核心基礎(chǔ)篇(上)(第2版)[M].北京:機(jī)械工業(yè)出版社,2019:179-186

      [3]Chris Simmonds.嵌入式Linux編程.北京:機(jī)械工業(yè)出版社,2017:134-140

      库车县| 碌曲县| 揭阳市| 泾阳县| 灵武市| 东城区| 乐业县| 宁波市| 巧家县| 平原县| 荥经县| 琼中| 海门市| 张家川| 聂荣县| 开封县| 正镶白旗| 璧山县| 海原县| 桂阳县| 芜湖县| 鄂州市| 安溪县| 潞城市| 徐州市| 合水县| 安国市| 新郑市| 丰都县| 鲁甸县| 聂拉木县| 军事| 黑河市| 旬阳县| 德惠市| 阜宁县| 当阳市| 项城市| 济南市| 高密市| 宿迁市|