ubuntu16.04误删高于当前版本内核,开机黑屏,只显示/dev/sda9:clean...files,...blocks,更换内核后卡在开机界面,解决安装包依赖,重新安装ubuntu桌面解决问题

1 背景介绍

1 起因

我使用的Ubuntu16.04在安装的过程中/boot只分了200M空间,导致后续更新的过程中被新内核占满了空间,当时boot中所包含的内核有*linux-image-4.15.0-28-generic,linux-image-4.15.0-43-generic,linux-image-4.15.0-45-generic,linux-image-4.15.0-46-generic,linux-image-4.15.0-47-generic,linux-image-4.15.0-50-generic,linux-image-4.15.0-51-generic,linux-image-4.15.0-54-generic,*终端输入df查询硬盘空间利用情况显示boot已用100%,而且系统一直提示boot空间已满。实在受不了系统的提示了,再加上后期安装package时提示boot空间已满,无法安装,于是上网搜索释放boot空间的方法。

2 释放boot空间

网上方法大都一致,首先在终端中输入uname -a查看当前使用内核,我的显示为4.15.0-43,然后输入sudo dpkg --get-selections | grep linux-image查看boot中所有的内核,我的查完显示为上述一堆内核。然后网上的教程就教你把非当前使用的所有内核使用sudo apt-get purge linux-image-X.XX.X-XX-generic 删除,然后再输入sudo update-grub更新grub。我当时还有些犹豫,因为我的当前使用版本内核低于大部分boot中已有的内核,但考虑到要释放boot空间,安装急需的package,所以就把除4.15.0-43的内核全部删除了。删除完当时并没有出现什么问题,而且boot空间被释放了好多,心情一下子舒畅了。可是后来重启的时候,我的心情一下子跌到了谷底。开机界面一直黑屏,只有两行提示信息:
/dev/sda9:clean, 55902/1458176 files, 1276898/5827584 blocks
/dev/sda8:clean, 241703/2445984 files, 1649892/9764864 blocks
因为安装有重要软件,不能重装系统,只能在网上一步步寻找答案解决问题,最后花费了好几天时间才把问题解决。

2 解决问题的过程

2.1 显卡

首先上网搜删除内核后开机黑屏的问题,网上一堆解释,有的说是升级内核后显卡不兼容,启动的时候不要加载显卡,要修改开机启动时的grub选项,将ro改为rw,详情参见这篇文章 https://blog.csdn.net/gavinmiaoc/article/details/82968853 ,这种方法可能对一些人有用,但是对于我来说并不适用。也有人说要更新显卡驱动,给出了一堆代码更新显卡驱动,但是都是nVidia的显卡,我的是amd的显卡,对于我来说也不适用。

2.2 重装内核

尝试的第二种方法就是重新装回删除的内核。由于我删除的内核较多,全部装回来boot还是会满,所以我只尝试装了50,51,54这几个版本,具体方法入下:

  1. 使用ubuntu的U盘安装盘启动,并进入“Try ubuntu”模式

  2. 打开终端并输入sudo parted -l,从获得的信息中判断“/” 和“boot”所在的盘符,比如我的分别是/dev/sda9 和/dev/sda7。

  3. 输入sudo mount /dev/sda9 /mnt (这里的“9”是我“/”所在的盘符)和 sudo mount --bind /dev /mnt/dev将“/”挂载在/mnt 下,并挂载其/dev文件。

  4. 输入sudo mount /dev/sda7 /mnt/boot将“boot” (这里的“7”是我boot所在的盘符)挂载到/mnt/boot 下。

  5. chroot到损坏的系统,挂载剩余的重要文件系统,并设置一些重要的环境变量。

    sudo chroot /mnt
    mount -t proc none /proc
    mount -t sysfs none /sys
    mount -t devpts none /dev/pts
    export HOME=/root
    export LC_ALL=C
    
  6. 检查网络:输入ping -c 5 www.google.com
    应该到类似下面的一些反馈:
    PING www.l.google.com (74.125.131.147) 56(84) bytes of data.
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
    64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms
    — www.l.google.com ping statistics —
    5 packets transmitted, 5 received, 0% packet loss, time 4006ms
    rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
    如果得到的是上述结果则跳到8,如果得到 ping: unknown host www.google.com 则执行 7

  7. 打开新的终端,输入

     sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
     sudo cp /etc/hosts /mnt/etc/hosts
     sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
     exit
    

    再次输入 ping -c 5 www.google.com检查能否联网

  8. 安装所需的内核

    apt-get update
    apt-get -y install linux-image-generic

  9. 如果执行了7 则输入 cp /etc/hosts.old /etc/hosts存储就版本的host, 如果没有执行7 则跳过此步执行10

  10. 解除挂载:

    umount /proc || umount -lf /proc
    umount /sys /dev/pts
    exit
    sudo umount /mnt/dev /mnt
    

    如果最后一步报错则先解除/mnt/boot 再解除/mnt

  11. 重启后拔掉u盘应该能开机了。

