新四季網

基於Anaconda修復Grub引導裝載程序的方法

2023-09-14 20:33:05 1

專利名稱:基於Anaconda修復Grub引導裝載程序的方法
技術領域:
本發明涉及一種修復Grub引導裝載程序的方法,尤其是一種Linux系統下基於 Anaconda修復Grub引導裝載程序的方法。
背景技術:
通常用戶安裝Linux作業系統都是將Grub安裝在MBR上,但是,由於種種原因,例如在安裝Linux的機器上再安裝Windows作業系統或因為誤操作清洗數據,可能會清除MBR 的數據,導致Linux系統無法找到Grub從而無法啟動已安裝的Linux系統。目前主要的解決方案有以下三種方式l)Linux 環境 Live CD 修復 Grub目前主流的Linux作業系統如Ubuntu和!^edora系列都提供Live CD,通過Live CD提供的環境可以利用修復引導程序的命令修復之,其具體操作流程如圖1所示;2) Linux 環境 rescue 模式修復 Grub在諸如RHEL5光碟啟動時,提供了 rescue模式用來修復已安裝系統的錯誤,同樣這種模式也可以修復Grub引導裝載程序,其具體工作流程如圖2所示;3) Windows 環境 grub4dos 工具修復 GrubWindows環境下,可以利用grub4dos工具進入Grub環境,通過相關命令和參數來修復Grub,其具體操作流程如圖3所示。目前普遍應用的解決方案就是以上三種方式。以上三種方式修復Grub引導裝載程序的原理都是一樣的,即通過運行外部命令——grubinstall來實現的,且都存在一個共同的問題易用性差。以上三種解決方案在易用性方面存在以下問題1)修復Grub弓I導裝載程序不完善現有技術方案只對Grub引導裝載程序提供了基本的修復工作,僅僅完成了修復之後能夠引導起作業系統,缺少通過傳遞參數實現自定義Grub引導裝載程序的功能。2)操作步驟複雜通過以上的操作流程圖可以看出,要完成Grub引導裝載程序的修復至少需要5個複雜的步驟,且幾乎每個步驟都需要輸入一些命令和參數,輸入不準確時還可能需要重新啟動系統,帶來不必要的麻煩。3)對實施者能力要求較高以上的方案要求實施者對Linux系統和Grub工作機制有比較深入的了解方可實施,而對於一般的Linux用戶而言,這種修複方式是一種挑戰。4)操作界面不友好現有幾種解決方案不是一個統一的軟體或步驟修復Grub,故沒有一個整套的軟體界面供用戶交互。用戶只能通過編輯配置文件,並通過在終端以命令行的方式執行修復命令,為修復操作帶來很大的不便。5)不能對Grub弓丨導裝載程序加密
現有解決方案沒有提供為Grub引導裝載程序加密的方法,對於安全係數要求較高的系統來說存在安全隱患。6)不能為Grub引導裝載程序傳遞內核參數現有解決方案不能傳遞內核參數,無法滿足用戶啟動作業系統時按照自己的偏好或需求自定義作業系統弓I導的內核參數。7)不能自定義Grub引導裝載程序的安裝位置現有解決方案不能自定義Grub引導裝載程序的安裝位置。現有解決方式只能將 Grub引導裝載程序安裝到MBR,不支持安裝到其他的分區。不能滿足用戶自定義安裝位置的需求。本發明涉及到的相關技術術語的名詞解釋Grub =GNU GRUB (簡稱「GRUB」)是一個來自GNU項目的多作業系統啟動程序。GRUB 是多啟動規範的實現,它允許用戶可以在計算機內同時擁有多個作業系統,並在計算機啟動時選擇希望運行的作業系統。GRUB可用於選擇作業系統分區上的不同內核,也可用於向這些內核傳遞啟動參數。MBR 全稱為Master Boot Record,即硬碟的主引導記錄。Live⑶即可以直接引導為可用Linux系統的⑶。Linux的rescue模式=Linux的修復模式,可以直接從引導介質啟動,進入修復已安裝Linux作業系統的修復環境。grub4dos :grub4dos是一個優秀的雙(多)系統引導軟體,使用GRUB4D0S可以很方便的引導各種作業系統,比如DOS、Windows、Linux等。Anaconda安裝程序Anaconda是Red Hat Linux和Fedora的安裝管理程式。它以Python及C語言寫成,以圖形的PyGTK和文字的python-newt界面寫成。它可以用來自動安裝配置,使用戶能夠以最小的監督運行。

