惠普Z840工作站使用U盘安装ubuntu16.04以及grub无法引导问题总结(干货)


一、制作U盘启动盘

具体过程可参考该博客:https://blog.csdn.net/yaoyut/article/details/78003061

  1. 从Ubuntu官网http://cn.ubuntu.com/download/下载你需要安装的系统的iso文件 (用来制作的U盘需要是FAT32格式的,可以通过格式化U盘更改)
  2. 通过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等具体分区,具体为啥我也没尝试。