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的方法做即可。