Linux核心是支持DOS/FAT/NTFS分区格式的,对内核编译选项稍加配置,编译后即可支持fat中文分区。
启动内核编译配置程序# cd /usr/src/linux
# make menuconfig内核编译配置程序是“图形化”的,其默认填好的配置选项,通常可以满足你的机器配置需求,除非你用了一些非大众化的硬件设备。如果你喜欢让内核与你的硬件形成最佳拍档,那么就应当耐心学会根据自己的硬件型号,对内核编译选项进行精心配置。譬如本文所讲的让Linux kernel支持你的fat32、NTFS分区。
设定内核支持FAT分区简体中文(cp936)码表与utf字符集
- Filesystems--->
- DOS/FAT/NTFilesystems-->
- VFAT(Windows-95)fssupport
- (936)DefaultcodepageforFAT
- (utf8)DefaultiocharsetforFAT
NTFS file system support --->codepage 指的是一个经过挑选的以特定顺序排列的字符内码列表,对于早期的单字节内码的语种,codepage中的内码顺序使得系统可以按照此列表来根据键盘的输入值给出一一对应的内码。对于多字节内码,则给出的是MultiByte到Unicode的对应表,这样就可以把以Unicode形式存放的字符转化为相应的字符内码;或者反之。
在此设定FAT分区的默认codepage为cp936,而cp936是简体中文的内码序列表;另外Linux仅支持utf-8编码。现在明白了为什么要设定这两个选项了吧?这两个选项的设定,直接关系到FAT分区挂载后,分区内所有中文字符的显示。
“NTFS file system support”是设定Linux对NTFS分区读写功能的,可根据实际情况自行设定,我已经将我的WINDOWS分区统一搞成了FAT32。
设置本地语言支持(Native Language Srpport,NLS)
- Filesystems--->
- NativeLanguageSupport--><*>SimplifiedChineseCHARSET(cp936,GB2312)<*>NLSUTF-8
前文中,已经设定FAT分区的内码为cp936,这里就要指定相应的字体集,不然显示中文就会出现很多小方框,同理,相应的utf8字符集也要对应NLS UTF-8。
内核编译与安装内核编译相关选项设定完毕后,可保存为.config文件,位于“/usr/src/linux”目录下。
内核编译与安装命令:
# cd /usr/src/linux
# make && make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-2.6.21-gentoobzImage就是编译好的内核压缩文档,位于“/usr/src/linux/arch/i386/boot/bzImage”,内核最终要放在/boot分区内,才可以重启时,被装载。
我的系统是Gentoo,所以最终将内核复制为"/boot/kernel-2.6.21-gentoo"。