01_多操作系统课题研究[2011-01-21]
多系統安裝? ?-小錢版
這些天,由于個人需要,需要用到多系統,于是,我在探究系統的安裝,在想,如何能實現多系統的安裝呢?其實,每一個系統的安裝并不難,多系統安裝的難度就在于多系統啟動項的生成,如何能讓多個系統存在且能成功地引導。我們知道,一個硬盤中主分區只能設置三個,能通過什么樣的方法讓它們同時激活并且用上一個邏輯分區啟動?這就是我最近探討的問題。
這些天來,在網上,書上,找了一些資料,提出了一些方案,以下是我的探究過程,與大家分享分享。
?
(一)準備階段
(1) 以下是我準備的三個系統:
① Windows 7 (新電腦公司 Ghost Win7 x64 純凈軟件選擇Y1.1)
現在Windows 7 已經差不多普及了,所以,為了趕上這個時代,為了讓某些軟件可以用,為了讓自己的計算機性能可以充分發揮,我就先裝個Windows 7玩一下,熟悉一下。安裝版的沒有去找,一上網就看見了一個Ghost版的,算了,直接用Ghost版裝吧。
② Windows Xp(Ghost XP SP3 系統之家2011賀歲純凈版 v1.0)
Xp是多年的元老了,不是所有的軟件都能完美地在Windows 7上運行,而個人又習慣了用XP多年了,現在不想這么快就把XP刪掉,還是保留使用吧,再說,可以用來做測試軟件使用。
③ Cent OS V5.3 (Linux)
??? 裝這個系統是我研究裝多系統的最根本原因,我想學習Linux操作系統,又因為教材上用的了Cent OS 5.3 所以我就用這個版本了,現在Cent OS 好像出到5.5吧。
?
(2)以下是收集到的光盤工具,U盤工具:
??? 之前還找到了一大堆,后來經過試過測試后,覺得下面的工具不錯,于是推介給大家。
①?? 迷你U盤系統 Pocket OS v09.10.30
這軟件挺好用,在我的U盤上用了一年了,基本上能支持所有的機型,在同學的新機上也能用,里面集成了PE和DOS工具集,另外,這軟件可以直接安裝,研究發現,它安裝的原理是在你的U盤上再劃分一個分區出來,然后將其隱藏,這樣就可以達到防止誤刪還有不影響U盤的正確使用的目的。
②?? UltraISO_Premium_V9.36
??? 這軟件無疑是刻錄的好軟件,用了兩年左右了,在此推介給大家。
還有就是可以用虛擬光驅,最后就是這個軟件還可以制作和這個主題有關的USB引導盤。
③?? 完美者U盤維護系統V10.2
經過測試,里面的工具挺全的,日常用的那些基本上都有了,PE, Diskgen , Ghost, Spfdisk……
不過有一個缺點,它是一個鏡像,沒有剛剛提到的第一個好用,不過還是可以根據第一個的方法用剛剛提到的UltralISO制作出來。具體方法這里就不介紹了,大家自行去探究一下吧!
④?? 超級系統維護光盤 2010統一會員新春版
一般系統安裝盤上都已經集成了各種工具,但是為什么還要多此一舉用這個光盤呢?呃~這個只是個人愛好,用以收藏,不過如果大家出去幫人裝機的時候帶上這個挺不錯的,因為里面集成了各種驅動 ,不過上網去下載,還有一點就是能夠光驅引導,也是全部常用工具齊全。
⑤?? MaxDOS
這個軟件我下載了兩個版本,一個是 V7.1的光盤版,一個是V8.0的硬盤版,開始用的時候好像是上一年,一直用到現在,主要打算用來裝完剛剛提到的第四個系統后裝上去,以后維護機子就不用用光盤這么麻煩。里面的也有spfdisk工具和其它常用工具。
⑥?? ??大白菜超級U盤啟動制作工具v1.7
這軟件原理是量產U盤,量產之余,跟剛提到的第一個工具原理差不多,不過這個工具的好處就是可以自己加入多個鏡像,比較方便,可以解決第三個工具的麻煩。
?
(3)以下是一些必須了解到的原理:
如果只是依著步驟去做,永遠學不到東西,這其中你必須懂得其中原理,知道為什么要這樣去做才行,這樣你才會知道,其實很多東西都是百變不離其中的。免得換了一個系統就不會去弄了,這樣去學習有什么用?
下面的內容超長,而且有點嘮叨,要耐心地看看哦
1. 001 開機流程與主引導分區(MBR)
2. 002 多重啟動系統2種方式
3. 003 U盤啟動原理
4. 004可啟動CD-ROM (原理&&發展史)
5. 005 啟動盤個人小結
6. 006 win7與xp系統啟動原理
7.007 Linux啟動原理
8. 008 mbr修改
9. 009 bootmgr
10. 010 bootini
?
01. 開機流程與主引導分區(MBR)[參考資料:鳥哥私房菜]
我們在計算機概論里面談到了,沒有執行軟件的硬件是沒有用的,除了會電人之外,而為了計算機硬件系統的資源合理分配,因此有了操作系統這個系統軟件的產生。由于操作系統會控制所有的硬件并且提供內核功能,因此我們的計算機就能夠認識硬盤內的文件系統,并且進一步讀取硬盤內的軟件文件與執行該軟件來完成各項軟件的執行目的。
問題是,你有沒有發現,既然操作系統也是軟件,那么我的計算機又是如何認識這個操作系統軟件并且執行它的?開機時我的計算機還沒有任何軟件系統,那它要如何讀取硬盤內的操作系統文件啊?這就得要牽涉到計算機的開機程序了!下面就讓我們來談一談這個開機程序吧!
在計算機概論里面我們談到那個可愛的BIOS與CMOS兩個東西,CMOS是記錄各項硬件參數且嵌入在主板上面的存儲器,BIOS則是一個寫入到主板上的一個韌體(再次說明,韌體就是寫入到硬件上的一個軟件程序)。這個BIOS就是在開機的時候計算機系統會主動執行的第一個程序了。
接下來BIOS會去分析計算機里面有哪些存儲設備,我們以硬盤為例,BIOS會依據用戶的設置去取得能夠開機的硬盤,并且到該硬盤里面去讀取第一個扇區的MBR位置。MBR這個僅有446bytes的硬盤容量里面會放置最基本的引導加載程序,此時BIOS就功成圓滿,而接下來就是MBR內的引導加載程序的工作了。
這個引導加載程序的目的是在加載(load)內核文件,由于引導加載程序是操作系統在安裝的時候所提供的,所以它會識別硬盤內的文件系統格式,因此就能夠讀取內核文件,然后接下來就是內核文件的工作,引導加載程序也功成圓滿,之后就是大家所知道的操作系統的任務啦!
簡單地說,整個開機流程到操作系統之前的動作應該是這樣的。
1.BIOS:開機主動執行的韌體,會認識第一個可開機的設備。
2.MBR:第一個可開機設備的第一個扇區內的主引導分區塊,內包含引導加載程序。
3.引導加載程序(Boot loader):一支可讀取內核文件來執行的軟件。
4.內核文件:開始操作系統的功能。
.
02多重啟動系2種方式
?
1.動態激活分區
2.第三方引導程序
?
1.動態激活分區實現多重啟動與MBR(Master Boot Record,主引導記錄有關,MBR位于磁盤0柱面0磁頭的1扇區上。標準的MBR由引導程序,硬盤分區表和結束標記三部分組成,其中,引導程序用于引導系統和識別分區;硬盤分區表用于說用于說明各分區的大小,性質,激活等狀況。計算機從硬盤動系統時,首先會載入MBR,讀取引導程序,然后尋找具有激活標記的分區,找到激活的分區后,則跳至該分區的起始位置,載入對應的操作系統。
所以,要設置多重啟動,可以通過動態改變分區的激活標記來實現。
2.多重啟動方式-第三方引導程序
按照動態激活分區的方法最多可引導4個操作系統,當計算機中要安裝4個以上的操作系統時,必須使用第三方引導程序替代MBR引導系統。
由于MBR的硬盤分區表只分成4個部分,每一部分對應一個分區,所以一塊硬盤最多也只能分成4個主分區,如果安裝4個以上的操作系統,則需要使用邏輯分區來存儲系統。
什么叫邏輯分區呢?它是指在硬盤分區表的第4部分不放置主分區的分區信息,而是放置擴展分區的信息,當用戶訪問第4部分的信息時,自動跳轉至擴展分區,然后在擴展分區中建立一個分區表,將擴展分區分成數個邏輯分區。
MBR引導系統時,引導權只會分配給具有激活標識的主分區。那么,如果系安裝在邏輯分區中,該如何啟動呢?解決方法是:在已激活的主分區中建立一個多重啟動程序,MBR引導系統時將引導權移交給這個多重啟動程序,由它載入安裝在邏輯分區中的操作系統,這樣就可以突破主分區的局限,在任意一個分區中安裝操系統了。
3.善用Windows 系統自帶引導功能,使多系統共存。
Windows自帶NTDETECT引導程序在安裝操作系統時,應先安裝低版本,再安裝高版本。
?
003 U盤啟動原理
U盤啟動原理
請大家現在先看幾段對話,相信看完之后就有一個大概的了解。
甲:
其實啟動盤的原理很簡單,主板支持什么啟動,我們就要把U盤模仿這種啟動方式的特征,比如USB-HDD啟動,那我們就要將U盤的整個分區表模仿移動硬盤,使主板認為你的U盤是移動硬盤,這樣你的U盤就能啟動了
乙:
啟動盤其實是DOS系統啦,啟動后可以執行DOS命令和程序,但是不是人人都懂得,所以封裝了WinPe,這是最簡化的WinXP系統。
丙:
WINPE需要NT的引導記錄才能啟動,可是一般U盤包括可啟動DOS的U盤它的引導記錄都是DOS的。
?
網絡:
百度百科http://baike.baidu.com/view/1435293.htm
從U盤引導DOS系統,出現的引導菜單選項如下:
Boot DOS with CDROM 標準功能+光驅驅動
Boot DOS with CDROM + NTFS 標準功能+光驅驅動+讀寫NTFS分區
Boot DOS ONLY (No Any Drivers) 只啟動基本DOS系統
REBOOT YOUR PC 重啟計算機
SHUTDOWN YOUR PC 關閉計算機
注1:標準功能是指已加載himem.sys和emm386.exe內存驅動、smartdrv磁盤加速、鼠標驅動、doskey。
注2:基本DOS系統是指僅僅加載IO.SYS、MSDOS.SYS和COMMAND.COM這3個DOS核心文件,不加載其他任何驅動和程序。
? 用↑↓鍵選擇你需要的啟動方式,回車確定。
? 啟動成功后,會顯示DOS LOADING SUCCESSFUL的字樣。
? 如果是ZIP模式或FDD模式的U盤,會出現A:\>的提示符
? 如果是HDD模式的U盤,會出現C:\>的提示符 至此DOS系統啟動完畢,你現在就可以做你該做的事情了。
?
各種U盤啟動模式簡介
1、 USB-HDD 硬盤仿真模式,DOS啟動后顯示C:盤,HP U盤格式化工具制作的U盤即采用此啟動模式。此模式兼容性很高,但對于一些只支持USB-ZIP模式的電腦則無法啟動。
? 2、 USB-ZIP 大容量軟盤仿真模式,DOS啟動后顯示A盤,FlashBoot制作的USB-ZIP啟動U盤即采用此模式。此模式在一些比較老的電腦上是唯一可選的模式,但對大部分新電腦來說兼容性不好,特別是大容量U盤。
? 3、 USB-HDD+ 增強的USB-HDD模式,DOS啟動后顯示C:盤,兼容性極高。其缺點在于對僅支持USB-ZIP的電腦無法啟動。
? 4、 USB-ZIP+ 增強的USB-ZIP模式,支持USB-HDD/USB-ZIP雙模式啟動(根據電腦的不同,有些BIOS在DOS啟動后可能顯示C:盤,有些BIOS在DOS啟動后可能顯示A:盤),從而達到很高的兼容性。其缺點在于有些支持USB-HDD的電腦會將此模式的U盤認為是USB-ZIP來啟動,從而導致4GB以上大容量U盤的兼容性有所降低。
? 5、 USB-CDROM [2]光盤仿真模式,DOS啟動后可以不占盤符,兼容性一般。其優點在于可以像光盤一樣進行XP/2003安裝。制作時一般需要具體U盤型號/批號所對應的量產工具來制作,對于U3盤網上有通用的量產工具。
?
?
004可啟動CD-ROM (原理&&發展史)
若想知道可啟動CD—ROM的原理,我們可以探尋一下可啟動CD-ROM的起源。
可啟動CD-ROM(或稱可引導光盤)的概念早在1994年(輝煌的DOS年代)就被提出來了,當時CD-ROM還是PC機的一個昂貴的附屬設備(CD-ROM加聲卡在當時被成為多媒體套件,帶多媒體套件的電腦被成為多媒體電腦),而且在DOS平臺下實現光盤引導還存在一些技術上的困難:要在載入DOS之前就必須檢測到CD-ROM,而這一點,當時從軟件上是無法實現的,惟一的解決之道就是修改電腦主板上的BIOS(或是SCSI與IDE控制器上的BIOS),使之在硬件級而不是軟件級首先識別CD-ROM,并自動加載CD-ROM上的啟動引導器(存放在CD-ROM上特定區域的一段特殊代碼,用以控制CD-ROM的啟動)。
1995年1月25日,Phoenix Technologies與IBM聯合發表了可啟動CD-ROM格式規范(Bootable CD-ROM Format Specification)1.0——El Torito規范,該規范中定義了可啟動CD-ROM的數據結構與映像數據的配置及光盤制作的一些詳細說明。實際上,該規范也隱含地制定了能夠讀取可啟動CD-ROM光盤的BIOS的規范,使得符合El Torito規范的可啟動CD-ROM在電腦上能夠正常啟動。如果可啟動CD-ROM有了,但在電腦上無法讀取,豈不還是白搭?!
隨后,Phoenix又獨自或聯合其他廠家相繼發布了一系列支持可啟動CD-ROM的規范和標準,其中值得一提的是1996年1月11日COMPAQ、Phoenix與Intel聯合發布的BIOS啟動規范(BIOS Boot Specification)1.01,該規范為BIOS廠家提供了制造支持可啟動CD-ROM的BIOS的標準。
自從El Torito規范推出之后,采用單重啟動映像的可啟動CD-ROM大量涌現,El Torito規范也成為事實上的工業標準。
可啟動CD-ROM仍遵循ISO 9660的規范,簡單地說,普通CD-ROM+開機功能=可啟動CD-ROM。
這也就是為什么Windows 95安裝光盤不可啟動的根本原因——Windows 95發布時El Torito規范還沒有誕生。
El Torito規范定義了CD-ROM中啟動映像(bootable image)的配置,還提供了有關可啟動CD-ROM的制作與結構的一些詳細說明。這些說明的技術性很強,要想弄得很明白需要花費一番大力氣。但我們的目的是制作出符合El Torito規范的可啟動CD-ROM,所以沒有必要在理論上了解那么多,很多現成的燒錄軟件以能夠幫助我們制作出完美的單啟動CD-ROM。
多重啟動CD-ROM的工作原理
El Torito規范中不僅定義了單重啟動映像(single boot image)的配置,而且非常富有遠見地定義了多重啟動映像(multiple boot images)的配置。
?
可啟動CD-ROM的工作原理如下:
BIOS首先檢查光盤的第17個扇區(sector 17),查找其中的代碼,若發現其中的啟動記錄卷描述表(Boot Record Volume Descripter),它就根據表中的地址繼續查找啟動目錄(Booting Catalog),找到啟動目錄后 ,再根據其中描述的啟動入口(Boot Entry)找到相應的啟動磁盤映像(Bootable Disk Image)或啟動引導文件,找到啟動磁盤映像后,讀取其中的數據,并執行相應的開機動作。
相對于單重啟動CD-ROM而言,多重啟動CD-ROM的啟動目錄中包含多個啟動入口,指向多個啟動磁盤映像。
上圖所描述的多重啟動配置是El Torito規范所描述的多重啟動映像配置,但由于多重啟動CD-ROM在實際工作中的應用較少,目前大多數主板的BIOS對此支持得不是很好。在這類主板上,用遵循El Torito規范所制作的多重啟動CD-ROM往往只能引導第1個(默認啟動出口所指向的)啟動映像,而其他的啟動映像莫名其妙地消失了!
為了解決這個問題,人們又相繼研究出了一些辦法來實現CD-ROM的多重啟動,目前最流行的辦法是“非模擬”(軟盤、硬盤)式BIOS模擬法。其工作原理與El Torito規范所描述的單重啟動映像配置原理基本相同,只是默認啟動的不是軟盤映像,而是1個啟動引導文件,該啟動引導文件引導光盤啟動,再由它去查找其他的啟動磁盤映像或引導文件,根據配置文件列出啟動選項共用戶選擇。
?
005 啟動盤個人小結
看了那么多資料,其實,U盤啟動,光盤啟動,其實啊,個人就認為,
1.U盤啟動就是DOS啟動,用IO.SYS、MSDOS.SYS和COMMAND.COM文件。
2.光盤啟動就是在光盤的sector 17讀取數據,找Boot Record Volume Descripter再找Booting Catalog,Boot Entry,Bootable Disk Image…
3.啟動盤的原理可以很簡單地這樣想:
01.主板的BIOS支持; 02.能從BIOS引導至設備? 03.設備的數據符合格式
如何想繼續深究就可以去了解,BIOS里面是怎么寫的,讀取順序是怎樣,設備里面的數據是什么數據,要怎樣去寫。
?
006 Windows 7&&Windows XP系統啟動原理
windows xp和windows 7的啟動原理有何不同,雙系統又是如何啟動的:
在windows 7+xp雙系統中,windows 7使用bootmgr接管系統啟動模式。電腦自檢完成后,開始查找活動主分區(一般情況是C:)并加載它。
接著會繼續讀取活動分區下的啟動配置文件(即C:\BOOT\BCD)和c:\boot.ini,根據BCD和Boot.ini存儲的啟動信息列出啟動菜單(也就是雙系統啟動菜單)
。對于雙系統用戶通常列出“Microsoft Windows 7”和“舊版本的Windows”。
?
如果選擇前者,Bootmgr將控制權交給windows 7系統目錄下的Winload.exe (在\windows\systems下)然后開始啟動windows 7。選擇后者,Bootmgr將
控制權交給NTLDR,接著開始讀取c:\boot.ini并列出其中配置的啟動菜單。
?
啟動故障就主要出現在Bootmgr(如該文件丟失)、BCD(啟動信息配置錯誤)、Winload.exe(該文件丟失導致Vista無法啟動)、Ntldr(該文件丟失導致XP無
法啟動)這些文件上。(我的情況屬于bootmgr文件丟失,BCD文件啟動信息配置錯誤)
#??? XP 、Vista/Win7啟動過程
XP的啟動:Bios-->MBR-->PBR-->ntldr-->boot.ini-->win kernel;
Vista/Win7的啟動:Bios-->MBR-->PBR-->bootmgr-->boot\BCD-->win kerne
?
?
007 Linux啟動原理
Linux開機簡述
??? 開機過程制的是從打開計算機電源直到LINUX顯示用戶登錄畫面的全過程。分析LINUX開機過程也是深入了解LINUX核心工作原理的一個很好的途徑。在不同的計算機平臺上,LINUX的開機過程稍有不同,本節以X386微機系統為例,介紹LINUX的開機過程。
1。開機自檢
??? 在剛開機時,根據X386CUP的特性,代碼段(CS,CODE SEGMENT)寄存器的值為全1,指令計數器(IP,INSTRUCTION POINTER)的值為全0,既CS=FFFF、IP=0000。這時CPU根據CS和IP 的值執行FFFF0H處的指令。由于FFFF0H已經到了基本內存的高地址頂端,所以,FFFF0H處的指令一般總是一個JMP指令,以便CPU能夠跳到比較低的地址去執行那里的代碼,這個地址通常是ROM BIOS 的入口地址。接著,ROM BIOS 進行開機自檢,如檢查內存,鍵盤等。在自檢過程中,ROM BIOS會在上位內存(UMB,UPPERMEMORY BLOCK)中進行掃描,侃侃是否存在合法的設備控制卡ROM BIOS(如:SCSI卡上的ROM),如果有,就執行其中的一些初始化代碼。最后,ROM BIOS 讀取磁盤上的第一個扇區并將這個扇區的內存裝入內存。
2。預引導
??? 假定硬盤是系統的啟動磁盤。硬盤的第一扇區稱為主引導記錄(MBR, MASTER BOOTRECORD)。MBR 的長度為512字節??煞譃閮刹糠?#xff1a;第一部分為引導(PRE-BOOT)區,占了446個字節;第二部分為分區表(PARTITION PABLE),共有66個字節,記錄硬盤的分區信息。預引導區的作用之一是找到標記為活動(ACTIVE)的分區,并將活動分區的引導區讀入內存。
??? 如果用軟盤啟動計算機,ROM BIOS 讀入的是軟盤的引導區,既軟盤的第一個扇區。
3。核心映像裝入
??? 在LINUX系統中,人們通常把LILO(LINUX LOADER)放在MBR或某個分區的超級塊(SUPERBLOCK)中。假定LILO在MBR中,讀取MBR后,LILO就會被首先執行。此時,屏幕上出現“BOOT:”字樣,接下來的工作是裝入LINUX核心映像。如果LILO安裝在某個分區的超級塊中,通常還會有一個管理開機的程序,這個管理開機的程序負責讀取LILO,進而進行核心映像的裝入工作。
4。核心啟動
??? 核心裝入完畢后,CPU的控制權就交給了核心啟動代碼。此時,核心首先進行硬件的檢測和設備驅動程序的初始化,然后運行INIT。INIT 是LINUX核心啟動的第一個用戶進程,其進程號為1,是系統其它用戶進程的祖先。
5。系統初始化
??? INIT進程負責進行一系列系統初始化程序和腳本文件,/ETC/INITTAB中包含了INIT所做的所有工作。
6。等待用戶登錄
??? 系統初始化完畢后,INIT 切換到多用戶模式,并為每一個虛擬控制臺和川行終端啟動一個GETTY進程。GETTY進程負責接受和檢驗用戶的登錄要求。
??? 至此,LINUX系統的啟動工作全部完成。不同核心版本的LINUX 的啟動過程有一定的差異,不同發行版本的LINUX 的啟動也可能稍有不同,但基本過程是類似的。另外,在“BOOT:”后,利用“LINUX SINGLE”命令可以迫使LINUX進入單用戶模式,除不要求用戶登錄和不啟動虛擬終端以外,啟動過程的其它部分也基本類似。
?
啟動過程跟蹤
?
??? 本文以Redhat 6.0 Linux 2.2.19 for Alpha/AXP為平臺,描述了從開機到登錄的 Linux 啟動全過程。該文對i386平臺同樣適用。
一. Bootloader
??? 在Alpha/AXP平臺上引導Linux通常有兩種方法,一種是由MILO及其他類似的引導程序引導,另一種是由Firmware直接引導。MILO功能與i386平臺的LILO相近,但內置有基本的磁盤驅動程序(如IDE、SCSI等),以及常見的文件系統驅動程序(如ext2,iso9660等), firmware有ARC、SRM兩種形式,ARC具有類BIOS界面,甚至還有多重引導的設置;而SRM則具有功能強大的命令行界面,用戶可以在控制臺上使用boot等命令引導系統。ARC有分區(Partition)的概念,因此可以訪問到分區的首扇區;而SRM只能將控制轉給磁盤的首扇區。兩種firmware都可以通過引導MILO來引導Linux,也可以直接引導Linux的引導代碼。
??? “arch/alpha/boot”下就是制作Linux Bootloader的文件?!癶ead.S”文件提供了對 OSF PAL/1的調用入口,它將被編譯后置于引導扇區(ARC的分區首扇區或SRM的磁盤0扇區),得到控制后初始化一些數據結構,再將控制轉給“main.c”中的start_kernel(), start_kernel()向控制臺輸出一些提示,調用pal_init()初始化PAL代碼,調用openboot() 打開引導設備(通過讀取Firmware環境),調用load()將核心代碼加載到START_ADDR(見 “include/asm-alpha/system.h”),再將Firmware中的核心引導參數加載到ZERO_PAGE(0) 中,最后調用runkernel()將控制轉給0x100000的kernel,bootloader部分結束。
??? “arch/alpha/boot/bootp.c”以“main.c”為基礎,可代替“main.c”與“head.S” 生成用于BOOTP協議網絡引導的Bootloader。
??? Bootloader中使用的所有“srm_”函數在“arch/alpha/lib/”中定義。
??? 以上這種Boot方式是一種最簡單的方式,即不需其他工具就能引導Kernel,前提是按照 Makefile的指導,生成bootimage文件,內含以上提到的bootloader以及vmlinux,然后將 bootimage寫入自磁盤引導扇區始的位置中。
?
008 mbr修改
程序一般通過底層磁盤寫入,加驅,的方式來修改MBR
?
009 Bootmgr
bootmgr:啟動管理器,BootMgr是Boot Manager的縮寫,在微軟的Windows Vista,Windows Server 2008和Windows 7操作系統中,其啟動過程與從前的以NT為內核的windows版本略有不同。bootmgr就相當于win nt/win2000/WinXP時代的NTLDR。
電腦加電后,首先是啟動BIOS程序,BIOS自檢完畢后,找到硬盤上的主引導記錄MBR,MBR讀取DPT(分區表),從中找出活動的主分區,然后讀取 活動主分區的PBR(分區引導記錄,也叫dbr,究竟該叫什么,網絡上爭論未休,我們姑且叫它pbr吧),PBR再搜尋分區內的啟動管理器文件 BOOTMGR,在BOOTMGR被找到后,控制權就交給了BOOTMGR。BOOTMGR讀取\boot\bcd文件(BCD=Boot Configuration Data ,也就是“啟動配置數據”,簡單地說,windwows7下的bcd文件就相當于xp下的boot.ini文件),如果存在著多個操作系統并且選擇操作系 統的等待時間不為0的話,這時就會在顯示器上顯示操作系統的選擇界面。在我們選擇啟動WINDOWS7后,BOOTMGR就會去啟動盤尋找 WINDOWS\system32\winload.exe,然后通過winload.exe加載windows7內核,從而啟動整個windows7系 統??梢园堰@個過程簡單地概括為:BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->內核加載 -->整個windows7系統
可以說,bootmgr就相當于win nt/win2000/WinXP時代的NTLDR。NTLDR是win nt/win2000/WinXP中的引導文件,是一個隱藏的,只讀的系統文件,位置在系統盤的根目錄,它的主要職責是解析Boot.ini文件,用來裝載操作系統。一個值得注意的變化是,Windows 7啟動管理器是按空格鍵而不是按F8功能鍵調用。 F8鍵依然具有調取高級啟動選項菜單的功能。 為了保持一個可擴展固件接口系統,也為了使版本最高的啟動管理器負責管理所有的操作系統,使啟動管理器具備向下兼容性、而不是向上兼容,Windows啟動管理器對已安裝的所有操作系統統一列為一個可供選擇的菜單,在配置 Windows Vista/Server 2008 與 Windows 2000/XP/Server 2003 的多系統共存時,BOOTMGR 將全面負責計算機的啟動管理工作,NTLDR 將淪為 BOOTMGR 的替補。舉個例子,假設我們配置了 Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003 四個操作系統的共存,BOOTMGR 啟動菜單并不會把 Windows XP 與 Windows Server 2003 分別列在啟動菜單里,而是將它們統一顯示為“早期版本的 Windows”。
啟動配置數據(BCD)是一種用于啟動時的配置數據固件獨立數據庫。它取代了NTLDR中的boot.ini,是由微軟的新Windows啟動管理器使用。啟動配置數據 (BCD) 存儲包含啟動配置參數,并在 Microsoft(R) Windows Vista? 和 Microsoft(R) Windows Server? 2008 操作系統中控制操作系統的啟動方式。這些參數以前位于 Boot.ini 文件中(在基于 BIOS 的操作系統中)或穩定 RAM (NVRAM) 項中(在基于可擴展固件接口的操作系統中)。通過在 BCD 存儲中添加、刪除、編輯和附加項,可以使用 Bcdedit.exe 命令行工具來影響在預操作系統環境中運行的 Windows(R) 代碼。Bcdedit.exe 位于 Windows Vista 分區的 \Windows\System32 目錄中。創建 BCD 旨在為描述啟動配置數據提供一種改進的機制。隨著新固件模型 [例如,可擴展固件接口 (EFI)] 的發展,用戶需要一個可擴展且可互操作的接口以提取底層固件。這一全新的設計為 Windows Vista 中的多種新功能(例如,啟動修復工具和多用戶安裝快捷方式)提供了支持。
微軟的新一代操作系統Windows 7,然而,這個 7 并不是代表 Windows 7 的核心版本已經從 Windows Vista 的 NT 6 升級至 NT 7,而只是代表 Windows 7 是微軟正式發行的桌面 Windows 第七代產品而已。Windows 7 真正的核心版本號僅僅是 NT 6.1,Windows 7 與 Windows Vista 的關系好比是 Windows XP(NT 5.1)與 Windows 2000(NT 5.0)。時隔多年,Windows 又一次與我們玩起了文字游戲,以至于有人將 Windows 7 戲稱為“NT 6.1 = Windows 非常 6+1 = Windows 7”。 為了更為直觀地理解 Windows 7 = NT 6+1,不妨從 Windows 啟動管理器的層面看待這個問題。與容易混淆的 Windows 正式產品名稱相比,啟動管理器一直是嚴格按照 Windows 系統的核心版本加以區分的。這是由于在配置多重操作系統共存時,必須由版本最高的啟動管理器負責管理所有的操作系統,啟動管理器只具備向下兼容性、不具備向上兼容性。因此,啟動管理器的版本必須嚴格按照高低先后的順序正確排列,而不能像 Windows 的正式名稱一樣胡亂設置,否則便有可能無法正確配置多重操作系統共存。
例如,Windows 2000/XP/Server 2003 之所以都叫做 NT 5.X,是因為它們的啟動管理器全部都是 NTLDR 與 BOOT.INI。在配置 Windows 2000/XP/Server 2003 彼此之間的多系統共存時,每一個操作系統都是由 NTLDR 與 BOOT.INI 統一管理的,大家是平起平坐的關系。而做為 NT 6.X 的 Windows Vista/Server 2008 則采用了 BOOTMGR 與 BCD 的新式啟動管理器,在配置 Windows Vista/Server 2008 與 Windows 2000/XP/Server 2003 的多系統共存時,BOOTMGR 將全面負責計算機的啟動管理工作,NTLDR 將淪為 BOOTMGR 的替補。舉個例子,假設我們配置了 Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003 四個操作系統的共存,BOOTMGR 啟動菜單并不會把 Windows XP 與 Windows Server 2003 分別列在啟動菜單里,而是將它們統一顯示為“早期版本的 Windows”。只有做為 NT 6.X 的 Windows Vista 與 Windows Server 2008 才有資格在 BOOTMGR 啟動菜單中以獨立選項的姿態出現。我們只有選擇了“早期版本的 Windows”選項,由 BOOTMGR 將啟動控制權移交給 NTLDR 并自動切換為 NTLDR 菜單,這時才可以繼續選擇需要啟動 Windows XP 還是 Windows Server 2003。換言之,NTLDR 啟動菜單就像是 BOOTMGR 啟動菜單的子菜單一樣。
現在我們再來看一下 Windows 7,當我們在安裝有 Windows Vista/Server 2008 的計算機中安裝了 Windows 7 后,Windows 7 會將自己添加在 BCD 里,與原有的 Windows Vista/Server 2008 實現共存,BOOTMGR 啟動菜單將顯示 Windows 7、Windows Vista/Server 2008 及早期版本的 Windows(如果有的話)三個選項。換言之,Windows 7 采用的啟動管理器依然是 BOOTMGR 與 BCD,它與 Windows Vista/Server 2008 是一個平起平坐的關系。
假如 Windows 7 的核心版本叫做 NT 7 的話,那么它應該拿出一個版本比 BOOTMGR 與 BCD 更高的新啟動管理器才對,由這個新的啟動管理器接管 BOOTMGR 與 BCD 的工作。當然,目前在現實中是不存在這樣一個啟動管理器的,我們不妨將其假設為 Loader v7。那么,當我們安裝了 Windows NT 7 系統后,Loader v7 將自動取代 BOOTMGR 與 BCD 負責計算機的啟動管理,到時候只有符合 NT 7.X 版本的 Windows 系統才有資格以獨立選項的姿態出現在 Loader v7 菜單中,Windows Vista/Server 2008 將被統一顯示為“早期版本的 Windows”、Windows XP/Server 2003 則將被顯示為“更早期版本的 Windows”(當然,如果幾年以后真的有 Loader v7,到時它究竟還能否向下兼容 Windows XP/Server 2003 恐怕很難說了)。
現在,Windows 7 雖然正式名稱叫做 7,但是它卻并沒有拿出這樣一款更高級的 Loader v7 啟動管理器,依然只能依靠 BOOTMGR 與 BCD、同 Windows Vista/Server 2008 平起平坐,因此 Windows 7 的核心版本號還沒有資格提升到 NT 7 的高度,最多只能叫做 NT 6.1 了。雖然現在 Windows 7 僅僅放出了一個預覽版,在正式發行前會有什么變化還不好說,但從目前核心版本號已經確定為 NT 6.1 的情況來看,筆者認為 Windows 7 的啟動管理器不會有什么大變了。可以預見在今后的三五年內,我們的計算機都將長期使用 BOOTMGR 與 BCD。就像 Windows 2000/XP/Server 2003 可以并列在一起成為 NT 5.X 系列一樣、Windows Vista/Server 2008(包括將來的 R2)/Windows 7 也可以并列在一起組成一個相對完整的 NT 6.X 家族了。
其實,在 Windows 7 核心版本號確定之前,筆者個人還是非常希望 Windows 7 能夠設計新的啟動管理器取代 BOOTMGR 與 BCD,真正成為 NT 7 的?,F有的 BOOTMGR 與 BCD 雖然已經很好用,但有一個最大的缺陷就是它始終還是基于純字符界面的、不是一個支持鼠標操作的 GUI 界面,叫做 Windows 未免有些名不副實。其它操作系統可是早就實現圖形方式的啟動管理器了,這不得不說是一個遺憾。試想如果開機自檢后可以出現一個圖形化的啟動界面,通過鼠標點擊按鈕選擇操作系統以及安全模式等選項該有多好,期待 NT 7 將來可以實現。目前只有使用 ERD Commander 等第三方啟動管理器軟件才可以實現這個目的了.
?
10 Boot.ini
boot.ini
百科名片
Boot.ini文件來確定計算機在重啟(引導)過程中顯示的可供選取的操作系統類別。Boot.ini在缺省狀態下被設定為隱含和系統文件屬性, 并且被標識為只讀文件。
簡介
Windows XP主要依賴Boot.ini文件來確定計算機在重啟(引導)過程中顯示的可供選取的操作系統類別。Boot.ini在缺省狀態下被設定為隱含和系統文件屬性, 并且被標識為只讀文件。
Windows 2000、Windows XP、Windows Server 2003主要依賴Boot.ini文件來確定計算機在引導過程中顯示的可供選取的操作系統類別。
當我們在電腦中安裝了多系統(如Windows 98和Windows XP)之后,每次啟動計算機時都會出現一個系統引導菜單,在此選擇需要進入的系統后回車即可。這個引導程序名為Boot.ini,在安裝Windows 2000(XP)時程序自動被安裝,使用它我們可以輕松對電腦中的多系統進行引導,還可以通過該引導文件,設置個性化的啟動菜單。
操作方法
Boot.ini文件位于C盤根目錄下,是一個隱藏文件,在“運行”中輸入“c:\boot.ini”即可啟動該文件。
如果想對boot.ini文件進行修改,請這樣做:
為確保在Windows Explorer中看到Boot.ini文件,
“工具”——“文件夾選項”——“查看”菜單上選擇“顯示隱含文件和文件夾”,并將“隱藏受保護的操作系統文件(推薦)”的勾去掉,再應用,確定;更改boot.int前,右擊boot.int——“屬性”,去掉“只讀” 。
除了直接編輯boot.ini文件外,還可以借助命令行工具bootcfg.exe對Boot.ini文件執行編輯操作,您可針對系統等待時間(Windows在選擇缺省操作系統前所等候的時間)進行修改, 并在現有基礎上添加新的供選項目。
如需啟動bootcfg.exe工具, 請依次執行下列操作步驟:
按“Windows鍵+R”(也就是“開始”-“運行”),在提示框中輸入"cmd"(注意,不輸入引號),進入“命令提示符”,在命令行狀態下輸入bootcfg可以查詢當前boot.ini文件的詳情。
執行bootcfg /?來查看相關參數功能。
1.自定義延遲時間
延遲時間是系統啟動引導菜單后在設定的延遲時間內用戶沒有進行任何操作時,進入默認的操作系統。
系統默認的延遲時間為30秒,如果感覺默認的延遲時間過長,可以輸入自己需要的延時時間,如10秒。
設置時,首先打開Boot.ini文件(注意要去掉該文件的隱藏、只讀屬性),隨后在[boot loader]字段下找到“timeout=”語句,將其中的30,改為10即可。
我們還可以在“系統配置實用程序”中對其進行修改。在“開始/運行”中鍵入“msconfig"命令,在彈出的“系統配置實用程序”中單擊“Boot.ini”標簽,在“Boot.ini”界面中的“超時XX秒”項中輸入需要的延時時間即可。
2.自定義顯示內容
在多系統啟動時,有一個操作系統選擇列表,這些列表顯示的是電腦中所有操作系統的名稱,如:Microsoft Windows XP Professional。
我們可以對這些顯示內容進行修改,加載一些個性化的設置。
打開“boot.ini”文件,找到[operating systems]字段,該字段是顯示當前操作系統列表,
其格式為multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
后面引號中的部分就是系統啟動時顯示的內容,只要將引號中的這些內容更改為自己需要的文字即可。
3.定義默認啟動系統
裝了多系統后,boot.ini會將其中一個系統設置為默認啟動系統,如Windows XP,在超過延遲時間后將自動引導默認的系統啟動。
我們可以根據需要將默認的啟動系統更改為其它的系統(如Windows 98),如果不想直接修改boot.ini文件的話,可以這樣做:
右鍵單擊“我的電腦”,選擇“屬性”,在系統屬性對話框中單擊“高級”選項,隨后在下面的“啟動和故障恢復”項中選擇“設置”按鈕,彈出一個“啟動和故障恢復”對話框,單擊“系統啟動”項中的默認操作系統下拉菜單,選擇一個需要的系統,單擊“確定”即可;
也可以在“系統配置實用程序”中進行設置,選中想要設為默認的操作系統,點擊下面的“設為默認”即可。
4.加載啟動參數,更改啟動畫面
boot.ini在引導多系統啟動時提供了很多的參數命令,這些啟動參數可以得到不同的啟動效果。
boot.ini在默認的情況下加載的是/fastdetect參數,表示啟動時不檢查串行口和并行口。
其實我們可以更改為其它參數,更改時首先在“boot.ini”中選擇需要更改的系統列表,隨后將該系統中的參數/fastdetect改為相應的參數值即可。以后再啟動該系統就會加載一些設置信息或畫面。我們以可以在“系統配置實用程序”中對一些參數進行設置,切換到“boot.ini”選項,先選中需要更改的系統,隨后在“啟動選項”下端勾選需要的啟動參數即可,此對幾個常用參數加以說明:
SAFEBOOT:安全啟動,只啟動HKLM\System\CurrentControlSetControl\SafeBoot中的驅動程序和服務,其后可跟三個參數Minimal、Network或Dsrepair。
Minimal和Network允許在網絡連接下啟動系統;Dsrepair要求系統從備份設備中調入活動目錄的設置,還有一個選項是Minimal(AlternateShell),它讓系統調入由HKLM\System\CurrentControlSetSafeBoot\AlternateShell指定的SHELL程序,而不使用默認的Explorer。
/NOGUIBOOT:不加載VGA驅動程序,也就不會顯示啟動過程和失敗時的藍屏信息。
/BOOTLOG:將日志寫入Nnbtlog.txt文件。
/BASEVIDEO:使用標準VGA方式啟動,這種方式主要用于顯示驅動程序失效時。
/SOS:在調入驅動程序名時顯示它的名稱,因驅動問題而無法啟動時使用比較好。
通過以上設置我們就可以輕松設置啟動菜單了!
FAQ:
boot.ini文件丟失怎么辦?
通過手動在C盤創建一個boot.ini文件
一般的XP下面的boot.ini文件為:
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer
然后把此文件保存為boot.ini文件即可。
或者,把C:\Windows\pss下的boot.ini.backup復制到C盤下,去掉.backup擴展名即可。
更改內容
如果您需要更改boot.ini文件的內容,可以這樣:
1. 單擊開始按鈕,單擊控制面板,然后雙擊系統。
2. 單擊高級選項卡,然后單擊“啟動和故障恢復”下的設置。
通常,boot.ini 文件包含以下數據:
[boot loader]
timeout=30
default=scsi(0)disk(0)rdisk(0)partition(1)\winnt
[operating systems]
scsi(0)disk(0)rdisk(0)partition(1)\winnt = "Windows NT" /NODEBUG C:\ = "Previous Operating System on C:\"
這個文件分為引導加載部分(boot loader)和操作系統部分(operatingsystems)兩大塊。在引導加載部分,timeout=xx表示等待用戶選擇操作系統的時間,默認是30秒;default=xxxxx表示缺省情況下系統默認要加載的操作系統路徑,表現為啟動時等待用戶選擇的高亮條部分。在操作系統部分,則列出了所有的操作系統路徑和清單,以供用戶選擇。[1][2]
數據含義
下面的列表描述了 Boot.ini 文件中數據的含義:
? “timeout”指定在選擇默認的操作系統之前 Windows 等待的時間
? “default”指定默認的操作系統。
? “scsi(0)”表示主控制器(通常也是唯一的控制器)負責此設備。如果有兩個 SCSI 控制器并且磁盤與第二個控制器相關聯,則第二個控制器稱為“scsi(1)”。
如果系統使用 IDE、增強的 IDE (EIDE) 或增強的小型設備接口 (ESDI) 驅動器,或者如果系統使用沒有內置 BIOS 的 SCSI 適配器,請將“scsi”替換為“multi”。
? “disk(0)”指要使用的 SCSI 邏輯單元 (LUN)。它可以是獨立的磁盤,但是大多數 SCSI 設置對每個 SCSI ID 只有一個 LUN。
? “rdisk(0)”指物理磁盤 1
? 本例中的“partition(1)”是計算機中第一個驅動器上的唯一分區。如果有兩個分區(C 和 D),則分區 C 為 partition(1),分區 D 為 partition(2)。
? 包含多重引導方式的參數(如果有的話)要求檢查 Winnt 文件夾以從指定的 SCSI 控制器的磁盤和分區進行引導。
? “/NODEBUG”指定沒有監視任何調試信息。調試信息僅對程序開發人員有用。
? 您可以添加 /SOS 選項以在加載驅動程序時顯示驅動程序名。默認情況下,OS Loader 屏幕僅顯示進度點。
? “Previous Operating System on C:\”表示“上一個操作系統”是 MS-DOS,因為“C:\”是 MS-DOS 路徑。
詳解
打開
默認的情況下這個文件是隱藏的,準確路徑是c:\boot.ini,可以用記事本打開這個路徑,也可以在“運行”中輸入“c:\boot.ini”啟動該文件。
常用的方法是去掉隱藏后用記事本打開,“資源管理器”→“工具”→“文件夾選項”→“查看”去掉“隱藏……”前面的√,“隱藏文件和文件夾”選“顯示……”這樣就去掉了隱藏,可以在c:\看到boot.ini文件了。
修改
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /nodetect /noguiboot
這是我的win2003的boot.ini文件,我就以我的這個來作示范
timeout=0延遲時間設置
延遲時間是系統啟動引導菜單后在設定的延遲時間內用戶沒有進行任何操作時,進入默認的操作系統。
默認設置是30,如果你只有一個系統的話就設置為0,多系統的話就根據自己的情況設置一個時間。
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS默認系統
默認系統就是延遲時間到了后自動進入的系統
我們經常修改的是partition(1)\WINDOWS這一塊
partition(1)所指的就是第1個分區,通常也就是c:盤,WINDOWS就是你的系統文件夾。
如果你要默認的操作系統是d:盤的XP,那么這一塊的內容就是partition(2)\WINDOWS
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /nodetect /noguiboot系統列表
在這個位置列上你的所有操作系統(一行一個系統)
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS這一塊和上面“默認系統”的修改方法一樣
=""""中間的內容就是開機顯示列表時本系統的名稱,可以任意修改,而且還支持中文!
/nodetect /noguiboot這部分是啟動參數,在"后面加一個半角空格/參數,可以加多個。下面是各項參數的詳細解釋。
/fastdetect:快速檢測,很多網站都推薦修改為/nodetect
/SAFEBOOT:安全啟動,只啟動HKLM\System\CurrentControlSetControl\SafeBoot中的驅動程序和服務,其后可跟三個參數Minimal、Network或Dsrepair。Minimal和Network允許在網絡連接下啟動系統。而Dsrepair要求系統從備份設備中調入活動目錄的設置。還有一個選項是Minimal(AlternateShell),它讓系統調入由HKLM\System\CurrentControlSetSafeBoot\AlternateShell指定的SHELL程序,而不使用默認的Explorer。
/NOGUIBOOT:不加載VGA驅動程序,也就不會顯示啟動過程和失敗時的藍屏信息。
/BOOTLOG:將日志寫入Nnbtlog.txt文件。
/BASEVIDEO:使用標準VGA方式啟動,這種方式主要用于顯示驅動程序失效時。
/SOS:在調入驅動程序名時顯示它的名稱,因驅動問題而無法啟動時使用比較好。
?
(二)開始工作
// 先想出了一種最簡單,最有可能成功安裝的方案。
思路是把多系統的安裝變為單系統的安裝,最后用MBR引導。
?
1.?????? 嘗試輪流激活分區, 按ghost 7 + ghost XP+CentOS順序安裝
01.在安裝時,首先分區,激活sda1,裝上Ghost 7在sd1中,
02.然后,激活sda2, 裝上ghost xp在sd2中,
03.直接裝centos在sda3上,
04.直接使用centos安裝中的MBR引導或激活sda3,在那扇區上引導,
或直接用Spfdisk在MBR上引導。
Yeah,方案試驗成功!!!(建議裝系統前隱藏其它主分區,到最后才顯出來)
?
// 嘗試換一下順序,猜想結果是一樣的,不過還是想試試。
2.?????? 嘗試輪流激活分區, 按ghost 7 + ghost XP+CentOS順序安裝
01在安裝時,首先分區,激活sda2,裝上Ghost 7在sd2中,
02然后,激活sda1,裝上ghost xp在sd1中,
03直接裝centos在sda3上,
04直接使用centos安裝中的MBR引導或激活sda3,在那扇區上引導,或直接用Spfdisk在MBR上引導。
其實跟上面的方法是一樣的,成功安裝了。
//打算不換激活分區,直接用MBR引導,本打算也能行的,終于問題來了。
3.?????? 將sd3作為激活分區,直接按CentOS+ ghost 7 + ghost XP 順序安裝
嘗試:在2的基礎上,即sd1 XP(激活)+sd2 7 +sd3 CentOS
01 格化sd1與sd2,不清空MBR,
02? sd1為激活狀態,將ghost 7還原到sd2,用(第2大步裝好的)CENTOS的MBR引導進入sd2,完成剩下的安裝。
1.?????? 再將GHOST XP還原到sd1,并用MBR引導進入sd1完成安裝。
?
——Yeah,Yeah,有問題出來啦!在MBR那里引導成功了,但是安裝失敗。
情況如下:
1.現sd1為激活狀態, 將Win 7的安裝鏡像還原到sd2后,用MBR 成功進入sd2,但繼續安裝時顯示丟失文件,安裝系統失敗。
//現為探究是不是非激活分區的原因,繼續試驗。
2.在以上基礎中,將sd2設為激活狀態,繼續用MBR進入sd2,出現“正在啟動”,但安裝過程依然失敗。
//懷疑是否曾進入過一次安裝失敗,導致即使把sd2設為了激活也不能成功裝下去。
3.于是,在sd2為激活的狀態下,再GHOST到sd2做測試,OK,這次,啟動且安裝成功。
//為了進一步證明推測(安裝分區激活狀態才能成功地安裝),現再做一次測試。
4.格化sd1 &&sd2,將sd3設為激活。將GHOST安裝鏡像還原到sd2中,啟動成功(后來才發現,原來是失敗了,只是我沒有耐心等到中間過程,這方法不行),失敗。
//奇怪了,這次怎么會成功了呢?推測錯了?于是:
5.再來,將sd2設為激活,格化sd2,系統用ghost方式,裝到sd1。呃~~一次比一次奇怪,這次“Windows安裝程序無法將windows配置為在此計算機的硬件上運行”。
6.感覺很奇怪,于是就再重復第五步的步驟試試,哦,幸好是一樣的問題,不然的話真的不能用常理來解釋的了。
//會不會是光盤問題?于是我換了另一個光盤.
6.重復第五步的步驟,還是同樣的情況。
//再假設會不會是安裝方法問題(用Ghost手動還原鏡像),沒什么理由吧,因為都是Ghost,只是一個是手動,一個是自動。
7.于是直接選第一選項,也重復第五步的步驟,試試,嗯,同樣的問題產生了。排除光盤的可能。
//這時還是有點相信自己的直覺(安裝分區激活狀態才能成功地安裝),于是就再測試。
8.設sd3為激活分區,再直接用系統安裝碟的第一選項還原到C盤安裝。
設sd1為激活,再繼續啟動安裝,失敗。
9.最后,設sd1為激活,重新用光盤安裝鏡像,成功。
10.還是有點不放心,現再做一次試驗,設sd1為激活,還原Ghost xp 安裝鏡像到sd2上,Yeah,安裝失敗!出現了Error:Can not delete output file C:\Program Files\....跳過了這一步后,到了注冊組件一步,“…注冊失敗”,出現了很多什么什么注冊失敗。OK,現基本明白了。
?
//終于,搞了這么長一段時間,問題總算是想通了很多。
——問題分析&&結論推測:
還原了GHOST在非激活分區后,繼續安裝進程,ghost版的系統在解封裝過程中,猜測它喜歡將文件直接COPY或注冊在激活分區上,但我還原的分區又不是激活分區,所以,系統不能成功地安裝。
?
——問題解決方案。
如何可以實現不調激活分區地安裝系統?現想到一個解決方法:
1.先在激活分區上完整地裝好一個WINDOWS,再用GHOST備份(現稱為backup.gho)。
2.直接在該激分區上用Ghost方式裝另一個系統,
3.將backup.gho還原到另一分區上。
4.最后再正常安裝第三個系統。
現根據方案現嘗試:
將成功安裝的系統恢復到sd1,sd2上。用sd3的第一扇區作引導,引導成功,啟動成功。
?
//傳說安裝版的Windows光盤裝起來會覆蓋MBR,重建起屬于自己的MBR和分區表。那么,安裝版的多系統,怎么多裝才能成功引導呢?于是…下面是試驗過程。
1.?????? 在sd3為激活狀態,sd1和sd2同時都成功地裝上了XP的基礎上,
2.?????? 我嘗試直接把安裝版的win7裝在sd2上,看會有什么效果。果然,重啟一次后發覺,主引導區真的被清了,裝完之后,能啟動的剩下win7。
3.?????? 之后,我再做多一次試驗,把sd2清空,在sd1裝上XP,再在sd1上裝安裝版的win7,xp的系統文件夾被win7變成了windows.old文件夾,啟動項不出來?
4.?????? 這時,我不管,什么都不刪,即現sd1上有xp和7,我繼續裝,再在sd1里面裝上一個安裝版的xp,嘿嘿,幾個系統會不會打架呢?呃~win7的引導又不見了,剩下的是xp,嗯嗯,這下子明白了,只要是安裝版的windows它都會覆蓋MBR的,我再試,直接繼續在sd2裝上安裝版的win7,在sd2中,終于,這次,系統默認生成了三個選項,一是windows xp的,二是win 7(上次裝的),第三個就是這次裝的win 7,嗯嗯,這樣的話,結論就可以出來啦。
//裝安裝版的windows會將MBR清空再將自己要安裝的分區設為激活,之后,它會在自己的分區上建立引導,如果想實現雙系統都共存且不用任何工具的安裝,可以先把一個系統裝在一個盤上,再把Windows7裝在另一個盤上就可以了,另外提醒一點,就是Windows xp的boot.ini是不會引導Windows7的,除非用了什么工具,兩個系統的不同引導原理就知了,Windows7用的是bootmgr接管系統啟動模式。
//剛剛說這么多,忘了說一點,我會把centos有最后安裝,因為它安裝時作引導很方便,所以做試驗的時候直接忽略它了。
//當然,除了安裝方法的改變外,還可以直接改Windows中的boot.ini或bootmgr,或用修復工具在windows中對啟動項進行修復,easybcd,wingrub之類的軟件,不過這里我就不做測試,這個沒有必要去深究。如果想直接在Linux修改引導方式,這里也先不深究了,因為,我看過書上有專門講Linux引導的,用了幾十頁去介紹,到時候現慢慢玩也不遲。
//還有,如果大家想安四個系統,五個系統,六個系統,N個系統,一樣的裝法,最簡單的可以把多系統當作單系統裝,裝完以后備份,到時恢復到不同的分區上,包括邏輯分區也可,最后想辦法創好引導就好了。
?
—————————試驗完畢,終于可以讓自己的電腦休息一下啦!——————————
暈啊~~一天連續裝N次系統,幸好是冬天,不然電腦不用要了,太熱了電腦都罷工去了。
?
最后,終于想做的測試做完了,重新完整地裝上自己的機,
先把硬盤完全清了,MBR清了,主引導也清了,硬盤里全空了,NOW,重新分配。
?
Amd250+kingston2G*2(dual)+ M4A785板+WD500GB+航嘉冷靜王V2.31 +SAMSUNG刻
?
總大小,465.8GB
硬盤???????? 465.8GB?
(P+P+P)(70G)+(E)(390G)??????????
sd1?? 30GB??????? Windows 7? 64bit
sd2?? 20GB??????? Windows XP 32bit
sd3?? 20GB??????? CentOS 5.3 (Linux)
?
sd5?? 30GB??????? software
sd6?? 249GB????? file
sd7?? 50GB??????? process
sd8?? 50GB??????? backup+隱
?
sd9 ?????? 3GB /home
sd10 ???? 2GB linux swap??
sd11????????? 2GB /var
sd12 ???? 1GB /tmp
?
采用將多系統變為單系統安裝的方法sd1+sd2+sd3+SPFDISK,安裝完成。
?
終于,完工啦!
?
總結
以上是生活随笔為你收集整理的01_多操作系统课题研究[2011-01-21]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVAWeb富文本编辑器文件上传操作
- 下一篇: windows server 2008