ubuntu升级内核过后的一些问题

2012年08月22日

Ubuntu 最麻烦的就是升级了系统内核过后容易引起各种问题,诸如显卡驱动不能正常工作而不能进入X界面,又如电源管理不能正常工作,以及下面将要谈到的丢失内核等一系列问题。

一、闭源显卡驱动fglrx不工作

如若显卡驱动不能正常工作(一般出现在ati的显卡上),需要卸载显卡驱动,重新安装上开源驱动。

#首先卸载
sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*
sudo apt-get remove --purge xorg-driver-fglrx xserver-xorg-video-ati xserver-xorg-video-radeon
#重新安装开源驱动mesa
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo rm -rf /etc/ati
#配置
sudo dpkg-reconfigure xserver-xorg
#安装好后可能3D效果还是没有,或者virtualbox不能工作,提示少了libGL.so等问题,应该是少了某些包,重新安装上
sudo apt-get install libgl1-mesa-glx xserver-xorg-video-ati

注:上面的VBOX问题,只要找到libGL.so文件复制过去就行,因为乎只缺少这个文件,可以采用ldd命令查看某个可执行的 二进制 档案依赖什么动态函数库(.so文件)。 可以上http://packages.ubuntu.com/搜索软件包以及含有某个文件的软件包。

二、丢失内核

升级内核过后,grub可能没有更新或者干脆丢失了内核。于是启动到grub的时候就不能显示系统内核项,而只有memtest项。

1、仅丢失grub更新

如果你是ubuntu单系统或者设置了grub显示时间为0,那么系统启动后将直接进入memtest,看不到grub的出现。此时,在打开电源开始启动时按住 shift 键不动直到grub出现即可。

为命令提示符):

grub> search -f /etc/fstab                        #查找硬盘,确定boot分区或者根分区的盘符位置
grub> set root=hd0,1                              #存放 vmlinuz和initrd.lz(这两个在boot目录下)的分区号,hd0硬盘上的第1个分区
grub> linux /vmlinuz root=/dev/sda1       #设置根分区位置,注意如果把boot分区和根分区分开放了,这里分区数字可能和上面不一样
grub> initrd /initrd.lz
grub> boot

进入系统后重新安装内核,再更新grub

sudo update-grub

2、丢失内核

这个就有点麻烦了,需要先冲光驱或者iso内拷过来内核。 以U盘或光驱启动,然后挂载含有boot目录的分区。

mkdir /disk
mount /dev/sda1   /disk    #如果挂载其他格式的磁盘需加上参数-t ,如mount /dev/sda1   /disk -t  ntfs
cp /cdrom/capser/vmlinuz   /disk/boot/vmlinuz
cp /cdrom/capser/initrd.lz   /disk/boot/initrd.lz

做完过后重启按照仅丢失grub的方法做即可。