grub
系統已經在硬碟上順利執行了,我們仍然可以改進,讓它支持多重開機,採用現有的 grub 即可。
首先,先將開機磁區裝到 Orange'S 分區的開機磁區:
首先,先將開機磁區裝到 Orange'S 分區的開機磁區:
dd if=boot/hdboot.bin of=$(HD) seek=`echo "obase=10;ibase=16;\`egrep -e '^ROOT_BASE' boot/include/load.inc | sed -e 's/.*0x//g'\`*200" | bc` bs=1 count=446 conv=notrunc dd if=boot/hdboot.bin of=$(HD) seek=`echo "obase=10;ibase=16;\`egrep -e '^ROOT_BASE' boot/include/load.inc | sed -e 's/.*0x//g'\`*200+1FE" | bc` skip=510 bs=1 count=2 conv=notrunc
並重新編譯(此時,硬碟 80m.img 的開機磁區還是 Orange'S 的開機磁區,可是在 80m.img5 的開機磁區也有 Orange'S 的開機磁區)。
接著,複寫 80m.img 的開機磁區(硬碟的開機磁區),利用 grub 0.97 的 stage1 與 stage 2:
$ wget http://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.tar.gz $ tar xf grub-0.97-i386-pc.tar.gz $ cd grub-0.97-i386-pc/boot/grub // 複製 stage1 和 stage2 到工作目錄 $ $ cd <你的作業系統資料夾> // 切換到 80m.img 之目錄,準備複製到硬碟開機磁區 $ dd if=stage1 of=80m.img bs=1 count=446 conv=notrunc $ dd if=stage2 of=80m.img bs=512 seek=1 conv=notrunc
ps. 如果尚未從軟碟開機,以安裝 hdldr.bin 會出現錯誤。
![]() |
執行畫面(從 GRUB 開機) |
![]() |
執行畫面(用 GRUB 啟動我們的作業系統) |
留言
張貼留言