折腾了一天,终于把debian的内核从2.6.18升到了2.6.31,期间甚是坎坷啊。
首先下载最新的内核源码,我选了2.6.31版的,
下载后,
tar -xjf linux-2.6.31.1.tar.bz2
cd linux-2.6.31.1
cp /boot/config-2.6.18-4-686 .config
这时才发现生成内核的几个工具 make-kpkg和mkinitrd都还没有
apt-get install kernel-package 装make-kpkg
apt-get install initrd-tools 装mkinitrd
不过貌似163的源里找不到这两个工具包,不知道为什么
接着
make-kpkg clean
make-kpkg kernel_image
在第二行命令的时候运行时间比较长,刚开始会让你回答一些问题,一路按回车即可。
N久后,执行完毕
cd ..
dpkg -i linux-image-2.6.31.1_2.6.31.1-10.00.Custom_i386.deb
这个时候出现问题了,在copy一个文件到 /lib 下时,报错没空间了,
df 看了一下,“/”目录已经100%了,lib是挂在根目录上的,同时挂在根目录上的还有 /opt /etc 等。想清理一下,发现这些目录下面的东西都还有用,没办法,把手头另外一块硬盘挂上了。
首先
fdisk -l ,看看这块硬盘找到了吗,显示/dev/sdb,还不错 找到了
fdisk /dev/sdb
"n"创建一个主分区/dev/sdb1,分出10G空间
"t"选择分区类型,"83"指定为linux
"w"保存退出
然后 mkfs.ext3 /dev/sdb1,格式化成ext3格式
完毕后 这时候重启一下linux,以确保系统能够认出来
重启完毕后,
mkdir /newfs
mount -t ext3 /dev/sdb1 /newfs
,哈哈 把分区挂上了
然后我把稍微占空间的/opt目录转移到新分区里去
1. init 1,进入单用户模式
2. cp -a /opt/* /newfs
3. umont /newfs
4. mv /opt /var/opt.bak
5. mv /newfs /opt
7. mount -t ext3 /dev/sdb1 /opt
,然后修改 /etc/fstab ,加入
/dev/sdb1 /opt ext3 default3 1 1 ,确保系统每次启动后都自动挂载
教训:千万不要乱动/lib /usr /sbin目录,一旦操作不当系统就会挂掉
这时腾出来不少空间
重新
dpkg -i linux-image-2.6.31.1_2.6.31.1-10.00.Custom_i386.deb
安装成功
,然后
mkinitrd -o initrd.img /lib.modules/2.6.31.1 ,后面这个目录是在安装的时候生成的,千万不要敲错否则生不成image
然后
update-grub
,重启就可以了