1. 摘要

2. NT OS Loader 是如何運作的?

3. 如何安裝 Windows NT 及 Linux 在同一系統上的提示

* 3.1 安裝 Windows NT

* 3.2 分割磁碟

* 3.3 安裝 Linux

* 3.4 Lilo

 

4. Bootpart

5. Linux 部份的工作

6. Windows NT 部份的工作

7. 再做一次

8. 排除問題

9. 其它

* 9.1 參考資料

* 9.2 感謝

* 9.3 回饋

* 9.4 譯註: 以 NT Loader 啟動 FreeBSD

_________________________________________________________________

 

1. 摘要

本文件描述了使用 Windows NT boot loader 來啟動 Linux 的方法. 本過程已

在 Windows NT 4.0 Workstation 版及 Linux 2.0 上測試過.

 

2. NT OS Loader 是如何運作的?

NT OS loader 希望來自其它作業系統的啟動磁區變成一檔案來取用. 它讀入這

檔案並啟動選擇的作業系統,也就是說,或是不同模式運作的 Windows NT 或是

任何其它的作業系統.

 

3. 如何安裝 Windows NT 及 Linux 在同一系統上的提示

3.1 安裝 Windows NT

先試著安裝 Windows NT.如果你想使用 NTFS 作為你 Windows NT 分割區的檔案

系統,記住,目前版本的 Linux 無法取用 NTFS 的分割區. 一個可以讀 NTFS

分割區的 Alpha 版驅動程式可在

[4]http://www.informatik.hu-berlin.de/~loewis/ntfs 找到. 你可建立另外

一個 FAT 分割區作為資料交換用,或是你可以使用 DOS 格式化的軟碟片.

 

3.2 分割磁碟

另外一個 mini-howto 建議不要使用 NT 的「磁碟系統管理員「來建立 Linux 的置

換以及根目錄分割區. 它會留下一些空間.我也建議使用 Linux 的 fdisk.

 

3.3 安裝 Linux

現在從磁片上啟動 Linux,建立置換及根目錄分割區.Fdisk 會將 NTFS 分割區

認為是 HPFS 分割區,這是正常的. 再次從磁片啟動 Linux 並按你的喜好安裝

Linux.

 

在安裝過程中建議你掛上它找到的 HPFS 分割區時: 忽略它.

 

3.4 Lilo

當你做到安裝 Lilo 的部份時,指定你的 Linux 根目錄分割區作為你的啟動裝置

因為你磁碟的主啟動記錄(MBR)現在是 Windows NT 所有. 這表示在你

/etc/lilo.conf 的 root 項目及 boot 項目會有相同的值. 如果你有一個 IDE

硬碟且你的 Linux 分割區是在第二塊分割區上,你 /etc/lilo.conf 的 boot 項

目看起來會像:

 

boot=/dev/hda2

如果你有兩個磁碟機而且你的 Linux 位於第二顆磁碟的第一個分割區上,你

/etc/lilo.conf 的 boot 項目看起來會像:

 

boot=/dev/hdb1

以符合你系統的核心執行 lilo.如果你不確定的話從磁片上啟動以檢查核心.

 

如果你現在無法啟動 Windows NT,你有麻煩了.我希望你已經建立了最近的修復

磁片.

 

4. Bootpart

有一個由 G. Vollant 所寫的 NT 程式叫 bootpasr 可以為你做到下述的兩點.

Bootpart 可在此取得:

[5]http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

 

如果你想知道事情是如何運作的,使用第五及第六節描述的步驟.

 

5. Linux 部份的工作

你必須從磁片上啟動 Linux 直到 NT 部份改好為止.

 

現在你必須從你的 Linux 根目錄分割區中取出啟動磁區. 如果 /dev/hda2 是你

的 Linux 分割區,這個 dd 指令是:

 

# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

如果你的 bootsect.lnx 超過了 512 個位元組那麼就有些事不對勁.

 

現在將檔案 bootsect.lnx 拷貝到一片 DOS 格式化過的磁片中,如果這是你將檔

案傳到 NTFS 分割區內的方法的話.

 

你可以這樣來拷貝

 

# mcopy /bootsect.lnx a:

或者用

 

# mount -t msdos /dev/fd0 /mnt

# copy /bootsect.lnx /mnt

# umount /mnt

6. Windows NT 部份的工作

從磁片上將檔案拷貝到 C:bootsect.lnx. 我不會告訴你怎麼做. (譯註: copy

a:bootsect.lnx c:, 應該會吧.)

 

就像 Linux 下的 lilo.conf, 在 Windows NT 中是 c:boot.ini. 在你編修它之

前用這個指令除去它的系統及唯讀屬性:

 

C:attrib -s -r c:boot.ini

現在用一編輯器更改 boot.ini 檔案,例如 notepad, 像這樣:

 

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINNT=「Windows NT Workstation …

