任何有点电脑使用经验的人都不会在脑子不抽风的情况下把自己windows系统的C盘给格了,但如果你对Linux系统不熟悉,则很可能在误打误撞下干出这样的傻事。接下来就分享一下我的作死历程……
起因
安装Python库总是离不开pip命令,但在Ubuntu系统下老提示我的pip版本是8.3,让我升级到最新的9.1, 但根据提示输入 pip install --upgrade pip
并没有什么卵用,Google之,发现解决办法:
1
2
3
4
5
apt-get install python3-pip # 安装easy_install3
pip install --upgrade pip # 获取最新版本pip源
apt-get remove python3-pip python-pip # 卸载自带的pip
easy_install3 pip # 升级到最新版pip
pip --version # 验证
这个方法后来被我证实是可行的。 但第一次执行时提示我boot空间不足,无法安装,继续Google, 发现一篇谜一样的教程, 里面一句话有很强的误导性,说linux-后面带image的是旧的内核,于是我照文中的方法把带image的全删掉了……
但其实image只是镜像的意思,如果把现在正在使用的版本的镜像也删掉的话,重启后会进不去Ubuntu系统。只剩下memory test选项和windows启动项(如果你装了双系统的话)。
问题与解决办法
上完班关机回家,开机,好惊喜啊,没Ubuntu系统选项了,上班时删掉镜像后因为没有重启所以一直可以正常使用(万幸,不然白天没法工作了),但重新开机时加载不了内核就不行了,赶紧用另一台闲置的电脑Google(真是成也Google败也Google)解决办法,万幸遇到同病相怜之人,也是因为看了那篇清理boot空间的教程……
不过他文章中说的并不详细,加上参考另一篇文章最终解决了我的问题,现将解决办法记录如下:
所需材料
- Ubuntu安装U盘一个(已经制作好,不会的话可以自行百度)
- 一个可以联网的另一台电脑(需要下载内核,不大,50M左右)
####修复步骤
1. 插上U盘启动电脑,选择U盘为第一启动项(不同电脑设置方法不同,可自行百度)
2. 进入后,选择试用Ubuntu系统
3. 挂载boot目录到U盘
首先需要确定自己的boot目录在哪个分区,安装Ubuntu时boot一般只会分一两百M的大小空间,如果安装时没独立分区的话可以挂载根目录。 执行
sudo fdisk -l
命令来查看各个分区大小,以此来判断自己的boot分区(或根分区),例如我boot分区为200M, 根分区为50G,根据下图可判断boot分区
为/dev/sda5, 根分区(‘/’)为/dev/sda7。
接下来把root目录挂载(这样才能拷贝文件), 挂载命令如下:
1
2
sudo mkdir /media/guazai
sudo mount /dev/sdb5 /media/guazai // 如果没给root单独分区则挂载根目录
4. 将Ubuntu安装盘内的vmlinuz.efi, initrd.lz文件拷贝到电脑的root目录
1
2
sudo cp /media/cdrom/casper/vmlinuz.efi /media/guazai //此处若挂载的是根目录则应为/media/guazai/boot
sudo cp /media/cdrom/casper/initrd.lz /media/guazai //此处若挂载的是根目录则应为/media/guazai/boot
5. 拔掉U盘, 重启。进入grub页面
电脑如果只安装Ubuntu的话开机不会显示grub菜单,可以在系统启动时按shift键进入grub。但是有时候时间太短不好进可以修改/etc/default/grub文件中的GRUB_HIDDEN_TIMEOUT的值为大于0的值,则在系统启动时会等待设置的时间再进入系统,这段时间shift或者esc进入grub,再按下c进入grub命令行;
6. 引导启动
在命令行输入ls –l,会列出所有的分区及相关的文件系统类型、分区起始位置、分区大小等等;同样,根据文件大小,判断boot目录和根目录对应的分区,如下图(修复时并未截图,这里就用网上的图了)
7. 执行以下命令:
1
2
3
4
set root=(hd0,msdos5) // 这里应该是你的boot分区,若没有同样用根目录
linux /vmlinuz.efi root=UUID=xxxxxxxxxxxxxxxx //UUID为上图中的UUID,对应的应该是根(/)分区的那一行的UUID
initrd /initrd.lz
boot
8. 更新内核
boot后进入了系统, 如果鼠标和网络连接正常的情况下(hope so), 更新内核(否则重启后还是进不了系统)
1
2
sudo apt-get install linux-image-x.x.x-xx-generic
sudo apt-get install linux-headers-x.x.x-xx-generic
版本号可自行查看, 我的是4.8.12-040812,安装完成后重启系统,新内核就生效了。
9. 附加选项
不过如果你和我一样惨,boot进入原先的系统后,鼠标、网络和USB都不能用了(大写的惨!),那么还是有不就办法的,用能上网的电脑(如果是双系统可以先重启进入windows,下载对应的内核文件并拷入Ubuntu安装U盘, 继续重启,进入ubuntu 试用系统,挂载根目录(其它目录也行), 把U盘下的内核文件拷贝进根目录,拔掉U盘进入grub,输入步骤7的命令,重新进入原系统, 虽然鼠标、网络、USB不能用,但键盘一般还是能用的,Ctrl + Alt + T, 打开万能的shell, 输入以下命令:
1
2
3
4
cd / //进入你拷贝内核文件的目录,不一定是根目录
sudo dpkg -i linux-headers-4.6.4-040604_4.6.4-040604.201607111332_all.deb
sudo dpkg -i linux-headers-4.6.4-040604-generic_4.6.4-040604.201607111332_amd64.deb
sudo dpkg -i linux-image-4.6.4-040604-generic_4.6.4-040604.201607111332_i386.deb
记得替换其中的内核文件为你自己的文件。然后,重启,万事大吉!(呼~)
教训
网上教程内容繁多,互相拷贝、缺乏考证者也不在少数,需要用辩证的眼光看待,不要盲从。