巧用NT Loader實現多作業系統啟動 (轉)
巧用NT Loader實現多操作啟動 (裝載)
工作原理
我們知道,的引導扇區的內容決定了系統啟動的方式,但是在多系統引導的情況下
,引導扇區的內容又取決於各系統的順序。如果首先安裝的是DOS,那麼引導扇區就是D
OS引導扇區,它執行時將載入IO.SYS,完成正常的DOS啟動工作。如果在DOS上又安裝了Wind
ows NT,那麼原先的DOS引導扇區將被NT的引導扇區覆蓋,但是為了實現與DOS的雙引導,NT
並未將其內容刪除,而是儲存在一個名為BOOTSECT.DOS的中。NT引導扇區執行時不再裝
入IO.SYS,而是裝入NTLDR,後者將顯示一個啟動選單,提示您是啟動NT還是啟動DOS。如果
選擇了啟動DOS,那麼NTLDR將執行檔案BOOTSECT.DOS,也就是儲存的DOS引導扇區,正常
的DOS啟動工作。如果此後又安裝了 95,那麼它在保持NT的啟動扇區不變的情況下,
用自己的引導扇區重寫檔案BOOTSECT.DOS,同時安裝自己的IO.SYS和MSDOS.SYS,而把DOS的
IO.SYS和MSDOS.SYS更名為IO.DOS和MSDOS.DOS。此時啟動選單中的相應項也由“MS-DOS”變
成了“ Windows”,如果選擇它,NTLDR同樣執行BOOTSECT.DOS,但是此時這個文
件的內容已不是DOS的引導扇區,而是Win 95的引導扇區,它將直接啟動Win 95而不是DOS。
從上面可以看出,NT與DOS以及Win 95的雙引導實際上是由NTLDR根據的不同選擇執
行不同的引導扇區檔案來完成的。因此,我們只要找到所有要啟動的引導扇區檔案
即可完成多作業系統的啟動。不過,還有一個小問題需要考慮,就是IO.SYS和MSDOS.SYS的更
名問題。我們知道,MS-DOS和Windows 95都使用檔案IO.SYS和MSDOS.SYS,為了防止衝突,
啟動DOS時,Win 95的IO.SYS和MSDOS.SYS將分別更名為WINBOOT.SYS和MSDOS.W40,啟動Win
95時,DOS的IO.SYS和MSDOS.SYS將更名為IO.DOS和MSDOS.DOS。在DOS和Win 95雙引導系統中
,這些工作都是由Win 95的IO.SYS來完成的。因此,在用NTLDR來實現多作業系統啟動時必須
提供一種方法來完成這種更名工作,否則將不能正常啟動DOS或者Win 95。幸好,NTLDR實現
時考慮了這個問題,專門設定了兩個開關引數:/Win 95和/Win 95DOS。
具體步驟
首先,必須做好安裝前的準備工作,包括:上的資料(非常重要);製作NT安
裝磁碟(插入NT的CD-ROM,在i386目錄下執行WINNT32/OX);如果需要安裝,那麼制
作Linux的Boot盤和盤。
其次,也是最關鍵的一步,就是獲得不同作業系統的引導扇區檔案。NT就不必說了,既
然是圍繞NT來實現多系統引導,系統的引導扇區就是NT的引導扇區。下面筆者主要討論一下
如何獲得DOS、Win 95和Linux的引導扇區檔案。
1. DOS
首先安裝DOS,然後安裝NT,此時C盤根目錄下的BOOTSECT.DOS檔案就是DOS的引導扇區文
件。
2. Win 95
在上一步的基礎上安裝Win 95。安裝之前首先備份剛獲得的DOS引導扇區檔案,安裝成功
之後,C盤根目錄下的BOOTSECT.DOS檔案就是Win 95的引導扇區檔案,將其儲存為BOOTSECT.
W40,並將備份的DOS引導扇區檔案重新命名為BOOTSECT.DOS。
3. Linux
安裝Linux,然後在Linux系統下執行以下命令:
dd if=/dev/hda? of=/mnt/c-drive/bootsect.lnxbs=512 count=1
其中/dev/hda?是Linux的引導分割槽,/mnt/c-drive是C盤在Linux中的mount點。然後更
改/etc/lilo.conf檔案,增加一行:
boot=/mnt/c-drive/bootsect.lnx
讓LILO將Linux的引導扇區寫到檔案bootsect.lnx中。
由於Linux安裝時重寫了C盤的引導扇區,NT將不能正常啟動,所以必須對其進行修復。
具體步驟為:首先用DOS啟動盤引導系統,然後執行下列命令:
fdisk /mbr刪除主開機記錄,最後再用NT安裝盤修復NT以恢復NT的主引導扇區(關於如
何修復NT,有興趣的讀者可以參見有關文章)。
至此,我們獲得了所有要啟動作業系統的引導扇區檔案,而且正確修復了NT的引導扇區
,下一步就是修改NT的BOOT.INI檔案,最終實現多作業系統引導了。
修改之前的BOOT.INI大致如下所示:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)WINNT
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)WINNT=″
Workstation Version 4.00″
multi(0)disk(0)rdisk(1)partition(1)WINNT=″Windows NT
Workstation Version 4.00 [VGA mode]″ /basevo /sos
C:=″Microsoft Windows″
修改之後它將變為:
(相同部分略)
C:bootsect.w40=″Windows 95″ /WIN95
C:bootsetc.dos=″MS-DOS″ /WIN95DOS
C:bootsect.lnx=″Linux″
其中/WIN95和/WIN95DOS的作用我們前面已經進行了討論。
最終結果
在完成了所有操作之後重啟系統,NT Loader將顯示以下啟動選單供您選擇:
″Windows NT Workstation Version 4.00″
″Windows NT Workstation Version 4.00 [VGA mode]″
″Windows 95″
″MS-DOS″
″Linux″
根據選擇的不同,系統啟動不同的作業系統,從而實現了多作業系統的啟動。
總 結
以上方法是筆者實踐的總結,已在多臺PC機上實現,但是鑑於實際中的情況複雜多
變、各個作業系統版本眾多,因此眾多玩家在試驗時還是要小心為妙,多作備份。
(塞外風情站 bbs.imu.edu.cn)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987563/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 無線多作業系統啟動之uInitrd階段NFS掛載篇作業系統UINFS
- 關於雙系統選單,NT系統啟動過程
- 也談多作業系統並存(Win98和WinMe) (轉)作業系統
- 【系統安全003】NT驅動框架框架
- 利用Windows 2000 OS Loader實現Linux啟動選項(轉)WindowsLinux
- Win98、NT和Linux的共存 NT的OS Loader ntosknl.exe (轉)Linux
- 加速啟動WindowsXP作業系統的謬論(轉)Windows作業系統
- 加速啟動Win XP作業系統的謬論(轉)作業系統
- 在NT/2000下實現關機! (轉)
- 用VC實現遠端修改NT帳號 (轉)
- 編寫驅動攔截NT的API實現隱藏檔案目錄 (轉)API
- 如何用一套程式碼執行跨多作業系統應用作業系統
- Cobbler實現自動化安裝作業系統作業系統
- LAB1 啟動作業系統作業系統
- 作業系統啟動的過程作業系統
- FreeBSD系統啟動指令碼(轉)指令碼
- FreeBSD系統啟動過程(轉)
- Debian系統啟動指令碼(轉)指令碼
- 巧用 CSS 動畫實現動態氣泡背景CSS動畫
- Windows Boot Loader是Windows作業系統的一部分,它是引導載入程式,負責啟動Windows作業系統。它位於系統啟動磁碟的特定位置,並在計算機啟動時載入。Boot Loader負責載入作業系統的核心檔案,並引導系統進入正常的執行狀態。Windowsboot作業系統計算機
- TheBestVPN:2019年漏洞最多作業系統是Android作業系統Android
- CpuMemSets在Linux作業系統中的實現(轉)Linux作業系統
- 移動OA系統,開啟現代企業,全新辦公模式模式
- Linux作業系統啟動流程梳理Linux作業系統
- 【作業系統2】作業系統啟動過程與異常/中斷,系統呼叫作業系統
- DeviceDriver Windows NT 驅動程式型別 (轉載) (轉)devWindows型別
- 巧用系統控制檯刪除死頑固病毒(轉)
- 探索作業系統:核心、啟動和系統呼叫的奧秘作業系統
- Amazing!巧用 CSS 視差實現酷炫互動動效CSS
- 多作業系統引導管理工具 多系統引導工具——Smart Fdisk linux win2000 win2k sfdisk (轉)作業系統Linux
- 30天自制作業系統(一)啟動區作業系統
- 巧用 CSS 實現動態線條 Loading 動畫CSS動畫
- 巧用 -webkit-box-reflect 倒影實現各類動效WebKit
- 巧用 background-clip 實現超強的文字動效
- 雙系統的安裝和啟動原理(轉)
- 系統啟動, init
- Android系統啟動流程(四)Launcher啟動過程與系統啟動流程Android
- android應用實現重啟系統Android