由文件系统引发的问题(编译内核)
以前我都是在虚拟机中编译内核,整个过程很流畅,没有出现什么问题。但今天在物理机中编以内核却让我很纠结。
我是双系统window 7 和 RHEL5,在linux系统下想在windows所在环境拷贝一下东西,但其磁盘都是NTFS格式的,挂载时就会提醒你NTFS格式的盘不识别。这是为什么呢?是因为默认linux并没有把NTFS格式编进内核或做进模块。要想让其识别NTFS格式的盘,还得编译内核。
但不一定是必须的,有一个小小的rpm包就可搞定(包名:kernel-module-ntfs-2.6.18-128.el5-2.1.27-0.rr.10.11.i686.rpm),这里我编译内核。
这里我把编译过程和遇到的问题与大家分享,望对大家有帮助。多多提出您宝贵的意见噢!
编译内核前先对编译步骤进行简单了解
1.配置内核可以根据需要与爱好使用下面命令中的一个:
#make config (基于文本的最为传统的配置界面)
#make menuconfig (基于文本选择的配置界面)
#make xconfig (基于图形窗口模式的配置界面)
#make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
我个人喜欢基于文本选择的配置界面
进行配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要和硬件信息选择。
选择相应的配置时,有三种选择,它们分别代表的含义如下:
“Y”- 将该功能编译进内核 (*)
“N”- 不将该功能编译进内核 (空)
“M”- 将该功能编译成可以在需要时动态插入到内核中的模块。(M)
2.编译内核核心文件
make
注意这个过程大概二十分钟左右
3.编译模块
make modules
这个过程发费的时间依你选的模块多少而决定
4.安装模块
make modules_install
5.安装内核核心
make install
大家都知道,要想编译内核的对自己的计算机硬件有所了解,下面就以我的计算为例介绍选择编译:
下载内核:http://www.kernel.org
tar xvf linux-2.6.30.10.tar.gz -C /usr/src/
cd /usr/src
ln -sv linux-2.6.30.10 linux
cd linux
make menuconfig #打开窗口如下
以下图片中“高亮”为选择
查看主板型号
dmidecode | more
#找到Base Board Information这一行
Base Board Information
Manufacturer: LENOVO
Product Name: NITU1
Versio
Features: Nonen: REFERENCE
Serial Number: CB00790147
Asset Tag: Not Specified
Location In Chassis: Not Specified
Chassis Handle: 0xFFFF
Type: Unknown
Contained Object Handles: 0
主板:联想 NITU1 ( 英特尔 4 Series Chipset 笔记本芯片组 ) ,intel的主板一般使用默认选项即可。
查看cpu的型号
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU T6500 @ 2.10GHz
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU T6500 @ 2.10GHz
处理器: 英特尔 Core(酷睿) 双核 T6500 @ 2.10GHz
根据cpu型号编译选择:
击“空格”键选择core 2
查看网卡型号
lspci | grep Ethernet
07:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)
网卡: 博通 BCM5906M NetLink Fast Ethernet / 联想
根据网卡类型编译选择:(Broadcom Tigon3)
把Broadcom Tigon3 support直接编进内核
查看声卡的型号
lspci |grep -i audio
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
声卡: Conexant Systems HD Audio Controller @ 英特尔 82801I(ICH9) 高保真音频
更具声卡类型选择编译:
查看显卡型号
lspci |grep VGA
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 06ec (rev a1)
显卡类型没有被识别,没有关系,我的显卡其实类型是:Nvidia GeForce G210M ( 512 MB / 联想 )
根据显卡类型选择编译:
根据需求把NTFS文件系统编译到内核,让系统支持NTFS文件系统格式:
好了,保存退出,你会发现会生成一个.config文件。
注意:如果对计算机硬件不是太了解,而且对编译内核不熟.config 文件可以直接拷贝,然后再编译选择自己需要的。拷贝如:
cp /boot/config-2.6.XXXX /usr/src/linux/.config
下面开始正式编译安装内核:
make
注意这个过程大概二十分钟左右
make modules
这个过程发费的时间依你选的模块多少而决定
make modules_install
make install
以上几步都没有出错,最后一步make install 时出现一下警告:
vim .config
分别找到一下:
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=m
注:由此可见,并不是编进内核就好了,有些编进内核反而会出错
重新启动系统,并以刚编译的内核启动,刚启动一半遇到如下问题:
最后看一看是否支持NTFS文件系统格式
/dev/sda5 是NTFS分区格式 磁盘
mount /dev/sda5 /mnt #这里没报错
验证:
cd /mnt
ls #查看文件
...............................
Program Files Windows