鬼佬大哥大
  • / 9
  • 下載費用:30 金幣  

基于鏈式引導和動態修改分區表的任意多系統的安裝方法.pdf

摘要
申請專利號:

CN201510408544.6

申請日:

2015.07.14

公開號:

CN105045621A

公開日:

2015.11.11

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 9/445申請日:20150714|||公開
IPC分類號: G06F9/445 主分類號: G06F9/445
申請人: 河南科技大學
發明人: 張各各; 李剛偉
地址: 471000河南省洛陽市澗西區西苑路48號
優先權:
專利代理機構: 洛陽公信知識產權事務所(普通合伙)41120 代理人: 羅民健
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510408544.6

授權公告號:

||||||

法律狀態公告日:

2018.04.13|||2015.12.09|||2015.11.11

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

基于鏈式引導和動態修改分區表的任意多系統的安裝方法,主要基于鏈式啟動以及系統分區的動態修改實現任意多操作系統的安裝。在常規開機啟動流程中增加一級通用的bootloader, 變成兩級boolloader組成的鏈式啟動隨后通過定制的Linux動態修改系統分區表,進而實現多系統的換切。

權利要求書

1.基于鏈式引導和動態修改分區表的任意多系統的安裝方法,其特征在于:包括以下步驟,步驟一、在常規開機啟動流程中增加一級通用的Bootloader,變成兩級Bootloader組成的鏈式啟動,改進的后開機流程:首先BIOS從MBR中加載第一級Bootloader,稱為Bootloader1,并且由Bootloader1加載相應操作系統的Bootloader,稱為Bootloader2,而由Bootloader2加載與啟動相對應的操作系統;步驟二、把整個硬盤分為四塊,分別放置在四個主分區:Muti-system、Data、MaintainOS和Bootloader;其中Muti-system分區用來存放各種操作系統,各個系統分時復用同一個分區,Data分區用來存放各系統之間的共享數據,MaintainOS分區安裝一個基本的定制linux操作系統,用來動態的修改分區表實現系統的切換,Bootloader分區用來存放Bootloader1,以及操作系統劃分表,Bootloader2則存放在Muti-system分區中各自操作系統空間的起始部分;步驟三、利用linux啟動盤,把MaintainOS安裝放在MaintainOS分區,啟動進入MaintainOS,并在MaintainOS中把Bootloader1安裝在Bootleader分區,同時建立操作系統劃分表,放在Bootloader分區,根據切換方法,切換到對應的系統空間,進行正常操作系統安裝。2.如權利要求1所述的基于鏈式引導和動態修改分區表的任意多系統的安裝方法,其特征在于:所述的切換方法為:步驟一、把操作系統劃分表中相應的系統狀態置為1,其它系統的狀態置為0,并把二級啟動分區改為MaintainOS;步驟二、重啟機器,Bootloader1根據啟動分區的狀態加載MaintainOS對應的Bootloader2,由Bootloader2啟動MaintainOS;步驟三、MaintainOS根據Bootloader分區中的操作系統劃分表中激活的系統項來修改Muti-system分區的起始地址,并把二級啟動分區改為Muti-system分區;步驟四、重啟機器,Bootloader1根據啟動分區的選項鏈式加載Muti-system的對應的Bootloader2,啟動相應的OS;步驟五、切換完畢。

說明書

基于鏈式引導和動態修改分區表的任意多系統的安裝方法

技術領域

本發明涉及電子技術領域,具體說是基于鏈式引導和動態修改分區表的任意多系統的安裝方法。

背景技術

目前越來越多的跨平臺開發與應用,需要對多操作系統的支持,比如Windows、linux、Mac等,再加上各個系統的不同的版本與分支,組合就更多,對多操作系統的需求就更加迫切。

雖然純軟件的APP應用可以通過虛擬機來滿足,但是一些與硬件相關的開發,如驅動,使用虛擬機則無能為力。

因此常規的跨平臺開發與應用需要安裝多臺機器,極不方便工程應用。

另一方面,目前計算機硬盤空間遠遠超過一般存儲需求的大小,此時只安裝一個操作系統,造成硬盤空間的極大浪費。