multi(0)disk(0)rdisk(0)partition(1)WINNT=「Windows NT Workstation …

C:BOOTSECT.LNX=「Linux「

在本例中只加入了最後一行.在你儲存 boot.ini 後用這個指令回覆它的屬性:

 

C:attrib +s +r c:boot.ini

在關掉你的 Windows NT 並重新啟動後你應該會看到像這樣的:

 

OS Loader V4.00

請選擇您想要啟動的作業系統:

Windows NT Workstation Version 4.0

Windows NT Workstation Version 4.0 [VGA mode]

Linux

使用↑鍵和↓鍵將您想要的選項反白,

選定後請按 Enter 鍵確認

選擇 Linux 並會看到

 

LILO loading zImage ….

7. 再做一次

每次你 Linux 分割區的啟動磁區被修改後一份新拷貝的 bootsect.lnx 就必須轉

移到 C:BOOTSECT.LNX. 一個例子是當你重新用 lilo 安裝一新的核心時. 因

此你可以看出這樣的系統並不適合用來測試實驗的核心.

 

8. 排除問題

如果事情並不按照預期的運作,用一磁片來檢查可啟動性. 如果 /dev/hdb1 是

你的 Linux 分割區,你的 /etc/lilo.conf 有下列的項目:

 

root=/dev/hdb1

boot=/dev/fd0

插入一磁片並執行 lilo. 現在嘗試從磁片上啟動. 如果你在 /dev/hdb1 上的

Linux 無法被啟動,那麼 NT OS loader 也將無法啟動它. 如果你看到一大堆

01 01 01 01,表示你的 root 磁碟無法取用. 檢查是否你所有的磁碟都被

BIOS 偵測到.

 

如果這磁片可以啟動你的 Linux 分割區,你可以用下面指令取出你的啟動磁區給

NT OS loader 用:

 

# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

你可保留這磁片在你的 Windows NT 安裝出問題時作為你的急救磁片.

 

9. 其它

9.1 參考資料

* The Linux+WindowsNT mini-HOWTO

* The FAQ for FreeBSD 2.X

 

9.2 感謝

* 感謝 Xiaoming Yi 提示這些過程也在除了第一顆磁

碟外的其它磁碟上運作.

* 感謝 Frank Dennler 提供的磁碟技巧.

 

9.3 回饋

任何意見都很歡迎.

 

9.4 譯註: 以 NT Loader 啟動 FreeBSD

因譯者的電腦中除了 Windows NT 4.0 及 Linux 之外,還裝了 FreeBSD 2.2,於

是就仿照上面的做法試試 NT Loader 有沒有辦法啟動 FreeBSD. 我的 FreeBSD

裝在 /dev/sda2, 也就是 FreeBSD 的 /dev/sd0s2. 按照上面的做法我先將

/dev/sda2 的 boot sector 存成一檔案:

 

# dd if=/dev/sda2 of=/bootsect.bsd bs=512 count=1

並將它拷貝到 C: 下.再於 boot.ini 中加入

 

C:BOOTSECT.BSD=「FreeBSD「

不料這個方法竟然失敗了,無法啟動 FreeBSD!

 

一方面覺得失望,一方面又不死心.忽然想到,lilo 也可以拿來啟動 FreeBSD.

於是,又做了下面的實驗,進入 Linux 後,將 /etc/lilo.conf 改為:

 

boot = /dev/fd0

install = /boot/boot.b

vga = normal

other = /dev/sda2

label = FreeBSD

table = /dev/sda

loader = /dev/os2_d.b

放入一格式化過的磁片,再跑 lilo -v.然後將磁片的啟動磁區變成一檔案:

 

# dd if=/dev/fd0 of=/bootsect.bsd bs=512 count=1

並放到 C: 下.移去磁片後重新開機,在 NT Loader 的選單下選擇 FreeBSD,

接著就看到:

 

LILO loading FreeBSD

>> FreeBSD BOOT @ 0×10000: 639/65536 k of memory

Usage: [[0:][fd](0,a)]/kernel][-abcCdhrsv]

Use 1:sd(0,a)/kernel to boot sd0 if it is BIOS drive 1

Use ? for file list or press Enter for defaults

Boot:

我成功了!!

References

1. mailto:reichert@dial.eunet.ch

2. http://www.phys.ntu.edu.tw/~cwhuang/pub/

3. mailto:cwhuang@phys.ntu.edu.tw

4. http://www.informatik.hu-berlin.de/~loewis/ntfs

5. http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm

Linux + NT OS Loader mini-HOWTO 中譯版

 

作者: Bernd Reichert [1]reichert@dial.eunet.ch

譯者: [2]C.W.Huang [3]cwhuang@phys.ntu.edu.tw

v1.11, 2 September 1997 翻譯日期: 11-12 November 1997