详情请参考这篇文章:https://askubuntu.com/questions/28099/how-to-restore-a-system-after-accidentally-removing-all-kernels/166010#166010

如果到这我的问题解决了的话就不会花费好几天的时间了,我发现我用这种方法装完内核后,内核是装在了u盘启动的boot中,没有装到我原来系统的boot中。于是我直接把原来boot中的所有文件全部删除,然后把u盘boot中的所有文件拷贝到了我的boot中。重启之后只有桌面背景,什么都不能动,然后我又进行了下一步尝试

2.3 安装桌面环境

我搜了很多资料,确定是没有图形界面的原因,所以要重新安装桌面环境。ubuntu有很多桌面环境,在这里我只尝试了以下几种。

2.3.1 安装unity

开机黑屏的情况下按Ctrl+Alt+F1或者F2,F3,F4,F5,F6到tty的文本编辑界面,输入用户名和密码登录后输入以下代码:

sudo apt-get update
sudo apt-get install ubuntu-desktop --reinstall
sudo apt-get install unity

如果在执行的过程中报错,说存在依赖问题,则先安装aptitude: sudo apt-get install aptitude然后执行sudo aptitude install unity ,系统会在安装软件的过程中自动解决依赖的问题。

重启后不可以的话在登录tty后输入sudo apt-get install compizconfig-settings-manager安装compizconfig-settings-manager,然后再输入DISPLAY=:0 ccsm启动compizconfig-settings-manager,按Ctrl+Alt+F7回到图形界面,在compizconfig-settings-manager中的desktop栏中选择“Ubuntu unity Plugin”,重启后问题就修复了。详情参看 https://blog.csdn.net/lb838315586/article/details/82821842

1. 如果桌面异常卡顿且cpu占用率很高,则在开机的过程中的grub界面选择“Advanced options for Ubuntu”,然后选择低版本内核启动。这是内核兼容问题导致的桌面卡顿问题。详情参看 http://www.mintos.org/hardware/kernel-stuck.html

2. 如果正常显示菜单栏和任务栏,但屏幕是黑的,则在终端输入 gsettings set org.gnome.settings-daemon.plugins.background active true详情参看 https://ubuntuqa.com/article/1156.html

3. 如果鼠标右键不能使用,则安装gnome-tweak-tool工具 sudo apt install gnome-tweak-tool,然后在终端输入gnome-tweak-tool ,将“Icons on Desktop”打开。详情参看 https://blog.csdn.net/weixin_38103350/article/details/75931010

2.3.2 安装gnome桌面

安装gnome桌面较为简单,只需要输入sudo apt-get install gnome,但在弹出的界面中尽量选择lightdm而不选择gdm3
如果要卸载gnome则输入

$sudo apt-get remove gnome-shell
$sudo apt-get remove gnome
$sudo apt-get autoremove
$sudo apt-get purge gnome
 $sudo apt-get autoclean
$sudo apt-get clean

详情参看 https://blog.csdn.net/mjl960108/article/details/51965434

2.3.3 安装xubuntu

在尝试的过程中无意安装了xubuntu sudo apt-get install xubunu,但是当时并不知道怎么调用xubuntu界面。后来发现,安装完xubuntu后按Ctrl+Alt+F1或者F2,F3,F4,F5,F6到tty的文本编辑界面,输入用户名和密码登录,再输入startx就可以直接打开xubuntu界面,这样就没有必要安装untiy和gnome了,但是每次重启都要经历打开tty和输入startx的过程,比较麻烦。

3 总结

我也是个Ubuntu新手,需要用到特定的软件才开始接触Ubuntu,有很多方面认识还是不到位,只是在学习的过程中把自己的一些理解记录下来,如果有大佬能帮忙指明上述内容中一些不当的地方,将不胜感激。其实我现在还有些地方想不通,删除完内核后不用再修复内核,而是直接重装桌面环境是否同样能解决问题。还有就是越来越想不明白删除内核后为什么开不了机。希望大佬们不吝赐教!

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值