Win10+Ubuntu双系统安装失败的一种解决方案

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
男菜鸟
帖子: 1351
注册时间: 2008-12-16 14:01
来自: 漂在江湖

Win10+Ubuntu双系统安装失败的一种解决方案

#1

帖子 男菜鸟 » 2018-02-07 11:31

去年秋天,新买了一部笔记本电脑,Acer Spin513 配置是CPU 7200U,8G,256SSD 算是大路的标准配置。原机安装了Win10 64位的家庭版操作系统。自从喜欢Linux后,我使用的电脑都是安装了双系统,平时95%的时间都是使用Linux系统,只有上网银才无奈地开启Win系统。新电脑安装了Win10,现在硬盘一般都是使用UEFI启动,这样在安装双系统时就会有些新问题,事先在网上搜一下,确实有不少朋友安装双系统时碰到问题,但是也有不少朋友很顺利地安装了双系统,为什么同样的安装方法,结果却不一样?众说纷纭。

实践是检验真理的唯一标准。走先!先使用Live USB(ubuntu 16.0.4版本)启动电脑,使用一段时间,发现没有任何问题,于是启动"gparted"在SSD上划出2个空间,留给UBT安装使用。同时留意一下,原来WIN系统的“efi”分区位置,我的电脑在“sda1”(你的电脑可能不一样),这在下面的安装时要用到它!
b1a.png
b1a.png (94.43 KiB) 查看 3741 次
接着开始安装UBT,在分区一步,20G空间给"/", 80G给"home",SSD空间有限,分配这些空间给UBT也够用了。特别注意的是“启动器”要安装在“sda1”也就是原来WIN系统的“efi”分区!其他安装步骤和一般无异,一路回车,没有如何出错提示,顺利安装完毕!关闭电脑!拔下Live USB。重启电脑。

电脑亮屏后,立刻进了熟悉的WIN10!咦,咋没看见熟悉的双系统菜单?那怎么进UBT? 仔细回忆,安装UBT的过程也没有什么错误提示,一路顺风安装下来的,怎么重启电脑就没有GRUB的双系统菜单呢?问度娘,竟然有不少同病的!但是没见有效的解决方法。
考虑多天,也重新安装过UBT,故障依旧,试过EasyBCD¨,没想到,它自己就投降了!
b2.png
也试用过"Boot Repair",看看是否能恢复GRUB菜单,结果也无效! 一时无计。

冷静下来想想,UBT明明是正常安装了,为什么看不到GRUB菜单,而直接进入WIN10系统?应该是GRUB的启动器没有启动?!如果可以恢复GRUB的启动器,那不但可以进入UBT,而且还可能看到WIN10的入口。UBT的启动器是安装在"sda1"分区的,我们应该进入那里去寻找答案!
于是,再次使用Live USB启动电脑,在终端输入以下命令:
sudo mkdir /media/tmp
sudo mount /dev/sda1 /media/tmp
b3.png
我们可以看到,这里有一个EFI目录,其下分别有"boot"、"ubuntu"、"Microsoft"三个子目录,分别内含bootx64.efi、bkpbootx64.efi; grubx64.efi、fwupx64.efi、mmx64.efi、shimx64.efi;bootmgfw.efi、bootmgr.efi、memtest.efi。我们知道WIN系统正常启动是执行bootmgfw.efi,现在UBT正常安装后,启动还是进入WIN系统,说明系统没有执行UBT的grubx64.efi

有迹象显示WIN系统是允许其他操作系统共存的,但是它是怎么操作的我们现在不知道。那么我们是否可以设法先启动UBT系统,再由UBT的GRUB菜单来选择启动WIN系统?我的想法是使用UBT的grubx64.efi 来代替bootmgfw.efi 蒙骗系统进入UBT!

我进行以下的操作:
1.启动电脑,按F2进入BIOS(不同品牌电脑,可能使用不同的F键,看你的电脑说明书),设置secure=disable,按F10,保存退出。
2.插上Live USB(16.0.4 LTS),重启电脑,进入“Try ubuntu”,打开终端:
sudo mkdir /media/tmp
sudo mount /dev/sda1 /media/tmp