_________________________________________________________________

 

本文件描述了使用 Windows NT boot loader 來啟動 Linux 的方法.

_________________________________________________________________

 

1. 摘要

2. NT OS Loader 是如何運作的?

3. 如何安裝 Windows NT 及 Linux 在同一系統上的提示

* 3.1 安裝 Windows NT

* 3.2 分割磁碟

* 3.3 安裝 Linux

* 3.4 Lilo

 

4. Bootpart

5. Linux 部份的工作

6. Windows NT 部份的工作

7. 再做一次

8. 排除問題

9. 其它

* 9.1 參考資料

* 9.2 感謝

* 9.3 回饋

* 9.4 譯註: 以 NT Loader 啟動 FreeBSD

_________________________________________________________________

 

1. 摘要

本文件描述了使用 Windows NT boot loader 來啟動 Linux 的方法. 本過程已

在 Windows NT 4.0 Workstation 版及 Linux 2.0 上測試過.

 

2. NT OS Loader 是如何運作的?

NT OS loader 希望來自其它作業系統的啟動磁區變成一檔案來取用. 它讀入這

檔案並啟動選擇的作業系統,也就是說,或是不同模式運作的 Windows NT 或是

任何其它的作業系統.

 

3. 如何安裝 Windows NT 及 Linux 在同一系統上的提示

3.1 安裝 Windows NT

先試著安裝 Windows NT.如果你想使用 NTFS 作為你 Windows NT 分割區的檔案

系統,記住,目前版本的 Linux 無法取用 NTFS 的分割區. 一個可以讀 NTFS

分割區的 Alpha 版驅動程式可在

[4]http://www.informatik.hu-berlin.de/~loewis/ntfs 找到. 你可建立另外

一個 FAT 分割區作為資料交換用,或是你可以使用 DOS 格式化的軟碟片.

 

3.2 分割磁碟

另外一個 mini-howto 建議不要使用 NT 的「磁碟系統管理員「來建立 Linux 的置

換以及根目錄分割區. 它會留下一些空間.我也建議使用 Linux 的 fdisk.

 

3.3 安裝 Linux

現在從磁片上啟動 Linux,建立置換及根目錄分割區.Fdisk 會將 NTFS 分割區

認為是 HPFS 分割區,這是正常的. 再次從磁片啟動 Linux 並按你的喜好安裝

Linux.

 

在安裝過程中建議你掛上它找到的 HPFS 分割區時: 忽略它.

 

3.4 Lilo

當你做到安裝 Lilo 的部份時,指定你的 Linux 根目錄分割區作為你的啟動裝置

因為你磁碟的主啟動記錄(MBR)現在是 Windows NT 所有. 這表示在你

/etc/lilo.conf 的 root 項目及 boot 項目會有相同的值. 如果你有一個 IDE

硬碟且你的 Linux 分割區是在第二塊分割區上,你 /etc/lilo.conf 的 boot 項

目看起來會像:

 

boot=/dev/hda2

如果你有兩個磁碟機而且你的 Linux 位於第二顆磁碟的第一個分割區上,你

/etc/lilo.conf 的 boot 項目看起來會像:

 

boot=/dev/hdb1

以符合你系統的核心執行 lilo.如果你不確定的話從磁片上啟動以檢查核心.

 

如果你現在無法啟動 Windows NT,你有麻煩了.我希望你已經建立了最近的修復

磁片.

 

4. Bootpart

有一個由 G. Vollant 所寫的 NT 程式叫 bootpasr 可以為你做到下述的兩點.

Bootpart 可在此取得:

[5]http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

 

如果你想知道事情是如何運作的,使用第五及第六節描述的步驟.

 

5. Linux 部份的工作

你必須從磁片上啟動 Linux 直到 NT 部份改好為止.

 

現在你必須從你的 Linux 根目錄分割區中取出啟動磁區. 如果 /dev/hda2 是你

的 Linux 分割區,這個 dd 指令是:

 

# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

如果你的 bootsect.lnx 超過了 512 個位元組那麼就有些事不對勁.

 

現在將檔案 bootsect.lnx 拷貝到一片 DOS 格式化過的磁片中,如果這是你將檔

案傳到 NTFS 分割區內的方法的話.

 

你可以這樣來拷貝

 

# mcopy /bootsect.lnx a:

或者用

 

# mount -t msdos /dev/fd0 /mnt

# copy /bootsect.lnx /mnt

# umount /mnt

6. Windows NT 部份的工作

從磁片上將檔案拷貝到 C:bootsect.lnx. 我不會告訴你怎麼做. (譯註: copy

a:bootsect.lnx c:, 應該會吧.)

 

就像 Linux 下的 lilo.conf, 在 Windows NT 中是 c:boot.ini. 在你編修它之

