本文为大家介绍在编译内核出现的一些及相关解决办法。
编译Linux内核到make install出现:"No module Buslogic Found for kernel 2.6.20xiaoxie"
网上办法一:
Device Drivers--->SCSI device support--->SCSI low-level drivers--->; BusLogic SCSI support没有被编译进模块(亦有说内核),可是我看了看,只有可以选模块方式,而且我已经选上了。
网上办法二:
此问题一般只出现在SCSI硬盘+VMWARE REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。解决方式是直接将BusLogic.o文件复制过去:
# cp /usr/src/linux-2.6.20/drivers/scsi/BusLogic.o /lib/modules/2.6.20/kernel/drivers/scsi 复制过后再执行一下make install。(我亦是在vmware中所以试了试,结果错误信息改为“All of your loopback devices are in use”)
网上办法三:
(此办法经试用,会出现错误)编辑文件 /etc/modules.conf
将"alias scsi hostadapter BusLogic"这行注释掉,
即#alias scsi hostadapter BusLogic
保存 /etc/modules.conf,退出
# make install
网上办法四:
手动添加启动项 (经试用不能启动)
#cp /usr/src/linux/System.map /boot/System.map-2.6.0
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.6.0
解决“All of your loopback devices are in use”的问题
网上办法一:
(未解决)
# insmod /lib/modules/kernelversion/kernel/drivers/block/loop.[ko,o]
原因在于loopback设备没有编译到kernel里
由于没有make install成功,没有产生initrd-2.6.20.img文件,所以在grub.conf添加入下:
root (hd0,0)
kernel /vmlinuz-2.6.20-X ro root=LABEL=/
no initrd
结果reboot时,在如下错误处中止:
VFS:Cannot open root device "LABEL=/" or unkown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing :VFS:Unable to mount root fs on unknown-block(0,0)
编译Linux内核(从2.4.8.20到2.6.20), 有需要的朋友可以参考下。
第一步:准备工作:
1、Linux的2.6.20.1版本内核包(linux-2.6.20.1.tar.gz):源码包;
2、Modutils 3.2 工具包(module-init-tools-3.2.tar.gz):原2.4.x下的工具包不适用于2.6.x,必须升级;
3、Mkinitrd 4.1.18-2 工具包(mkinitrd-4.1.18-2.i386.rpm):在make install时需要使用该工具;
4、Device Mapper 开发包(device-mapper-1.00.19-2.i386.rpm):Mkinitrd工具包依赖该包;
5、LVM 开发包(lvm2-2.00.25-1.01.i386.rpm):Device Mapper依赖该包;
6、Binutils 开发包(binutils-2.17.tar.gz):如升级安装于虚拟机上的Red Hat Linux,则必需该包;
第二步:备份重要的数据(比如:/usr/src,/boot /etc)
第三步:安装module-init-tools-3.0.tar.gz工具包
# make moveold
# make install
# ./generate-modprobe.conf /etc/modprobe.conf
第四步:更新mkinitrd程序 mkinitrd程序包依赖于device-mapper包, 而device-mapper包又倚赖于lvm2包。
第五步:
#cd linux-2.6.x
# make mrproper -----删除不必要的文件和目录.(这步对刚下的新核不需要,但如果你编译过一次,这步就需要,它可以删除.config文件)
第六步:make menuconfig(如果一个./config文件已存在,它将使用该文件设置那些默认的值)
第七步:make ormake dep (这一步,需要一个小时左右)
第八步:make clean (删除不必要的模块和文件,不会删除./config文件)
第九步:make bzImage(bzImage是big zImage的缩写)开始编译系统内核.这一步,需要十几分钟
第十步:make modules(编译在配置时选择为模块的,即选项前为[M]的)开始编译外挂模块
第十一步:make modules_install 安装编译完成的模块.
第十二步:make install 自动生成vmlinuz-2.6.20-1,System.map-2.6.20-1,initrd-2.6.20-1.img (在/boot目录下可以看到)
第十三步:对/boot/grub/grub.conf配置文件,进行适当修改
有关linux磁盘配额的笔记,有需要的朋友拿去,呵呵。
1、开启分区配额功能
编辑/etc/fstab 文件,在挂载属性上加上标志(userpuota或grpquota)
例子:/dev/sda4 /home ext4 defaults,usrquota 1 2
临时设置: mount -o remount,usrquota /home
2、建立配额数据库
quotacheck -cvug /dev/sda4
会生成aquota.user aquota.group两个文件
3、启动配额功能
quotaon 分区名称
例子:quotaon /home quotaoff 关闭配额
4、编辑用户配额
edquota 用户名 edquota -g 用户组名
edquota -t 设置宽限时间
复制用户配额
edquota -p 模板用户 复制用户1 复制用户2
quota 命令查看用户的配额使用情况
管理员查看配额信息:repquota -a
blocks(kb) soft hard 文件大小
inodes soft hard 文件多少