admin 管理员组

文章数量: 887021

之前一直在虚拟机上开发linux代码,感觉很不方便,所以决定在我的笔记本上(在固态上已经有windows10)安装ubuntu18.04。因为装固态,所以我的机械盘c盘闲置了,刚好用来装ubuntu,有80G也够用。

事实上这是我第二次装windows+ubuntu双系统,上次是在台式机上,在一块C盘里面装了2个系统,没出任何问题。但是这次在两个盘上装双系统,却遇到了不少问题,不过还好我都解决了,记录如下,方便查看。

一、准备空闲磁盘

我打算把ubuntu装在限制的机械C盘上,右击“此电脑”->“管理”->“磁盘管理”,将目标磁盘更改成“可用空间”或“未分配”状态,方便在安装时进行区分(会有个空闲标志)。

 二、制作U盘启动工具

1. ubuntu 18.04镜像:https://www.ubuntu/download/desktop

2. 镜像烧写工具(Win32DiskImager):https://sourceforge/projects/win32diskimager/files/latest/download

3. 8G或以上的U盘

注意:使用UltraISO烧写在启动的时候可能会出现 “failed to load ldlinux.c32”,因为ubuntu太新了,UltraISO还未来得及更新引导。

 三、设置BIOS为U盘启动

在电脑开机出现品牌界面时不停地按“F12”、或“delete”、“F11”等按键进入BIOS,不同的电脑不一样,我的是MSI电脑,按的是“delete”。进入BIOS后设置U盘启动方式的优先级最高。

然后按F10快捷键 “save and reboot”。

四、Ubuntu安装向导

不知为啥不能选择断网,不过我把网线拔了;

关键步骤:选择“其它选项”,这样才能分区 ;

分区,以下内容作为参考:

(a) /boot - 200 MB以上 ; 实际需求大约 100 ~ 200MB,如果有多个内核/启动镜像同时存在,建议分配 200 或者 300 MB。(个人建议:200MB ~ 300MB) 。我给了1G。

(b) / - 15-20 GB ; 15-20 GB 对于大多数用户来说是一个比较合适的取值。。我给了30G。

(c) /home - [不定] ; 通常用于存放用户数据,下载的文件和媒体文件。在桌面系统中,/home 通常是最大的文件系统。我给了40+G。

(d) swap - [不定] ;在拥有不足 512 MB 内存的机器上,通常为 swap 分区分配2倍内存大小的空间。如果有更大的内存(大于 1024 MB),可以分配较少的空间甚至不需要swap 分区。我给了8G。

 选中“空闲”的盘,然后点击“+”进行分区。  

 

 

 

关键步骤: "安装启动引导器的设备"选择/boot对应的分区。

 

 然后就安装好了。(选择时区、语言之类的略去)

四、修复grub引导

系统安装好后,需要设置双系统引导,而且我和很多人一样,grub引导被损毁了。我这里没有使用easyBCD进行引导,其实用那个引导也是不行的(我试过,如果grub损坏的话,进入ubuntu会卡在grub命令行)。后来我选择直接在BIOS里设置硬盘(ubuntu系统所在盘)启动优先级最高,这样首先会进入ubuntu,修复好grub后也可以进行系统选择。

然后保存设置进行reboot。结果卡在grub rescue命令行界面,如下开机显示:GRUB loading error:unknow filesystem
grub rescue>。

 下面进行重新安装并修复grub2操作。

(1) 先使用ls命令,找到Ubuntu的安装在哪个分区:

在 grub rescue>下输入以下命令:

ls

会罗列所有的磁盘分区信息,比方说:(hd0,msdos1),(hd0,msdos5),(hd0,msdos3),(hd0,msdos2)

(2)  然后依次调用如下命令: X表示各个分区号码

--如果/boot没有单独分区,用以下命令:

ls (hd0,msdosX)/boot/grub

--如果/boot单独分区,则用下列命令: 

ls (hd0,msdosX)/grub

正常情况下,会列出来几百个文件,很多文件的扩展名是.mod和.lst和.img,还有一个文件是grub.cfg。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。

(3) 如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:

--以下是/boot没有单独分区的命令:

grub rescue>set root=(hd0,5)

grub rescue>set prefix=(hd0,5)/boot/grub

grub rescue>insmod  /boot/grub/normal.mod

--以下是/boot 单独分区的命令:

grub rescue>set root=(hd0,5)

grub rescue>set prefix=(hd0,5)/grub

grub rescue>insmod  /grub/normal.mod

注:第三行的命令我没在grub文件夹下找到normal.mod,经过ls查找,我在grub/i386-pc下发现了normal.mod,故第三行代码可能为如下(根据.mod文件在哪文件夹作选择)

insmod grub/i386-pc/normal.mod

(4) 然后调用如下命令,就可以显示出丢失的grub菜单了。

grub rescue>normal

(5) 如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。

启动起来,进入ubuntu之后,在终端执行:

sudo update-grub

sudo grub-install  /dev/sda

(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)

重启测试是否已经恢复了grub的启动菜单。我的可以了。

 


--参考:https://blog.csdn/stoic163/article/details/54377179   (在这篇博客提供的grub修复方案下稍作修改,最终成功完成修复。)

本文标签: 双系统 Windows grub 双盘