cd /media/tmp #进入efi分区
sudo cp EFI/ubuntu/grubx64.efi EFI/Boot/ #"复制“grubx64.efi"到boot .......
cd EFI/Boot #到boot目录
sudo mv bootx64.efi bootx64.efi.bak #备份“boottx64.efi”
sudo mv grubx64.efi bootx64.efi #用"grubx64.efi"替代"bootx64.efi"
cd .. #返回EFI目录
sudo mv Microsoft/boot/bootmgfw.efi Microsoft/boot/bootmgfw.efi.bak #备份“bootmgfw.efi”
sudo cp ubuntu/grubx64.efi Microsoft/boot/bootmgfw.efi #用“grubx64.efi”替代“bootmgfw.efi”

这个时候我们已经成功用UBT的启动文件,覆盖了WIN的启动文件。重启电脑,我们熟悉的GRUB菜单出现了!
b4a.png
经过测试,我们可以正常打开UBT了,而且GRUB也自动认出了WIN10系统,你选第四项¨windows Boot UEFI Loader¨就进入WIN10系统啦!
这个菜单和你的不一样?是的,我修改过这个菜单把我不需要的项目删除了,你也可以通过修改/etc/grub.d/25_custom来实现,当然最后别忘记¨update-grub¨。

本文在码字过程中,2018.1.30晚上退出WIN系统关机时,系统自动更新了一次。不料,31日开机时,没见双系统菜单,电脑竟然又直接进入了WIN系统,重启故障依旧!吓死宝宝了。想一想,应该和昨晚的更新有关!

再次插上Live USB,启动电脑,进UBT后,打开终端,仔细比较,发现前面设置的文件,"bootx64.efi"大小发生变化!于是在终端进行以下操作,恢复原来的文件:

sudo mkdir /media/tmp
sudo mount /dev/sda1 /media/tmp
cd /media/tmp
sudo cp EFI/ubuntu/grubx64.efi EFI/Boot/
cd EFI/Boot
sudo mv grubx64.efi bootx64.efi
cd ..
sudo cp ubuntu/grubx64.efi Microsoft/boot/bootmgfw.efi
然后
diff ubuntu/grubx64.efi Microsoft/Boot/bootmgfw.efi
diff ubuntu/grubx64.efi Boot/bootx64.efi

没有差异报告,发现文件一致无误了!
关机,拔下Live USB,再开机,呵呵双系统菜单又回来了!小样,想溜走?没门!

小结:本文是针对“原装WIN10系统,再安装UBT系统,安装后没有GRUB双系统菜单”的一种解决方案。你要是碰到同样的问题,不妨试试这个方案?!
头像
aerowolf
帖子: 1778
注册时间: 2006-02-25 17:09
来自: 西安

Re: Win10+Ubuntu双系统安装失败的一种解决方案

#2

帖子 aerowolf » 2018-02-07 16:14

分享:我的做法是:
首先,把Ubuntu的引导记录安装在/所在分区。
其次,在Windows10中安装EasyBCD,直接添加Linux引导记录。注意,“驱动器”项设置为Linux所在分区。

这样就可以在Windows10的引导菜单中选择启动Ubuntu,Ubuntu就完全不会“干扰”Windows。
早起的鸟儿有虫吃
早起的虫儿被鸟吃

http://aerowolf.blog.sohu.com/
亲,点一下免费获得Dropbox空间!
头像
男菜鸟
帖子: 1351
注册时间: 2008-12-16 14:01
来自: 漂在江湖

Re: Win10+Ubuntu双系统安装失败的一种解决方案

#3

帖子 男菜鸟 » 2018-02-07 19:45

aerowolf 写了: 其次,在Windows10中安装EasyBCD,直接添加Linux引导记录。注意,“驱动器”项设置为Linux所在分区。

这样就可以在Windows10的引导菜单中选择启动Ubuntu,Ubuntu就完全不会“干扰”Windows。
奇怪,我尝试¨EasyBCD¨时却不让安装。见上图2,不知道什么原因 :Cry
fuhuizn
帖子: 947
注册时间: 2006-01-06 22:55
系统: ubuntu
联系:

Re: Win10+Ubuntu双系统安装失败的一种解决方案

#4

帖子 fuhuizn » 2018-03-13 22:16

grub要装在“/dev/sda”
回复