?? bochs2.txt
字號(hào):
從硬盤(pán)啟動(dòng)的Linux 0.11-devel系統(tǒng)
[這個(gè)貼子最后由redgrid在 2005/03/21 09:12pm 第 4 次編輯]
很多人想從硬盤(pán)Image文件直接能引導(dǎo)啟動(dòng)Linux 0.11系統(tǒng). 我用shoelace做了一個(gè)可啟動(dòng)的硬盤(pán)Image文件包: linux-0.11-devel-040923.zip, 但是我現(xiàn)在在父母家,是撥號(hào)上網(wǎng),所以還沒(méi)有傳到網(wǎng)站上(過(guò)幾天從學(xué)校傳).
shoelace.tar.z可以從Linux.old/bin-src/中下載. 該軟件相當(dāng)于Linux 的LILO或Grub引導(dǎo)系統(tǒng).它原來(lái)是MINIX系統(tǒng)的硬盤(pán)引導(dǎo)系統(tǒng).后來(lái)于1992年1月份被移植到Linux上.有關(guān)硬盤(pán)引導(dǎo)程序shoelace(或grub, Lilo等)原理請(qǐng)參考其它資料,例如boot-HOWTO等。
shoelace軟件包主要包括以下幾個(gè)程序,并需要按照以下方式放置:
/etc/laceup
/etc/bootlace
/etc/winiboot
/etc/config
/etc/disktab
/shoelace
除了/etc/config文件需要修改,其他文件一般均不需要改動(dòng). 只需修改config文件中boot: 一行上的內(nèi)容,將其指向系統(tǒng)bootimage文件所在的路徑位置,即內(nèi)核源代碼編譯出的Image文件,通常其路徑名是/usr/src/linux/Image
假如我們需要從硬盤(pán)的第1個(gè)分區(qū)啟動(dòng),那么執(zhí)行以下操作就可以完成shoelace的執(zhí)行:
/etc/laceup /dev/hd1 wini
如果需要修改硬盤(pán)的主引導(dǎo)扇區(qū),讓你可以選擇使用哪個(gè)分區(qū)引導(dǎo),那么你還需要執(zhí)行:
/etc/laceup -w 1 /dev/hd0
其中"-w 1"表示默認(rèn)選擇第1個(gè)分區(qū)作為引導(dǎo)分區(qū).
================
碰到的問(wèn)題和解決方法
--------------------
執(zhí)行fdisk命令對(duì)硬盤(pán)Image文件進(jìn)行分區(qū)操作時(shí),如果你使用的是MINIX環(huán)境(例如本站提供的MINIX-1.5系統(tǒng)),并且沒(méi)有出現(xiàn)任何疑問(wèn)提示,那么通過(guò)上述操作這個(gè)hd image文件肯定能夠被引導(dǎo)啟動(dòng). 如果使用的是Linux 0.11上的fdisk,則不一定. 主要原因是MINIX的fdisk對(duì)分區(qū)的操作有些特別. 分區(qū)的參數(shù)需要進(jìn)行一些特別選擇才行. 由于網(wǎng)站上現(xiàn)有的Linux-0.11-devel-XXXX.zip中的hd image文件參數(shù)和分區(qū)與MINIX做出的有些不同,因此使用上面操作后硬盤(pán)并不能正常啟動(dòng).因此最好重新建立一個(gè)hd映像文件,該硬盤(pán)映像文件的參數(shù)經(jīng)過(guò)一些慎重選擇, 然后在其上建立一個(gè)根文件系統(tǒng).我實(shí)驗(yàn)選擇出以下的參數(shù)可以從硬盤(pán)上正常引導(dǎo):
硬盤(pán)Image文件參數(shù):
cyl = 410, heads=16, secters=38
硬盤(pán)大小=127MB左右.
分區(qū)設(shè)置為:
在MINIX系統(tǒng)下的顯示值:
fdisk -h16 -s38 /dev/hd5
----first---- -----last---- --------sectors-------
Num Sorted Active Type Cyl Head Sec Cyl Head Sec Base Last Size
1 1 MINIX 0 0 3 203 15 38 2 124031 124030
2 2 MINIX 204 0 1 407 15 38 124032 248063 124032
3 3 None 0 0 0 0 0 0 0 0 0
4 4 None 0 0 0 0 0 0 0 0 0
在Linux 0.11上的顯示值:
fdisk
p
Command (m for help):
Disk /dev/hd0: 0 heads, 0 sectors, 0 cylinders
Device Boot Begin Start End Blocks Id System
/dev/hd01 0 2 124031 62015 81 Linux/MINIX
/dev/hd02 0 124032 248063 62016 81 Linux/MINIX
x
Command (m for help):
p
Expert command (m for help):
Disk /dev/hd0: 0 heads, 0 sectors, 0 cylinders
Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID
1 00 0 3 0 15 38 203 2 124030 81
2 00 0 1 204 15 38 407 124032 124032 81
3 00 0 0 0 0 0 0 0 0 00
4 00 0 0 0 0 0 0 0 0 00
你可以在Linux系統(tǒng)下先建立一個(gè)zero值hd image文件hdc.img:
dd if=/dev/zero of=hdc.img bs=512 count=248280
上面count是扇區(qū)數(shù)(=410 * 16 * 38). 然后按照上面參數(shù)建立分區(qū).在把該硬盤(pán)Image文件mount到Linux 0.11系統(tǒng)后,直接cp -a 完全復(fù)制/目錄即可.例如,如果新硬盤(pán)Image文件是被加載到了/mnt/目錄上,那么執(zhí)行:
cd /mnt/
cp -a /* .
最后會(huì)碰到的一個(gè)問(wèn)題是需要給主引導(dǎo)扇區(qū)加上引導(dǎo)扇區(qū)標(biāo)志(第511,512字節(jié))0x55,0xAA
我是使用UltraEdit編輯hdc.img加上的.
你可以先按照這里介紹的方式自己做做看,如果不行則可以在這里提問(wèn),或者等我upload已經(jīng)做好的作為參考.
已經(jīng)upload了。
制作根文件系統(tǒng)的問(wèn)題
實(shí)驗(yàn)環(huán)境設(shè)置與使用方法(第14章) 的制作根文件系統(tǒng)部分有這么一句:
“因此在開(kāi)始著手制作根文件系統(tǒng)之前,首先需要確認(rèn)已經(jīng)能夠運(yùn)行這兩個(gè)軟盤(pán)Image文件組成的最小Linux系統(tǒng)?!?請(qǐng)問(wèn)這句話(huà)是什么意思》
請(qǐng)問(wèn)如果想要確認(rèn),確認(rèn)的方法是什么?
分享我的0.11實(shí)驗(yàn)環(huán)境(Linux和Windows),帶Flash教程
[這個(gè)貼子最后由quinn在 2007/02/11 01:45am 第 11 次編輯]
(2007年2月6日,我的網(wǎng)站過(guò)期了,更新一下url)
大家好,最近我打算學(xué)習(xí)0.11,從貴站下了好多東西,然后根據(jù)我自己的需求,做了一下定制,作出了一個(gè)0.11實(shí)驗(yàn)環(huán)境,于本站原先提供的實(shí)驗(yàn)環(huán)境相比,好處是提供Windows和Linux兩個(gè)版本的實(shí)驗(yàn)環(huán)境。而Windows實(shí)驗(yàn)環(huán)境不需要下載任何其他軟件,還有我自己用Flash作的教程,應(yīng)該很簡(jiǎn)單的,希望對(duì)大家有用。Linux下實(shí)驗(yàn)環(huán)境包含gcc4下面可以編譯的0.11內(nèi)核,由于新的Linux版本大多都已經(jīng)使用了gcc4.1,而原先發(fā)布的rh9的代碼只能用gcc3.3編譯,所以我做了很小的一點(diǎn)修改,使得新的內(nèi)核可以在多個(gè)gcc版本下編譯。
這個(gè)實(shí)驗(yàn)環(huán)境還用了一張grub啟動(dòng)軟盤(pán),好處是一張啟動(dòng)盤(pán)上可以放多個(gè)啟動(dòng)鏡像,然后啟動(dòng)的時(shí)候可以從菜單中選擇,這樣就不需要為多個(gè)內(nèi)核維護(hù)許多bochs配置文件了,比較方便。還有一個(gè)問(wèn)題是我編譯出來(lái)的內(nèi)核直接作為a盤(pán)啟動(dòng)總是會(huì)出現(xiàn)不能掛載b盤(pán)的文件系統(tǒng)的問(wèn)題,而用grub載入同樣的內(nèi)核則不會(huì)有相應(yīng)的問(wèn)題。
由于我剛剛開(kāi)始學(xué)習(xí),這個(gè)實(shí)驗(yàn)環(huán)境肯定有很多不足之處,希望大家指出。并希望能和大家共同學(xué)習(xí)共同進(jìn)步。:)
Windows用戶(hù)請(qǐng)下載
http://dipplum.com/linux-0.11-lab/linux-0.11-lab_060616_004102.exe
然后解壓縮到某個(gè)地方,F(xiàn)lash教程在
http://dipplum.com/linux-0.11-lab/linux-0.11.swf
Linux用戶(hù)可以下載實(shí)驗(yàn)環(huán)境
http://dipplum.com/linux-0.11-lab/linux-0.11-lab_060618_041042.tar.bz2
Linux用戶(hù)的使用說(shuō)明參見(jiàn)
中文說(shuō)明
如果只想看看gcc4下可編譯的源碼,可以下載
http://dipplum.com/linux-0.11-lab/linux-0.11-060618-gcc4.tar.gz
http://dipplum.com/linux-0.11-lab/linux-0.11-060617-gcc4-diff.gz
源碼修改了很小一部分,出了語(yǔ)法錯(cuò)誤之外,其實(shí)就一個(gè)比較微妙的問(wèn)題,應(yīng)該是mm模塊在不同版本的gcc下不同優(yōu)化效果造成的錯(cuò)誤,具體為什么需要仔細(xì)看匯編代碼的差別,我還沒(méi)搞明白,詳細(xì)內(nèi)容可以看我的Blog上這篇文章:
http://dipplum.com/2007/02/10/38/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -