Ubuntu 16.04 LTS误删系统内核或驱动导致无法上网解决方案
我花了将近3天的才解决了这个问题,期间多次想放弃、直接重装系统(还好我没有),但一想到重装系统要重新配置那么多东西就不胜其烦。
我前天突然心血来潮想要清理下系统多余内核,说干就干。我马上在网上搜到相关命令后就开始敲,前后敲了这些“死亡”命令:
1658 uname -a
1659 dpkg --get-selections|grep linux
1660 sudo apt-get remove linux-image-4.15.0-29-generic
1661 sudo apt-get remove linux-modules-extra-4.4.0-146-generic
1662 exit
1663 dpkg --get-selections |grep linux-image
1664 sudo apt-get remove
1665 sudo apt-get update
1666 sudo apt-get upgrade
1667 sudo gedit /etc/apt/sources.list
1668 sudo apt-get dist-upgrade
1669 exit
1670 sudo apt-get purge linux-image-4.15.0-29-generic linux-image-4.15.0-42-generi
1671 ps -e|grep apt-get
1672 sudo rm /var/cache/apt/archives/lock
1673 sudo rm /var/lib/dpkg/lock
1674 sudo apt-get purge linux-image-4.15.0-29-generic linux-image-4.15.0-42-generi
1675 jps -m
1676 kill 2601
1677 jps -m
1678 ps aux
1679 exit
1680 uname -r
1681 sudo dpkg --get-selections |grep linux
1682 sudo apt-get purge linux-image-4.15.0-29-generic linux-image-4.15.0-42-generic linux-image-4.15.0-43-generic linux-image-4.15.0-45-generic linux-image-4.15.0-46-generic linux-modules-4.15.0-29-generic linux-modules-4.15.0-42-generic linux-modules-4.15.0-43-generic linux-modules-4.15.0-45-generic linux-modules-4.15.0-46-generic
1683 sudo dpkg --configure -a
1684 cd
1685 sudo apt-get purge linux-image-4.15.0-29-generic linux-image-4.15.0-42-generic linux-image-4.15.0-43-generic linux-image-4.15.0-45-generic linux-image-4.15.0-46-generic linux-modules-4.15.0-29-generic linux-modules-4.15.0-42-generic linux-modules-4.15.0-43-generic linux-modules-4.15.0-45-generic linux-modules-4.15.0-46-generic
1686 sudo dpkg --configure -a
1687 sudo rm /var/lib/dpkg/updates/*
1688 sudo apt-get purge linux-image-4.15.0-29-generic linux-image-4.15.0-42-generic linux-image-4.15.0-43-generic linux-image-4.15.0-45-generic linux-image-4.15.0-46-generic linux-modules-4.15.0-29-generic linux-modules-4.15.0-42-generic linux-modules-4.15.0-43-generic linux-modules-4.15.0-45-generic linux-modules-4.15.0-46-generic
1689 uname -r
1690 sudo dpkg --get-selections |grep linux
1691 sudo apt-get purge linux-headers-4.15.0-46 linux-headers-4.15.0-46-generic linux-headers-4.4.0-145 linux-headers-4.4.0-145-generic linux-headers-4.4.0-146 linux-headers-4.4.0-146-generic linux-headers-generic linux-image-4.4.0-142-generic linux-image-4.4.0-143-genericlinux-image-4.4.0-145-genericlinux-image-4.4.0-146-generic linux-image-extra-4.4.0-142-generic linux-modules-4.4.0-143-generic linux-modules-4.4.0-145-generic linux-modules-4.4.0-146-generic linux-modules-extra-4.15.0-29-generic linux-modules-extra-4.15.0-42-generic linux-modules-extra-4.15.0-43-genericlinux-modules-extra-4.15.0-45-generic linux-modules-extra-4.15.0-47-generic linux-modules-extra-4.15.0-48-generic linux-modules-extra-4.4.0-143-generic linux-modules-extra-4.4.0-145-generic linux-modules-extra-4.4.0-146-generic
1692 sudo apt-get purge linux-headers-4.15.0-46
1693 sudo apt-get purge linux-headers-4.15.0-46-generic
1694 sudo apt-get purge linux-headers-4.4.0-145
1695 sudo apt-get purge linux-headers-4.4.0-145-generic
1696 sudo apt-get purge linux-headers-4.4.0-146-generic
1697 sudo apt-get purge linux-headers-4.4.0-146
1698 sudo apt-get purge linux-image-4.4.0-142-generic
1699 sudo apt-get purge linux-headers-generic
1700 sudo apt-get purge linux-image-4.4.0-143-genericlinux-image-4.4.0-145-generic
1701 sudo apt-get purge linux-image-4.4.0-143-generic
1702 sudo apt-get purge linux-image-4.4.0-145-generic
1703 sudo apt-get purge linux-image-4.4.0-146-generic linux-image-extra-4.4.0-142-generic
1704 sudo apt-get purge linux-modules-4.4.0-143-generic linux-modules-4.4.0-145-generic
1705 sudo apt-get purge linux-modules-4.4.0-146-generic linux-modules-extra-4.15.0-29-generic
1706 sudo apt-get purge linux-modules-extra-4.15.0-42-generic linux-modules-extra-4.15.0-43-generic
1707 sudo apt-get purge linux-modules-extra-4.15.0-45-generic linux-modules-extra-4.15.0-47-generic
1708 sudo apt-get purge linux-modules-extra-4.15.0-48-generic
1709 sudo apt-get purge linux-modules-extra-4.4.0-143-generic
1710 sudo apt-get purge linux-modules-extra-4.4.0-145-generic
1711 sudo apt-get purge linux-modules-extra-4.4.0-146-generic
1712 sudo apt-get autoremove
1713 sudo dpkg --get-selections |grep linux
1714 uname -r
当时没觉得有什么不对,反而看到少了很多的内核与驱动,心情大悦。然而(坏事往往都有个“然而”),当我重启机子后发现,联不上网了,怎么试都没用。
我一想到刚刚的那波操作,瞬时觉得大事不好——捅篓子了,还是天大的篓子!之后,我陆续看了很多的博客与论坛,试了许多办法,都没用!
几经周折,我已经打算要重装系统了,绝望前我还想再挣扎一下。我到接单的技术QQ群里面发布了“有偿解决问题”的消息,第一天没人接,今天才有人找来,但听了我的问题就说“我可能也拯救不了”;此时我已经打算找人在我重装系统之后帮忙配置Spark环境了。虽然找上门来的技术没有解决我的问题,但他給我带来一个我以前不知道的“新”命令:history——在终端输入history后,系统会显示近期你在终端键入的1000条命令,这給我解决问题带来了新的灵感:
通过history查询我以前输入的命令,同时也就知道我都删除了那些系统内核与驱动,再用另一台可以上网的机子将对应的内核或驱动下载下来,拷到我的机子上安装,说不定就成了。
一想到此,我抱着最后的希望试了一下。在“暴力”安装内核或驱动的过程中,有些会因为“依赖关系”而报错,直接忽略错误提示,直到把所有下载下来的.deb文件都安装完毕,无法安装的也不必在意。完事后我重启机子,当在登录界面看到“您已连接到‘自动以太网’”与联网标识时我的激动难以言表!
总结:
问题:
Ubuntu 16.04 LTS误删系统内核或驱动,导致无法机子联网。
解决方案:
通过history命令查询自己删了哪些内核或驱动,之后借一台可以上网的机子,到网上下载所有对应内核或驱动,再拷到自己的机子上,在.deb文件所在路径下打开终端,进入root,用下列命令逐一安装:
sudo dpkg -i *.deb
命令中的*代指内核或驱动的全名。重启机子,又可以联网了。