redhat9调试笔记之编译内核

<!--StartFragment -->
5月31
今天是周末,心情比较好,所以决定研究linux的内核编译,之所以想要内核编译,一方面是想要使服务器更加稳定,快速,另外一个原因是我在使用过程中,当要mountNTFS分区的时候,老是提示我内核不支持,我知道RH9的内核是支持NTFS的,所以决定好好编译一下内核,虽然以前我编译内核从来没有成功过。

废话少说,开始编译,菜鸟们看好了,这可是我的调试手记!

1。要编译内核,首先要到合适的编译路径,一般路径都在/usr/src/linux,RH9的路径是在/usr/src/linux-2.4,只有在这个路径你的makeconfig/makemenuconfig/makexconfig命令才会生效。
否则不在这个路径编译,会提示make:***Noruletomaketarget'config',stop的错误提示,菜鸟们经常会犯这个错误哦!

2。因为我是菜鸟,所以今天告诉大家的编译方法还是比较保守的,高手就不用看了,首先我们在编译之前最好运行这个命令: makemrproper如果你以前编译过内核,那这个命令就可以删除以前的建构的痕迹。相信大多数菜鸟是没有编译过的,所以一般不用运行,但是你要是想第2次或第3次编译(我就编译了好多次),那就这个命令就非常有用了。

3。makeoldconfig,大家可能觉得很奇怪我怎么用这个命令,之所以用这个命令,是因为我是菜鸟,前几次自定义的编译内核都没有成功引导系统,无意中发现这个命令,这个命令会读取系统默认的内核,然后生成.config文件,那以后配置编译就在默认的基础上添加/删除就行,不会因为漏掉什么配置而使系统不能引导,相信我没错,如果你是高手的话,那就免了。

4。makemenuconfig开始配置,把你认为不需要的东西都不要编译到内核,比如什么业余电台,scsi,I20,IrDA, isdn,bluetooth,反正要删除的东西你要有绝对把握哦,多删了造成系统不能引导可不要来找我。当然不会忘了加上ntfs的支持,在 filesystems这一项里,顺便把codepage936也编译进内核,后面会用到的。保存为.config后退出。

5。makedep设置依赖关系

6。makeclean准备要建构的源码树

7。makebzImage建构内核漫长的时间,去做家务吧

8。makemodules配置模块,也比较漫长,我都把家里的活干完了,还没编译好

9。makemodules_install使用配置的模块

10。makeinstall把新的内核和相关文件复制到正确的目录,并修改grub.conf文件(我是用grub引导)在grub菜单会添加一个新的内核启动选项,当然你也可以自己修改。


好了重新启动reboot,看看你的新内核能否顺利引导,好棒哦!系统引导后,用free-m一看,内存从原来的56M占用,降到了25M,变化好大哦,在看一下top,cpuidle居然100%,进入xwindows,时间都不到20秒,够快吧!

别忘了正事!看能否加载nfts分区?

mkdir/mnt/ntfs

mount/dev/hdb5/mnt/ntfs系统提示
NTFS:Warning!NTFSvolumeversiion十Win2K+:Mountingread-only

ok,果然顺利加载,看来编译是成功的!,下面问题又出来了,进入/mnt/ntfs目录一看,出现一大堆??的文件,使用zhcon都不行,印象中好像都是中文,难道对中文不支持,不至于吧!马上上网寻找资料,哦原来还有参数
重新加载

mount-oiocharset=cp936/dev/hdb5/mnt/ntfs

看看,现在不是??,但是是乱码,没关系,加载zhcon,再看,ok了重要显示中文了,知道了吧,为什么一开始要大家把codepage936编译进去的原因。


现在问题又出来了,我总不能每次手动加载windows分区吧,有个办法,修改/etc/fstab

我的fstab修改如下:

LABEL=//ext3defaults11
none/dev/ptsdevptsgid=5,mode=62000
none/procprocdefaults00
none/dev/shmtmpfsdefaults00
/dev/hda3swapswapdefaults00
/dev/cdrom/mnt/cdromudf,iso9660noauto,owner,kudzu,ro00
/dev/hdb5/mnt/ntfsntfsiocharset=cp93600
/dev/hdb1/mnt/cvfatrw,iocharset=cp93600
/dev/hdb6/mnt/dvfatrw,iocharset=cp93600

其中rw参数是读写的意思,默认是只读,ntfs最好是只读,要是写比较危险。

好了再重启看看,是否系统能正常加载windows分区了,呵呵,应该是没有问题的。

希望这篇菜作对广大菜鸟有所提示

发表回复】【查看论坛原帖】【添加到收藏夹】【关闭
<!-----------回复----------->

xushengwang 回复于:2003-07-29 16:28:02
fstab修改中:
/dev/cdrom/mnt/cdromudf,iso9660noauto,owner,kudzu,ro00
其中:[b:954dd24e36]udf,iso9660noauto,owner,kudzu,ro00[/b:954dd24e36]
是什么意思?


zhchhui 回复于:2003-07-29 17:11:38
一、man5fstab
二、简单介绍:
fstab-staticinformationaboutthefilesystems

#DeviceMountpointFStypeOptionsDumpPass#
/dev/ad0s1bnoneswapsw00
/dev/ad0s1a/ufsrw11
/dev/ad0s1e/usrufsrw,userquota22
/dev/acd0c/cdromcd9660ro,noauto00
proc/procprocfsrw00

Device--装置(档案系统)名称

Mountpoint--裝置的挂入点,若为swap則是none

FStype--檔案系統的型態

ufs普通的UNIX檔案系統
mfs以記憶體為基準(memory-based)的UNIX檔案系統
nfs相容於昇陽(SUN)的網路檔案系統
swapswaping用的檔案系統
msdos相容於DOS的檔案系統
cd9660CD-ROM的檔案系統
procfs有關process資料存取的檔案系統
kernfs有關kernel存取的檔案系統

Options--關於此檔案系統額外的資訊,若不只一個的話用","(逗號)分隔。

若要加上Quota的限制,可分別或同時加上``userquota''或``groupquota''
,如此此檔案系統會被quotacheck此命令檢查且user或是group的QUOTA
會經由quotaon啟動。
此時會在此檔案系統的頂端產生quota.user或是(及)quota.group這兩個檔案
"noauto"-->此檔案系統在開機時不會自動掛入。
"rw"-->read-write
"ro"-->read-only
"sw"-->經由swapon存取swap空間的檔案,再重新啟動電腦的最後程序產生
"xx"-->表示忽略

Dump--轉儲(Dump)的順序0或空值-->表示不需要Dump

Pass--此檔案系統在開機時事是否需要做fsck的檢查。
/的檔案系統必須設為1,其他的則設為2
0或是空值-->表示不需要fsck

你可能感兴趣的:(linux,windows,unix,dos,sun)