發明內容
本發明提供了一種與現有Grub引導裝載程序修復技術不同的另一種修復技術, 即摒棄傳統的使用grubinstall命令修復Grub引導裝載程序,而是通過python程序調用 Anaconda提供的程序接口,實現對Grub引導裝載程序的修復。本發明把修復Grub引導裝載程序的新方法融入到Linux安裝程序Anaconda中, 將其作為安裝過程的若干步驟,為用戶提供操作友好的交互界面和簡潔易用的操作步驟, 使得用戶能夠快速、準確修復Grub引導裝載程序。本發明採用的技術方案是將修復Grub弓|導裝載程序作為Linux作業系統安裝程序Anaconda的一個功能模塊來實現的。這一方法的實現包括以下步驟1)將修復Grub引導裝載程序的步驟註冊至Anaconda安裝程序(步驟Si)定義修復Grub弓丨導裝載程序各個步驟的執行順序,在整個過程中起到了分配任務和嚮導的作用。2)實現修復類步驟(步驟S2),即修復Grub引導裝載程序的程序類定義啟動 Anaconda程序直至修復弓I導完成所需經歷的所有步驟和一些初始化定義。3)修復Grub引導裝載程序配置,包括基本配置(步驟S3a)和高級配置(步驟 S3b)。其中,基本配置選項(步驟S3a)包括Grub引導裝載程序的標籤,以及設置Grub引
5導裝載程序的密碼;高級配置選項(步驟S3b)包括Grub引導裝載程序的安裝位置,是否使用LBA32,以及供用戶輸入內核參數的接口。4)執行安裝Grub引導裝載程序(步驟S5),完成修復工作將配置好的Grub引導裝載程序安裝在指定的位置,完成對受損Grub引導裝載程序的配置修復工作。5)退出安裝程序(步驟S6)修復Grub引導裝載程序的善後處理工作。本發明提供了一種自動化修復Grub引導裝載程序的方法,克服了現有技術修復 Grub引導裝載程序操作步驟複雜、對實施者能力要求高、操作界面不友好、無法加密Grub 引導裝載程序、無法為Grub傳遞內核參數、無法自定義Grub引導裝載程序安裝位置等缺陷,實現一種更易用、功能更完善的修復Grub引導裝載程序的方法。本發明與現有技術相比在易用性和交互性方面有了很大的改進,主要體現在以下幾個方面1)相對於現有技術的複雜操作,本發明為修復Grub引導裝載程序提供了一個統一的工具,即將其集成至作業系統安裝步驟中;2)相比較現有技術沒有提供交互界面,本發明為修復Grub引導裝載程序提供了一個友好的圖形化人機互動界面,方便用戶操作;3)相比較與現有技術,本發明提供的修復Grub引導裝載程序的方法更簡潔、更易操作,只需要經過選擇修復、配置、確定三個步驟即可;4)相比較與現有技術,本發明提供的方法更易上手,對實施人員技術經驗要求比較低,本發明提供了默認選項,即使不經過任何配置也能夠完成Grub引導裝載程序的修復工作;5)相對於現有技術,本發明對修復Grub引導裝載程序的功能做了進一步完善,即實現Grub引導裝載程序的高級配置,包括對Grub引導裝載程序的加密保護、對Grub引導裝載程序傳遞內核參數以及自定義Grub引導裝載程序的安裝位置。其中加密引導裝載程序可以對作業系統進行加密保護,防止不允許啟動作業系統的人非法啟動系統;對Grub引導裝載程序傳遞內核參數可以實現系統啟動的自定義方式,如圖形方式啟動系統、屏蔽系統啟動時的細節信息等;自定義Grub引導程序的安裝位置可以自定義將Grub引導裝載程序安裝到MBR或分區頭上。


圖1為現有Linux環境Live CD修復Grub流程圖;圖2為現有Linux環境rescue模式修復Grub流程圖;圖3為現有Windows環境grub4dos工具修復Grub流程圖;圖4為本發明修復Grub引導裝載程序流程圖;圖5為加密Grub引導裝載程序流程圖;圖6為傳遞Grub引導裝載程序內核參數流程圖;圖7為自定義Grub引導裝載程序安裝位置流程圖。
具體實施例方式為了使本發明所採用的技術、手段及其優點,現舉優選實施例並配合附圖詳述如後,此僅供說明之用,在專利申請上並不受以下具體實施方式
的限制。本發明以Linux作業系統安裝程序Anaconda為基礎,將修復Grub引導裝載程序的方法引入到Anaconda機制中來實現的。本發明的交互界面包括圖形界面和字符界面兩種方式,分別對應於Anaconda安裝程序的圖形安裝模式和字符安裝模式。本發明的具體實施過程包括以下步驟1)將修復Grub引導裝載程序的步驟註冊至Anaconda安裝程序(步驟Si)這一步驟是實現在安裝過程中修復Grub裝載引導程序的前提,它定義了修復 Grub弓丨導裝載程序各個步驟的執行順序,在整個過程中起到了分配任務和嚮導的作用。在Anaconda程序中有個dispatch, py文件,該文件實現對安裝步驟的調度和控制,它有一個列表類型的數據結構installSt印s,該數據結構定義了安裝程序所有的安裝步驟,即所有的安裝步驟都必須註冊到installSt印s才能在安裝過程中被調度和執行。註冊修復Grub引導裝載程序的步驟即是將其包含的所有步驟以installSt印s定義的格式添加到installSt印s列表中,installkps列表中包括前端步驟和後端步驟,其中前端步驟即可視化的提供與用戶交互的步驟,後端步驟指在後臺運行的步驟,不與用戶交互。註冊完 Grub引導程序修復步驟後,這些步驟就具備了被Anaconda安裝程序調度和執行的基本條件。2)實現修復類步驟(步驟S》,即修復Grub引導裝載程序的程序類修復Grub引導裝載程序類繼承了 installclass. py文件中的BasehstallClass 類,該類定義了基本安裝類。修復Grub引導裝載程序類定義了啟動Anaconda程序直至修復弓I導完成所需經歷的所有步驟和一些初始化定義。這些工作主要由其成員函數setSt印s 來做,該函數調用dispatch的接口函數setSt印List實現此功能。該步驟也可通過其他的方法實現之,例如通過創建函數調用dispatch的接口函數setSt印List實現,或通過其他的方式調用dispatch接口函數seUteplist實現。3)修復Grub引導裝載程序配置,包括基本配置(步驟S3a)和高級配置(步驟 S3b)基本配置選項(步驟S3a)包括Grub引導裝載程序的標籤,以及設置Grub引導裝載程序的密碼;高級配置選項(步驟S3b)包括Grub引導裝載程序的安裝位置,是否使用 LBA32,以及供用戶輸入內核參數的接口。用戶在基本配置中選擇是否進行高級配置(步驟 S4),若高級配置開關打開則進入高級配置選項,否則跳過高級配置。配置修復Grub引導裝載程序選項是與用戶交互的部分,在Anaconda安裝程序中, 與用戶交互的界面包括圖形界面和字符界面兩種模式。故配置Grub引導裝載程序交互界面的實施需要實現圖形模式界面和字符模式界面。
具體實施方式
是分別創建圖形界面配置類和字符界面配置類。圖形化的基本配置類和高級配置類繼承hstallWindow類,並實現其父類的接口。在圖形化配置類中用GTK編程實現圖形化的交互界面,提供用戶基本配置選項和高級配置選項,包括Grub引導程序標籤、密碼設置、引導程序安裝位置、是否使用 LBA32及內核參數等控制項和說明;用snap編程實現字符界面,為用戶提供基本配置選項和高級配置選項,實現和圖形化模式下相同的字符控制項和說明。在用戶完成配置後,將每個選項關聯到與之對應的Grub相關參數,即為Grub引導裝載程序設置參數值,完成修復Grub 引導裝載程序的配置工作。
其中,本發明實現了 Grub引導裝載程序加密、為Grub引導裝載程序傳遞內核參數、自定義Grub引導裝載程序安裝位置等功能。本發明舉出如下具體實現方式加密Grub引導裝載程序如附圖5所示首先實現Grub引導裝載程序加密的用戶交互接口(步驟S311)。後端程序獲取加密口令(步驟S3U)後,為bootloader對象設置加密口令值(步驟S313),並將加密口令寫入配置文件(步驟S314)。待Grub引導裝載程序修復完成後,重啟系統,Grub會自動調用程序要求輸入Grub密碼。傳遞Grub弓丨導裝載程序內核參數如附圖6所示在高級配置步驟提供用戶輸入的接口(步驟S321),供用戶輸入自定義的內核參數。後端程序接收用戶輸入的內核參數值 (步驟S32》,並格式化內核參數(步驟S32!3)。bootloader對象有內核參數的屬性args, 將內核參數列表賦值給args屬性(步驟S3M)。在安裝修復Grub引導裝載程序時,將這些內核參數寫入到Grub引導裝載程序的配置文件grub, conf (步驟S32Q。這樣在用戶使用 Grub引導裝載程序引導系統時,系統會以帶有內核參數的方式引導。自定義Grub引導裝載程序安裝位置如附圖7所示提供選擇安裝位置的用戶接口(步驟S331),包括安裝到MBR或安裝到引導分區的第一個扇區。後端程序獲取位置信息 (步驟S33》,並對bootloader對象的安裝位置屬性設置值(步驟S33!3),在之後執行安裝修復Grub引導裝載程序時,安裝程序會依據該屬性值,將Grub引導裝載程序安裝到指定的位置(步驟S334)。4)執行安裝Grub弓丨導裝載程序(步驟S5),完成修復工作這一功能的實施是由instbootloader這一安裝步驟完成的,它調用bootloader. PY的writeBootloader接口,根據安裝Grub引導裝載程序的配置參數,將配置好的Grub引導裝載程序安裝在指定的位置,完成對受損Grub引導裝載程序的配置工作。5)退出安裝程序(步驟S6)完成修復Grub引導裝載程序後退出安裝程序,這一步是修復Grub引導裝載程序的善後處理工作,根據Anaconda安裝系統和升級系統的風格,修復引導裝載程序也設計了修復引導成功後退出Anaconda安裝程序或重啟系統的選項,提供給用戶退出Anaconda安裝程序的交互界面,且該交互界面包含圖形模式和字符模式兩種。
權利要求
1.一種Linux系統下基於Anaconda修復Grub引導裝載程序的方法,其特徵在於,將修復Grub引導裝載程序作為Linux作業系統安裝程序Anaconda的一個功能模塊,通過 python程序調用Anaconda所提供的程序接口,實現對Grub引導裝載程序的修復。
2.如權利要求1所述的方法,其特徵在於,所述方法包括以下步驟1)註冊修復步驟,將修復Grub引導裝載程序的步驟註冊至Anaconda安裝程序;2)實現修復類步驟,即修復Grub引導裝載程序的程序類;3)配置步驟,修復Grub引導裝載程序配置;4)執行步驟,執行修復Grub引導裝載程序。
3.如權利要求2所述的方法,其特徵在於,所述步驟1)是將修復Grub引導裝載程序包含的所有步驟以installSt印s定義的格式添加到installSt印s列表中,installkps列表中包括前端步驟和後端步驟,其中前端步驟為可視化的提供與用戶交互的步驟,後端步驟指在後臺運行的步驟,不與用戶交互。
4.如權利要求2所述的方法,其特徵在於,所述步驟2)是由成員函數setSteps 調用dispatch的接口函數setSt印List,或通過創建函數調用dispatch的接口函數 setStepList實現定義啟動Anaconda程序直至修復引導完成所需經歷的所有步驟和初始化定義。
5.如權利要求2所述的方法,其特徵在於,所述步驟幻包括分別創建圖形界面配置類和字符界面配置類,為用戶提供基本配置選項和高級配置選項。
6.如權利要求5所述的方法,其特徵在於,所述基本配置選項包括Grub引導裝載程序的標籤,以及設置Grub引導裝載程序的密碼;所述高級配置選項包括設置Grub引導裝載程序的安裝位置,是否使用LBA32,以及供用戶輸入內核參數的接口 ;用戶能在基本配置選項中選擇是否進行高級配置,若高級配置開關打開則進入高級配置選項,否則跳過高級配置。
7.如權利要求6所述的方法,其特徵在於所述設置Grub引導裝載程序的密碼的具體方法包括首先實現Grub引導裝載程序加密的用戶交互接口,由後端程序獲取加密口令,為bootloader對象設置加密口令值,並將加密口令寫入配置文件;所述供用戶輸入內核參數的接口可供用戶輸入自定義的內核參數,後端程序接收用戶輸入的內核參數值,並格式化該內核參數;bootloader對象具有內核參數的屬性args,將該些內核參數列表賦值給args屬性,在安裝修復Grub弓丨導裝載程序時,將這些內核參數寫入到Grub引導裝載程序的配置文件;所述設置Grub引導裝載程序的安裝位置的具體方法包括提供選擇安裝位置的用戶接口,包括安裝到MBR或安裝到引導分區的第一個扇區,由後端程序獲取位置信息,並對 bootloader對象的安裝位置屬性設置值,在執行安裝修復Grub引導裝載程序過程中,安裝程序依據該屬性值,將Grub引導裝載程序安裝到指定的位置。
8.如權利要求5所述的方法,其特徵在於,所述步驟3)的在用戶完成配置後,將每個選項關聯到與每個配置選項對應的Grub相關參數,即為Grub引導裝載程序設置參數值,完成修復Grub引導裝載程序的配置工作。
9.如權利要求2所述的方法,其特徵在於,所述步驟4)是由instbootloader函數調用 bootloader. py的writeBootloader接口,根據安裝Grub引導裝載程序的配置參數將配置CN 102419710 A_權禾丨J 要求書_2/2頁 好的Grub引導裝載程序安裝在指定的位置,完成對受損Grub引導裝載程序的配置工作。
10.如權利要求2所述的方法,其特徵在於,所述方法還包括在完成修復Grub弓I導裝載程序後退出安裝程序的步驟。
全文摘要
本發明涉及一種基於Anaconda修復Grub引導裝載程序的方法,摒棄傳統使用grubinstall命令修復Grub引導裝載程序,而是通過python程序調用Anaconda提供的程序接口,實現對Grub引導裝載程序的修復。此外,本發明還實現了對Grub引導裝載程序的加密功能、傳遞內核參數以及自定義Grub引導裝載程序的安裝位置。該方法主要包括註冊、配置和修復這三個步驟,克服了現有技術修復Grub引導裝載程序不完善、操作步驟複雜、對實施者能力要求高、操作界面不友好等缺陷。
文檔編號G06F11/00GK102419710SQ20101029458
公開日2012年4月18日 申請日期2010年9月28日 優先權日2010年9月28日
發明者蘭雨晴, 劉豔彬, 夏穎, 姜平, 張永軍, 徐曉娟, 朱中濤, 楊建生, 王建慧, 甄東宇 申請人:中標軟體有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