前用這個指令除去它的系統及唯讀屬性:

 

C:attrib -s -r c:boot.ini

現在用一編輯器更改 boot.ini 檔案,例如 notepad, 像這樣:

 

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINNT=「Windows NT Workstation …

multi(0)disk(0)rdisk(0)partition(1)WINNT=「Windows NT Workstation …

C:BOOTSECT.LNX=「Linux「

在本例中只加入了最後一行.在你儲存 boot.ini 後用這個指令回覆它的屬性:

 

C:attrib +s +r c:boot.ini

在關掉你的 Windows NT 並重新啟動後你應該會看到像這樣的:

 

OS Loader V4.00

請選擇您想要啟動的作業系統:

Windows NT Workstation Version 4.0

Windows NT Workstation Version 4.0 [VGA mode]

Linux

使用↑鍵和↓鍵將您想要的選項反白,

選定後請按 Enter 鍵確認

選擇 Linux 並會看到

 

LILO loading zImage ….

7. 再做一次

每次你 Linux 分割區的啟動磁區被修改後一份新拷貝的 bootsect.lnx 就必須轉

移到 C:BOOTSECT.LNX. 一個例子是當你重新用 lilo 安裝一新的核心時. 因

此你可以看出這樣的系統並不適合用來測試實驗的核心.

 

8. 排除問題

如果事情並不按照預期的運作,用一磁片來檢查可啟動性. 如果 /dev/hdb1 是

你的 Linux 分割區,你的 /etc/lilo.conf 有下列的項目:

 

root=/dev/hdb1

boot=/dev/fd0

插入一磁片並執行 lilo. 現在嘗試從磁片上啟動. 如果你在 /dev/hdb1 上的

Linux 無法被啟動,那麼 NT OS loader 也將無法啟動它. 如果你看到一大堆

01 01 01 01,表示你的 root 磁碟無法取用. 檢查是否你所有的磁碟都被

BIOS 偵測到.

 

如果這磁片可以啟動你的 Linux 分割區,你可以用下面指令取出你的啟動磁區給

NT OS loader 用:

 

# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

你可保留這磁片在你的 Windows NT 安裝出問題時作為你的急救磁片.

 

9. 其它

9.1 參考資料

* The Linux+WindowsNT mini-HOWTO

* The FAQ for FreeBSD 2.X

 

9.2 感謝

* 感謝 Xiaoming Yi 提示這些過程也在除了第一顆磁

碟外的其它磁碟上運作.

* 感謝 Frank Dennler 提供的磁碟技巧.

 

9.3 回饋

任何意見都很歡迎.

 

9.4 譯註: 以 NT Loader 啟動 FreeBSD

因譯者的電腦中除了 Windows NT 4.0 及 Linux 之外,還裝了 FreeBSD 2.2,於

是就仿照上面的做法試試 NT Loader 有沒有辦法啟動 FreeBSD. 我的 FreeBSD

裝在 /dev/sda2, 也就是 FreeBSD 的 /dev/sd0s2. 按照上面的做法我先將

/dev/sda2 的 boot sector 存成一檔案:

 

# dd if=/dev/sda2 of=/bootsect.bsd bs=512 count=1

並將它拷貝到 C: 下.再於 boot.ini 中加入

 

C:BOOTSECT.BSD=「FreeBSD「

不料這個方法竟然失敗了,無法啟動 FreeBSD!

 

一方面覺得失望,一方面又不死心.忽然想到,lilo 也可以拿來啟動 FreeBSD.

於是,又做了下面的實驗,進入 Linux 後,將 /etc/lilo.conf 改為:

 

boot = /dev/fd0

install = /boot/boot.b

vga = normal

other = /dev/sda2

label = FreeBSD

table = /dev/sda

loader = /dev/os2_d.b

放入一格式化過的磁片,再跑 lilo -v.然後將磁片的啟動磁區變成一檔案:

 

# dd if=/dev/fd0 of=/bootsect.bsd bs=512 count=1

並放到 C: 下.移去磁片後重新開機,在 NT Loader 的選單下選擇 FreeBSD,

接著就看到:

 

LILO loading FreeBSD

>> FreeBSD BOOT @ 0×10000: 639/65536 k of memory

Usage: [[0:][fd](0,a)]/kernel][-abcCdhrsv]

Use 1:sd(0,a)/kernel to boot sd0 if it is BIOS drive 1

Use ? for file list or press Enter for defaults

Boot:

我成功了!!

References

1. mailto:reichert@dial.eunet.ch

2. http://www.phys.ntu.edu.tw/~cwhuang/pub/

3. mailto:cwhuang@phys.ntu.edu.tw

4. http://www.informatik.hu-berlin.de/~loewis/ntfs

5. http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm

arrow
arrow
    全站熱搜

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()


    留言列表 留言列表

    禁止留言