——薛老师
本例讲解如何在vm虚拟机环境下,从redhat 9.0 2.4内核版本升级到2.6.18版本,因内核跨度较大,且虚拟机默认设置等问题,期间有些问题需要特别注意,这里整理各方面资料,以对实际操作做以指导。
注意:本例所有安装包都可以在http://www.filewatcher.com/直接搜索得到,文档中只给包名不再给链接,特别提示,仔细,认真,再仔细再认真,任何小错误都可能会造成失败。
一、准备工作
启动Linux系统,并用根用户登录,进入终端模式下。
1、查看Linux内核版本
# uname –a
目前的版本显示显示的是2.4.20,
那就进入下一步
2、下载2.6内核源码 linux-2.6.18.tar.bz2
3、下载内核升级工具(因内核相差较大,很多软件包需要升级,否则新内核将有很多基本功能不能使用)
(1)下载module-init-tools-3.2.tar.bz2
(2)下载mkinitrd-4.1.18-2.i386.rpm
(3)下载lvm2-2.00.25-1.01.i386.rpm
(4)下载device-mapper-1.00.19-2.i386.rpm
(5)下载binutils-2.17.tar.gz(此项忘了是否是必须,自己验证下吧)
安装时依次执行如下命令:
tar zxf binutils-2.17.tar.gz
cd binutils-2.17
./configure
Make
Make install
二、配置工作
4、为了简化操作,将下载好的内核和4个升级工具都拷贝到/usr/src文件夹下。
5、拷贝完毕,开始解压新内核,具体操作请依次执行以下命令:
# tar jvxf linux-2.6.18.tar.bz2 (解压新内核)
6、安装module-init-tools工具包
在/usr/src目录下,依次执行下列命令:
# tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools)
# cd module-init-tools-3.2 (由/usr/src目录进入module-init-tools目录下)
#./configure --prefix=/
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.conf
命令"make moveold"将把系统原来的modutils工具程序改名为"*.old"(比如,lsmod.old等等).这将使得你可以继续使用原有的linux-2.4.x系统, 因为在2.4.x系统下, 新的module-init-tools工具包实际上是倚赖原来"*.old"程序来加载内核模块. 如果忘记了这一步也不要紧张, 可以先下载并安装原来的modutils程序包, 然后按照上面的步骤重来一遍就可以了.
7、安装另外三个升级工具
回到/usr/src目录下,依次执行下列3个命令来安装另外三个升级工具:
# rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,这里一定要加入--nodeps参数,下同)
# rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm
# rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm
如果不更新以上几个升级包,在后面编译内核时会提示以下错误:
(注意:如果可以上网可以用Uvh参数的升级方式安装rpm包)
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
8、配置内核选项。
# cd linux-2.6.18 (进入到/usr/src/linux-2.6.18目录下,然后在文档Documentation/Changes中给出了欲成功地升级到kernel-2.6.x所需的最小系统软件要求)
# make mrproper (该命令可确保源代码目录下没有不正确的.o文件,非必须)
# make menuconfig (文本窗口配置内核各选项)
运行这个命令有时会出现一个图形界面,列出了所有的内核配置选项,有的选项下还有子选项,你可以用方向键来选择,用Y键来确定。经过我多次试验,大多数选项默认就行,以下几个选项必须选择(请认真核对下面每一个选项,否则编译很有可能前功尽弃,确认下列<*>标记的选项对应被选择为内核而不是内核模块,其余默认即可):
(1)Loadable Module support选项中,一定要选上“Module unloading”和“Automatic kernel module loading”这两项;
(2)Device Drivers--->Block Devices中一定要选上Loopback device support;
Device Drivers--->Multi-device support(RAID and LVM)”处要选上“device mapper support”;
Device Drivers--->Graphics support”, 一定要选上” Support for frame buffer devices”;
Device Drivers --->USB support --->选上”USB Mass Storage support”(如果是在实环境中,想要更多USB支持,就全选吧。我的是在虚拟机中,用不着了)
Device Drivers --->; Network device support --->;Ethernet (10 or 100Mbit) --->; <*>; AMD PCnet32 PCI support
(3) File system--->(以下9个选项是关于ext2和ext3文件系统配置,全部选上)
Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBB (ext3) debugging support
File system--->DOS/FAT/NT Filesystems --->选上“ NTFS file system support”(新版本获得对ntfs分区的支持,和NT共存时非常有用,当然如果你只是虚拟机玩玩的话,可以忽略本项);
File Systems --> Miscellaneous filesystems ---><*> Compressed ROM file system support (cramfs)(光驱的支持)
ext2和ext3文件系统配置很重要,也是必需的,如果对Ext3、Ext2文件的支持直接编译进内核,在你reboot时机器就会当掉,出现如下错误信息:
kernel panic : no init found ,try passing init = option to kernel.....
或者是:
VFS:Cannot open root device "hdxy" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
或者是:
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed
Kernel panic – not syncing: No init found. Try passing init = option to kernel
(4)如果你在vmware下重新编译内核,硬盘采用的是默认的scsi的,以下选项必选,非常注意:
Device Drivers --->SCSI device support ---><*>SCSI disk support
Device Drivers--->SCSI device support--->SCSI low-level drivers--->;
<*>; BusLogic SCSI support(虚拟机为默认的scsi硬盘时,改为M从新编译内核模块,以生成的scis驱动程序)
三、编译工作
9、编译步骤
在/usr/src/linux-2.6.18目录下,执行以下命令即可编译。
# make dep (建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过)
# make clean (清除内核编译的目标文件)
# make bzImage (注意大小写I。这一步才真正编译内核)
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用make zImage编译,内核很大的话,系统会提示你使用make bzImage命令来编译,所以直接用make bzImage来编译。
# make modules (编译可加载模块,选择的外部模块越多时间越长,建议刚开始的时候不要删除默认模块,先熟悉一下内核后再说)
# make modules_install (安装可加载模块)
安装成功后,系统会在/lib/modules目录下生成一个2.6.18子目录,里面存放着新内核的所有可加载模块。
# make install (安装新内核)
注意:make install的时候可能会出现如下错误信息:
No module BusLogic found for kernel 2.4.12
mkinitrd failed
此问题一般只出现在SCSI硬盘+VMWARE+REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。解决方式是直接将可以BusLogic.o文件复制过去:
# cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi
不过别忘记,复制过后再执行一下make install。
(如果make menuconfig时,把BusLogic模块选成M--Module模式--就不会出现这个提示。)
注意:如果出现no module /bin/true found for kernel 2.6.10系升级包造成,如下解决办法,原理不详,但有效
编辑 /sbin/mkinitrd
for n in $scsimodules; do
# for now allow scsi modules to come from anywhere. There are some
# RAID controllers with drivers in block/
findmodule $n
done
改成
#for n in $scsimodules; do
#findmodule $n
# done
即注释掉程序代码,再次make install 成功
四、启动新内核
10、新内核已经自动拷贝到/boot文件夹下,
新版本的内核安装已经不需要手动操作。
11、修改Grub启动管理器
# df (查看根目录在那个分区,下一步要用到。注意,这里根分区不时boot的那个50M的分区,而一般是你最大的那个分区,也就是”/”,千万不要搞错哦。我的为 /dev/sda1)
# vi /boot/menu.lst redhat貌似应该编辑这个,如果没有的话,看看grub.conf 内容相同
default=1
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root= LABEL=/
initrd /initrd-2.6.18.img
做两处修改:
(1) 将default=1改为default=0(下方启动列表的序号,从0开始,不改的话,重启之后默认进入第二项2.4内核)
(2) 将kernel行的“LABEL=/”换成根目录所在的分区,2.6内核在某些平台上不认LABLE标签(上一步查看的就是,我的如下)
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root=/dev/sda1
initrd /initrd-2.6.18.img
title Red Hat Linux (2.4.20-8)
root (hd0,0)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
12,重启,此时可以通过grub启动列表进入2.4或2.6内核,但是此时的内核缺少很多关键功能。
13.rpm出错,需升级rpm
最简单的做法如下
修改/usr/lib/rpm/macros
在里面寻找
代码:
%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb
修改成
代码:
%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb private
14. 支持Hotplug
下列配置使2.6.18内核可以mount光驱等其他设备:首先要在内核配置时配置了HOTPLUG的支持. 然后, 由于/proc/ksyms改名为/proc/kallsyms, 所以必需修改启动脚本/etc/rc.sysinit. 为了兼容原有的linux-2.4.x系统, 可以加上下面几行,此代码方案最为简洁:
#
# ----- KERNEL 2.6.x support ------
# This is for compatibility between kernel-2.4.x and kernel-2.6.x
#
UNAME=`uname -r`
KERNELVER=${UNAME:0:3}
if [ "$KERNELVER" = "2.6" ]; then
#
# This is kernel-2.6.x
#
KSYMS=/proc/kallsyms
else
#
# This is kernel-2.4.x
#
KSYMS=/proc/ksyms
fi
然后, 把rc.sysinit文件中所有出现/proc/ksyms的地方都换成"$KSYMS"变量引用. 配置好后, 还必需下载hotplug的用户态辅助工具
在VI下使用以下命令将原路径全换成全局变量,注意里面的斜杠不是字符V
:1,$ s/\/proc\/ksyms/\\$KSYMS/g 替换 /etc/rc.sysinit中的字符串
包:http://www.kernel.org/pub/linux/uti...4_03_11.tar.gz. 解开这个包以后, 直接"make install"就可以了. 它将产生/etc/hotplug/配置目录.
7. 体验sysfs
首先, 创建目录/sys:
# mkdir /sys
然后, 按照下列步骤修改启动脚本/etc/rc.sysinit文件:
o 找到行: mount -f /proc", 在下面增加:
if [ "$KERNELVER" = "2.6" ]; then
mount -f /sys
fi
o 找到行: action $"Mounting proc filesystem: " mount -n -t proc /proc /proc, 在其下面增加这样一行:
#
# Mount /sys for kernel-2.6.x
#
if [ "$KERNELVER" = "2.6" ]; then
action $"Mounting sysfs filesystem: " mount -n -t sysfs /sys /sys
fi
接下来, 在/etc/fstab文件中, 加入这样一行:
none /sys sysfs defaults 0 0
最后, 修改/etc/init.d/halt脚本中的halt_get_remaining函数:
将:
awk '$2 ~ /^/$|^/proc|^/dev/{next}
改为:
awk '$2 ~ /^/$|^/proc|^/sys|^/dev/{next}
8. 支持USB设备
linux-2.6.x的USB驱动模块的名字已经改变了, 所以由此引起的问题多多......, 对应于USB-2.0的host控制器的内核模块名字仍然是ehci-hcd, 对应USB-1.1的host控制器的内核模块名字已经从usb-ohci改为ochi-hcd, 对应于通用USB host控制器的内核模块名字已经从usb-uhci该为uhci-hcd.
然而不幸的是, 在安装module-init-tools程序包时生成的/etc/modprobe.conf配置文件却仍然使用usb-ohci这个名字. 例如:
alias usb-controller usb-ohci
alias usb-controller1 ehci-hcd
因此, 要把它改为:
alias usb-controller ohci-hcd
alias usb-controller1 ehci-hcd
如果不做这样的修改, 那么使用USB-1.1 host控制器的机器在启动内核的时候将着不到相应的驱动模块.
支持USB键盘的模块名字也从keybdev变为usbkbd, 支持USB鼠标的模块名字也从mousedev改为usbmouse. 因此, 我们必需修改启动脚本/etc/rc.sysinit文件. 同时为了兼容原有的2.4.x系统, 我们在脚本的一开始定义两个变量:
#
# ----- KERNEL 2.6.x support ------
# This is for compatibility between kernel-2.4.x and kernel-2.6.x
#
UNAME=`uname -r`
KERNELVER=${UNAME:0:3}
if [ "$KERNELVER" = "2.6" ]; then
#
# This is kernel-2.6.x
#
KSYMS=/proc/kallsyms
KEYBDEV_NAME=usbkbd
MOUSEDEV_NAME=usbmouse
else
#
# This is kernel-2.4.x
#
KSYMS=/proc/ksyms
KEYBDEV_NAME=keybdev
MOUSEDEV_NAME=mousedev
fi
然后, 把/etc/rc.sysinit脚本文件中出现keybdev和mousedev的地方都改为$KEYBDEV_NAME和$MOUSEDEV_NAME.(参看前面的VI替换命令) 把脚本文件/etc/rc.sysinit中的needusbstorage部分从:
needusbstorage=
if [ $usb = "1" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /proc/bus/usb/devices 2>/dev/null`
LC_ALL=C grep 'hid' /proc/bus/usb/drivers || action $"Initializing USB HID interface: " modprobe hid 2> /dev/null
action $"Initializing USB keyboard: " modprobe $KEYBDEV_NAME 2> /dev/null
action $"Initializing USB mouse: " modprobe $MOUSEDEV_NAME 2> /dev/null
fi
改为:
needusbstorage=
if [ $usb = "1" ]; then
if [ "$KERNELVER" = "2.6" ]; then
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /sys/bus/usb/devices 2>/dev/null`
LC_ALL=C grep 'hid' /sys/bus/usb/drivers || action $"Initializing USB HID interface: " modprobe usbhid 2> /dev/null
else
needusbstorage=`LC_ALL=C grep -e "^I.*Cls=08" /proc/bus/usb/devices 2>/dev/null`
LC_ALL=C grep 'hid' /proc/bus/usb/drivers || action $"Initializing USB HID interface: " modprobe hid 2> /dev/null
fi
action $"Initializing USB keyboard: " modprobe $KEYBDEV_NAME 2> /dev/null
action $"Initializing USB mouse: " modprobe $MOUSEDEV_NAME 2> /dev/null
fi
退出,重启,基本上就可以正常使用2.6.18的内核了,目前未发现有其他问题,有问题的话多数还是发生在内核配置出错,有时间可以详细了解下内核配置的含义。
附录:转载的内核配置说明列表
Linux2.6.x 内核配置说明
USB support ---> <*> Support for Host-side USB这个肯定是要选择的 [*] USB verbose debug messages USB的详细调试信息,可以选择 ---Miscellaneous USB options [*] USB device filesystem这个好象是用U盘必须的 [*] Enforce USB bandwidth allocation (EXPERIMENTAL) [*] Dynamic USB minor allocation (EXPERIMENTAL)以上两项可以不用选择 ---USB Host Controller Drivers [*] Full speed ISO transactions (EXPERIMENTAL)可以不用选择 [*] Root Hub Transaction Translators (EXPERIMENTAL) HUB不用选择 ---USB Device Class drivers ---USB Bluetooth TTY can only be used with disabled Bluetooth subs [*] USB Mass Storage verbose debug [*] Datafab Compact Flash Reader support (EXPERIMENTAL) [*] Freecom USB/ATAPI Bridge support [*] ISD-200 USB/ATA Bridge support [*] Microtech/ZiO! CompactFlash/SmartMedia support [*] HP CD-Writer 82xx support (EXPERIMENTAL) [*] SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL) [*] SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL) [*] Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL)以上9项不用选择 ---USB Human Interface Devices (HID) <*> USB Human Interface Device (full HID) support里面选择usb鼠标和usb键盘,如果你有一定选上这 个必需选 [*] HID input layer support应该选择 [*] Force feedback support (EXPERIMENTAL)不用选择 [*] PID Devices (Microsoft Sidewinder Force Feedback 2)不用选择 [*] Logitech WingMan *3D support不用选择 [*] ThrustMaster FireStorm Dual Power 2 support (EXPERIMENTAL)不用选择 [*] /dev/hiddev raw HID device support应该选择 如果这里有USB键盘和鼠标选项,一定要选择 不用选择 触摸屏的,不用选择 和游戏有关,不用选择 ---USB Imaging devices USB扫描仪,不用选择 ---USB Multimedia devices USB的多媒体设备,不用选择了 ---USB Network adaptors USB网络适配器,不用选择了 ---USB Host-to-Host Cables [*] ALi M5632 based 'USB 2.0 Data Link' cables [*] AnchorChips 2720 based cables (Xircom PGUNET, ...) [*] eTEK based host-to-host cables (Advance, Belkin, ...) [*] GeneSys GL620USB-A based cables [*] NetChip 1080 based cables (Laplink, ...) [*] Prolific PL-2301/2302 based cables ---Intelligent USB Devices/Gadgets [*] Embedded ARM Linux links (iPaq, ...) [*] Epson 2888 based firmware (DEVELOPMENT) [*] Sharp Zaurus (stock ROMs) [*] CDC Ethernet support (smart devices such as cable modems) ---USB Network Adapters [*] ASIX AX88172 Based USB 2.0 Ethernet Devices不用选择 ---USB port drivers 一般不用选择 USB Serial Converter support --->可以全部不用选择 [*] USB Generic Serial Driver USB手持设备的,不用选择 [*] USB Keyspan MPR Firmware [*] USB Keyspan USA-28 Firmware [*] USB Keyspan USA-28X Firmware [*] USB Keyspan USA-28XA Firmware [*] USB Keyspan USA-28XB Firmware [*] USB Keyspan USA-19 Firmware [*] USB Keyspan USA-18X Firmware [*] USB Keyspan USA-19W Firmware [*] USB Keyspan USA-19QW Firmware [*] USB Keyspan USA-19QI Firmware [*] USB Keyspan USA-49W Firmware [*] USB Keyspan USA-49WLC Firmware USB KL5KUSB105 (Palmconnect) Driver (EXPERIMENTAL) USB KOBIL chipcard reader (EXPERIMENTAL) USB MCT Single Port Serial Driver USB Prolific 2303 Single Port Serial Driver [*] USB Secure Encapsulated Driver -Padded USB REINER SCT cyberJack pinpad/e-com chipcard reader (EXPERIME USB Xircom / Entregra Single Port Serial Driver ---USB Miscellaneous drivers里面的都可以不用选择 没有这种接口,不用选择 没有这种接口,不用选择 液晶显示器的驱动,不用选择 好像是一种检测设备,不用选择 USB Gadget Support --->里面的也可以不用选择 USB Peripheral Controller (NetChip 2280) ---> (X) NetChip 2280 ( ) Toshiba TC86C001 'Goku-S' ( ) Dummy HCD (DEVELOPMENT) NetChip 2280 (NEW) USB Gadget Drivers [*] RNDIS support (EXPERIMENTAL) [*] File-backed Storage Gadget test version 8 file systems ---> <*> Second extended fs support [*] Ext2 extended attributes [*] Ext2 POSIX Access Control Lists [*] Ext2 Security Labels [*] Ext3 extended attributes [*] Ext3 POSIX Access Control Lists [*] Ext3 Security Labels以上这些肯定是要选择的,linux的标准文件系统 [*] JBD (ext3) debugging support一般是选择的 [*] Enable reiserfs debug mode不用选 [*] Stats in /proc/fs/reiserfs不用选 [*] JFS POSIX Access Control Lists [*] JFS debugging [*] JFS statistics [*] Realtime support (EXPERIMENTAL) [*] Quota support [*] Security Label support [*] POSIX ACL support 不用选 [*] Quota support磁盘配额支持,分配硬盘空间的,一般用不着 <*> Quota format v2 support 内核自动挂载的,当然要选 CD-ROM/DVD Filesystems --->里面全选. <*> ISO 9660 CDROM file system support [*] Microsoft Joliet CDROM extensions [*] Transparent decompression extension DOS/FAT/NT Filesystems ---> [*] NTFS debugging support [*] NTFS write support Pseudo filesystems ---> [*] /proc file system support这个用来存放一些硬件信息,占用的是内存空间,应该选吧 [*] /dev file system support (OBSOLETE)存放设备信息的,怎么能不选阿? [*] Automatically mount at boot这个是很好的功能,省去了手动m ount [*] Debug devfs调试用的,不用选了 [*] /dev/pts Extended Attributes一般要选择 [*] /dev/pts Security Labels一般要选择 [*] Virtual memory file system support (former shm fs)一般要选择 [*] HugeTLB file system support一般要选择 Miscellaneous filesystems ---> 这个里面我什么都没选 [*] ADFS write support (DANGEROUS)不用选 apple的产品很少阿, 不选 同上 [*] Debug BeFS不用选 (0) JFFS debugging verbosity (0 = quiet, 3 = noisy) (NEW) (0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy) [*] JFFS2 support for NAND flash (EXPERIMENTAL) 不用选 不用选 [*] QNX4FS write support (DANGEROUS)不用选 <*> UFS file system support (read only)不用选 [*] UFS file system write support (DANGEROUS)不用选 Network File Systems ---> 关于NFS的,应该选择 [*] Provide NFSv3 client support要选择 [*] Provide NFSv4 client support (EXPERIMENTAL)要选择 [*] Allow direct I/O on NFS files (EXPERIMENTAL)不用选择 [*] Provide NFSv3 server support不用选择 [*] Provide NFSv4 server support (EXPERIMENTAL)不用选择 [*] Provide NFS server over TCP support (EXPERIMENTAL)不用选择 ---Secure RPC: Kerberos V mechanism (EXPERIMENTAL) [*] Use a default NLS要选择 (cp437) Default Remote NLS Option (NEW)要选择 [*] Packet signatures不用选择 [*] Proprietary file locking不用选择 [*] Clear remove/delete inhibit when needed不用选择 [*] Use NFS namespace if available不用选择 [*] Use LONG (OS/2) namespace if available不用选择 [*] Lowercase DOS filenames不用选择 [*] Use Native Language Support不用选择 [*] Enable symbolic links and execute flags不用选择 [*] Use 96-bit Coda file identifiers不用选择 Partition Types --->这个里面关于分区格式的支持,选择自己想要的就可以了 [*] Advanced partition selection [*] Acorn partition support [*] Cumana partition support [*] EESOX partition support [*] ICS partition support [*] Native filecore partition support [*] PowerTec partition support [*] RISCiX partition support [*] Alpha OSF partition support [*] Amiga partition table support [*] Atari partition table support [*] Macintosh partition map support Apple公司的Mac分区支持,不用选择了 [*] PC BIOS (MSDOS partition tables) support MSDOS分区支持,这个可以选择 [*] BSD disklabel (FreeBSD partition tables) support如果要安装 FreeBSD,也可以选择 [*] Minix subpartition support [*] Solaris (x86) partition table support Solaris分区支持,可以选择 [*] Unixware slices support Unix的slice支持,去看看 BSD分区就知道了 [*] Windows Logical Disk Manager (Dynamic Disk) support Windows逻辑分区支持,可以选择 [*] Windows LDM extra logging [*] NEC PC-9800 partition table support [*] SGI partition support [*] Ultrix partition table support [*] Sun partition tables support Sun公司的分区支持,不用选择 [*] EFI GUID Partition support Native Language Support ---> 这里我不想多说,最起码把 cp437,cp936,iso 8859-1编译成模块,对,没看错,是说模块,不是编译进内核. ---Base native language support (utf8) Default NLS Option