惠普Z840工作站使用U盘安装ubuntu16.04以及grub无法引导问题总结(干货)
一、制作U盘启动盘
具体过程可参考该博客:https://blog.csdn.net/yaoyut/article/details/78003061
- 从Ubuntu官网http://cn.ubuntu.com/download/下载你需要安装的系统的iso文件 (用来制作的U盘需要是FAT32格式的,可以通过格式化U盘更改)
- 通过UltraISO来进行启动盘的制作
二、利用U盘启动盘安装ubuntu16.04
(1)bios设置:
1.插上制作好的启动盘,开机,进入logo界面按Esc进入Startup Menu,选择BIOS Setup:
2.在BIOS Setup里面选择Advanced,再进入Boot Options:
3.如图禁用UEFI模式,使用传统的Legacy模式(注意此处要把USB调整到第一项):
4.完成设置回到Main选项,Save Changes and Exit,选择yes保存更改,就进入了U盘启动安装界面。
(2)安装ubuntu16.04
1.选择中文版或者英文版都行,为了方便以后google,建议英文版:
2.这一步都不用选,无需下载更新,不然会影响安装的速度:
3.选择”Something else”,方便我们自己分区,自定义安装的磁盘属性、大小等:
4.分区:由于惠普Z840是256G的固态+2T的机械,所以考虑运行速度(特别是做深度学习),将Swap、/boot、/三个分区都放在固态里面,机械就只放/home分区。我的分区具体如下,可做参考:
Swap:64G(考虑Z840内存为32G,所以两倍完全够用),分区类型选择logical;
/boot:1G(这是系统引导分区,一般的500M完全够,我用1G是为了看起来舒服),分区类型primary;
/:191G(这相当于Windows的C盘,大点肯定没问题),分区类型primar;
/home:2T(用来存放个人文档、软件包等等),分区类型logical。
(注意:最下面的Device for boot loader installation我们要选择我们刚刚分区的时候/boot的磁盘好,我的是sda2,这是为了每次启动的时候引导启动ubuntu系统,非常重要!!!)
等待安装……………..完成,重启电脑
三、无法引导ubuntu启动问题
这是本文章的重点,我也是在上面踩了好久,来来回回装了几十遍系统,终于摸到点底~
重启过后我们会发现系统报错,直接进入了grub rescue自救界面,首先说一下产生的原因:
引起这类问题的原因有很多,比如在windows系统中删除linux系统或者是直接格式化linux盘(我之前就是这么做的,因为方便快捷,结果导致这个问题,坠入了这个深坑),linux系统到启动分区被更改了……总之就是grub配置文件已经被损坏,导致不能正常启动,而进入了救援模式。
主要分为一下几个步骤:
1. 利用 ls 命令列出磁盘信息:
grub rescue> ls
比如说,结果为:
(hd0,msods1),(hd0,msdos2),(hd0,msdos3),(hd1,msdos2),…..
继续利用 ls 命令来查找 ubuntu 分区:这里需要注意区分在安装ubuntu时是否单独分了/boot分区(因为有些博客里面说不用给/boot分区可解决这个问题,但是我尝试了好像不能解决我的这个问题,所以找了其他的资料,进行尝试)
grub rescue> ls (hd0,msdos1)/boot/grub # 未单独分出/boot分区
grub rescue> ls (hd0,msdos1)/grub # 单独进行啦/boot分区
针对以上所示到磁盘分区逐个调用上述命令,直到结果显示没有错误,而是列出一系列文件为止。我的是 ls (hd0,msdos3)/grub 到时候列出了一些文件,说明找到了ubuntu分区。
3. 修改启动分区:同样区分/boot是否单独分区的情况
#/boot没有进行单独分区:
grub rescue> set root=(hd0,msdos3)
grub rescue> set prefix=(hd0,msdos3)/boot/grub
grub rescue> insmod /boot/grub/normal.mod
grub rescue> normal
#/boot进行单独分区:
grub rescue> set root=(hd0,msdos3)
grub rescue> set prefix=(hd0,msdos3)/grub
grub rescue> insmod /grub/normal.mod
grub rescue> normal
# 正常情况下,这就可以启动进入ubuntu启动界面啦
我的情况是/boot单独分区啦,可是利用上述方法并不成功,总说找不到文件,后来百度经验和另外一个博主的方法给了答案:
set root=(hd0,msdos3)/grub
set prefix=(hd0,msdos3)/grub
insmod normal
normal
4.进入ubuntu之后,修复grub:
开机之后,打开终端:
sudo update-grub
sudo grub-install /dev/sdb
# 这里sda就是ubuntu安装到了那个硬盘,我到是在固态硬盘里面,刚好是sda,千万不要写sda2等具体分区,具体为啥我也没尝试。