雖然專利《一種實現多操作系統的方法及電子設備》實現了一種多系統的安裝,但是其實現的操作系統個數少于分區個數。

根據現有的MBR分區機制,最多有四個主分區,而啟動分區只能是主分區。

雖然理論上GPT分區表對分區個數沒有限制,但實際上一些操作系統對GPT分區啟動存在一定的限制,無法實現任意分區啟動,

因此現存的多分區啟動,無法實現多于四個操作系統的安裝。

目前大部分多分區啟動都是基于BIOS層以及Bootloader的一級引導機制方法,只能實現簡單的開機引導,二次擴展開發的難度很大。

發明內容

為解決上述技術問題,本發明采用鏈式引導加動態修改系統分區表的方法來實現任意多系統的安裝,突破操作系統安裝個數受硬盤分區個數的限制。

為實現上述技術目的所采用的技術方案是:基于鏈式引導和動態修改分區表的任意多系統的安裝方法,包括以下步驟,

步驟一、在常規開機啟動流程中增加一級通用的Bootloader,變成兩級Bootloader組成的鏈式啟動,改進的后開機流程:首先BIOS從MBR中加載第一級Bootloader,稱為Bootloader1,并且由Bootloader1加載相應操作系統的Bootloader,稱為Bootloader2,而由Bootloader2加載與啟動相對應的操作系統;

步驟二、把整個硬盤分為四塊,分別放置在四個主分區:Muti-system、Data、MaintainOS和Bootloader。其中Muti-system分區用來存放各種操作系統,各個系統分時復用同一個分區,Data分區用來存放各系統之間的共享數據,MaintainOS分區安裝一個基本的定制linux操作系統,用來動態的修改分區表實現系統的切換,Bootloader分區用來存放Bootloader1,以及操作系統劃分表,Bootloader2則存放在Muti-system分區中各自操作系統空間的起始部分;

步驟三、利用linux啟動盤,把MaintainOS安裝放在MaintainOS分區,啟動進入MaintainOS,并在MaintainOS中把Bootloader1安裝在Bootleader分區,同時建立操作系統劃分表,放在Bootloader分區。根據切換方法,切換到對應的系統空間,進行正常操作系統安裝;

所述的切換方法為:

步驟一、把操作系統劃分表中相應的系統狀態置為1,其它系統的狀態置為0,并把二級啟動分區改為MaintainOS;

步驟二、重啟機器,Bootloader1根據啟動分區的狀態加載MaintainOS對應的Bootloader2,由Bootloader2啟動MaintainOS;

步驟三、MaintainOS根據Bootloader分區中的操作系統劃分表中激活的系統項來修改Muti-system分區的起始地址,并把二級啟動分區改為Muti-system分區;

步驟四、重啟機器,Bootloader1根據啟動分區的選項鏈式加載Muti-system的對應的Bootloader2,啟動相應的OS;

步驟五、切換完畢。

本發明有益效果是:

1、本發明提供一種任意多操作系統的安裝方法,突破了操作系統安裝個數受硬盤分區個數的限制,其安裝的操作系統個數只與硬盤容量大小和操作系統所占的空間有關,并且各操作系統之間相互獨立、互不影響。

2、本發明采用定制的linux操作系統,容易進行二次開發、擴展與網絡集成。

A、對于系統的備份與維護,就是一般的linux文件操作,開發和日常操作難度都很小,并且極容易實現自動和定時備份。

B、由于linux操作系統本身提供網絡的支持,可以把操作系統劃分表放在遠程的服務器端,從而實現多操作系統的遠程切換。

C、備份也可以另外添加存儲設備(只要MaintainOS支持即可),也可以實現遠程備份。

D、系統和數據之間的分區是獨立的,因此系統之間可以共享數據分區。

附圖說明

圖1為啟動流程圖;

圖2為分區表結構圖;

圖3為多系統硬盤分區方案;

圖4為操作系統劃分表。

具體實施方式

本發明所要用的支持鏈式啟動的Bootloader1要滿足兩個條件:

