如今Linux安装使用的人与日俱增。本人在安装Redhat Linux5.1过程中相当顺利,不曾想到Linux也有Windows 95一样的毛病,不认光驱。对此,本人把Linux安装好后不能读取光盘内容的解决之道向大家介绍,期望和出现此类问题的人交流。
本人在安装时选择从CD-ROM安装(绝大部分人都是采用此方法),安装过程系统能自动检测出光驱,顺利完成文件系统安装,最后制作一张引导Linux系统的软盘,本人从软盘启动Linux。
安装后,用制作的软盘可重新启动Linux操作系统。可是系统启动后,放进光驱里的光盘内容不能读取,经查阅大量资料得知,如果想读取光盘的内容,必须有两个条件,一是启动过程中Linux能检测识别出光驱的类型,和Windows 95的即插即用类似;二是系统内核能识别出ISO9660文件系统,因光盘上的文件是采用ISO9660格式存放,与DOS的FAT文件系统等不同。
要判断系统内核是否符合上述两个条件,可用以下步骤:对条件一,在系统启动时,会显示探测本机硬件等初始化工作相关信息,这些信息有时显示的很快,可在登录后用以下命令查看:dmesg | less,本人的光驱是SAMSUNGSCR-831,接在主板IDE2口上,应有下列信息:“hdc:SCR- 831,ATAPI CDROMdrive”,每个人的硬件不同,可能显示的内容有所不同,如果没有自己光驱类型的正确显示,则表明条件一不满足。对条件二,可用下列命令查看:“cat/proc/filesystems”,cat相当于DOS命令里的type。根目录下的子目录proc里的文件filesystems有表示Linux能识别的文件系统,如果没有ISO9660一项,则表明系统不能读出光盘内容。在对光驱操作时,一般应先用Mount命令指派(有关Mount命令可参考Linux介绍),如果条件二不满足,在用Mount命令时提示“文件系统ISO9660内核不支持”。本人的机子就是条件一满足,条件二不满足,因此不能读出光盘的内容。
条件一、二不论哪个不满足,都要重新编译内核。在编译内核时还要保证内核文件头包已经安装,如果没有安装,要重新运行安装程序,选择升级安装,在选择安装包时,把有关的内核文件头内容的包安装进去。安装后重新引导系统,进行内核编译。编译内核时以root身份登录操作,顺序执行以下命令:
1. cd /usr/src/linux (进入/usr/src/linux目录,执行下列命令)
2. make mrproper (预处理)
3. make menuconfig
4. make dep
5. make clean
6. make zdisk
make
menuconfig是进行相关配制内容编译进内核的关键步骤,菜单化操作。其中有许多项,根据自己的硬件等条件选择配制操作。要想系统识别光驱,在此步骤的关键是要选择进符合自己光驱接口类型的项,如现在的光驱大多是IDE/ATAPI接口,操作时选择“支持IDE/ATAPI接口”。另外关键的是选择内核支持的文件系统时,要选择支持“ISO9660”文件系统。执行make menuconfig命令后再依次执行make dep和make clean命令。最后执行make zdisk命令,此命令是根据make menuconfig命令配制的选择,重新编译内核支持的设备和文件系统等,并重新制作引导系统的软盘,此命令执行大约需十多分钟。
用新制作的软盘重新引导系统,登录后,用Mount命令指派光驱目录及ISO9660文件系统,可进行对光盘内容的读取操作。
为什么在安装时能读取光盘内容?原因是安装时运行的系统内核与安装好后形成的系统内核不同。