1、支持鏈式啟動。

2、支持大部分的文件系統。

例如可以用grub作為一個通用Bootloader1。Bootloader2則采用各個操作系統所對應的Bootloader即可。例如windows可以用其自帶的,而linux可以用grub,lilo等等。

MaintainOS采用定制的linux,可以使用gentoo來進行定制。

只需要安裝最基本系統就可以,不需要安裝XWindow。

本發明把整個硬盤分為四塊,分別放置四個主分區(Muti-system,Data,MaintainOS,Bootloader),剛好滿足MBR的分區表最多只有四個主分區的要求。因為MBR分區表存放在硬盤第一個扇區的最后64字節,每份分區表占據16個字節,正好四個分區。

分區表結構如圖2,本發明通過調整分區的開始地址、結束地址以及分區的大小實現分區表分時復用。

本發明中所有操作系統分時共享Muti-system分區。Data、MaintainOS和Bootloader1分別獨占一個分區。通過MaintainOS動態的改寫分區表中Muti-system分區始止地址實現操作系統的切換,分區的順序分可以隨意調整。一般的分配策略是順序分配,如圖3所示:

1、Muti-system分區用來存放各種操作系統,安裝的操作系統個數取決于硬盤容量的大小。例如需要安裝6個系統,每個系統120G,那么就需要600G的硬盤空間。

2、Data分區用來存放各系統之間的共享數據,其大小由硬盤的剩余空間大小來確定。

3、MaintainOS安裝一個基本的定制linux操作系統,用來實現系統切換以及系統的備份(一般情況下需要2G左右空間)。

4、Bootloader分區用來存放Bootloader1,以及操作系統劃分表(如圖4),而Bootloader2則存放在Muti-system分區中各自操作系統空間的起始部分。

(一)多系統安裝過程

1、根據需求以及硬盤的大小,計算出分區大小,對硬盤進行分區。

2、利用定制的linux啟動盤,把MaintainOS安裝放在MaintainOS分區。

3、啟動進入MaintainOS,并且MaintainOS中把Bootloader1安裝在Bootleader分區,同時在Bootloader分區建立操作系統劃分表。

4、根據本發明中操作系統切換方法,切換到對應的系統空間,進行正常的操作系統安裝。

實施例1

(一)我們以1T的硬盤,安裝六個操作系統為例。硬盤分配方案如下:

這里開始地址/結束地址,是硬盤的(LogicalBlockAddress)LBA地址,并以cyls為單位(大小為8K)按照1G=1000M,1M=1000K計算,并取整得到。這些單位可以查看:sfdisk-l-uC來查看。

(二)具體實現步驟

1、用sfdisk對硬盤進行分區

六個操作系統分時共享同一個Muti-System分區(每一次只激活一個系統),而Data,MaintainOS,Bootloader各自獨立一個分區。根據上表,寫入真正的分區表。

sfdisk/dev/sda<<EOF

1,14589,L#Win7

87541,33572,L#Data

121114,243,L#MaintainOS

121358,243,L#Booloader

EOF

2、安裝定制的gentoo到MaintainOS分區。

3、安裝grub到Bootloader分區,并且配置menulist

timeout3

defaultsaved

titleMaintainOS

rootnoverify(hd0,2)

chainloader+1

savedefault1

titleMuti-System

rootnoverify(hd0,0)

chainloader+1

savedefault1

4、把操作系統劃分表存放在Bootloader分區。

5、在gentoo中添加開機自啟服務。自動讀取Bootloader分區的操作系統劃分表,并據此修改分區表中Muti-System分區的地址。

6、Bootloader分區在所有系統中都是可見的。在需要切換的時候,只要修改grub/default的啟動選項為MaintainOS分區,同時修改對應的系統的狀態即可,重啟機器即可切換。

關 鍵 詞:
基于 鏈式 引導 動態 修改 分區表 任意 系統 安裝 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:基于鏈式引導和動態修改分區表的任意多系統的安裝方法.pdf
鏈接地址:http://www.wwszu.club/p-6401474.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大