1 win10双系统安装ubuntu16.04和18.04(问题详细记录)
我从来不想在琐事上花功夫。就拿装系统来说,我感觉拿过来一个完全陌生的项目源码,看起来,都比装系统爽。我属于典型的逻辑思考男。喜欢畅游程序的海洋。
一直windows跑深度学习和tensorflow,有些项目源码是linux下的,不得已,需要安装linux系统。
初始选择的是ubuntu16.04,但是由于对双显示屏幕起的酷爱,最终又换成了ubuntu18.04,显示效果相较于ubuntu16.04高了n个层次。因为对集成显卡intel 630显卡的支持是在linux 14.5内核版本以后。而ubuntu16.04的内核版本是linux 13。
先后在win10下以双系统的方式成功安装了两个ubuntu系统,过程中遇到很多问题。详细记录如下。
如果朋友们不想看这么繁琐的过程,直接看最后的总结即可。
1 已有的最佳安装博文
Ubuntu 16.04与Win10双系统双硬盘安装图解,见https://blog.csdn.net/fesdgasdgasdg/article/details/54183577
注意,该博文文不对题。其原文有这样的话:
“我的是thinkpad本,1T的机械硬盘(分了N多个盘,全部是主分区),120G的固态硬盘(系统盘)。于是我在初次安装的时候,把Ubuntu安装在了机械硬盘的某个主分区,然后用EasyBCD制作启动项后重启电脑,死活都启不动Ubuntu系统,加上在安装过程中的一步失误,还把握的系统盘给挂了一次。滴血的教训。
故,对于有多块硬盘的朋友,我的建议是:在当前系统所在的硬盘上,留一片空的主分区安装Ubuntu系统。千万不要像我这样在次要硬盘上做文章,就算你在次要硬盘上装个Win7系统,也一样启不动。”
所以,这个双硬盘不是将两个系统安装在不同的硬盘上。
2 我安装过程的全记录之ubuntu16.04(从小白到最后成功,不感兴趣的可以直接看第3部分总结)
2.1 机器主要配置:
- 主板 华硕 ROG STRIX Z370-H GAMING ( 英特尔 PCI 标准主机 CPU 桥 - 200 Series 芯片组 Family - A2C9 )
- 处理器 英特尔 Core i7-8700K @ 3.70GHz 六核
- 内存 32 GB ( 金士顿 DDR4 2400MHz )
- 主硬盘 三星 SSD 860 EVO 250GB ( 250 GB / 固态硬盘 )
- 副硬盘 希捷 ST1000DM010-2EP102 容量 1 TB
- 显卡 Nvidia GeForce GTX 1080 Ti ( 11 GB / 微星 )
- 显示器1 三星 SAM0C19 S24E390
- 显示器2 明基 BNQ7B30 BenQ VW2245
首先,我的win10系统是将主硬盘划分出120G装的。因此还剩余120G,准备安装ubuntu。
其次,为了避免占用1080 ti显卡的显存,我的两个显示器都是连接在集成显卡上,就是主板自带的显卡。主板使用的显卡是intel UHD 630。
按照https://blog.csdn.net/fesdgasdgasdg/article/details/54183577的方式安装ubuntu16.04时,安装成功。但是,也能双系统引导。但是,遇到一个问题:
the system is running in low-graphics mode
2.2 the system is running in low-graphics mode
网上方案一:
sudo add-apt-repository ppa:graphics-drives/ppa
sudo apt-get-update
sudo apt-get-upgrade
sudo reboot
添加源,然后更新驱动,进行一系列更新。
会提示用
Sudo apt-get update –fix-missing
然后执行
Sudo apt-get update –fix-missing
都不行。因为没有指明是什么显卡的驱动。源也不一定添加的正确。
网上方案二:
使用https://www.linuxidc.com/Linux/2017-03/141454p2.htm?from=timeline中的
Intel® Graphics Update Tool 2.0.2 for Ubuntu* 16.04, 64-bit
但是,https://m.aliyun.com/yunqi/articles/588720中说
“
Ubuntu 16.04的内核版本过低,一般Ubuntu都默认包含了Intel显卡的驱动,如果没有,那么先确定是不是显卡太高,比如I7第7代的CPU核显在Ubuntu 16.04中是没有的,导致画面会很卡,原因是Linux 4.4内核不包含Intel HD Graphics 630驱动,解决方法只能是在Ubuntu 16.04中升级Linux内核为4.7的。
”
于是,我查看自己的内核版本,使用 cat /proc/version命令查看内核版本为linux version 4.13.0-36-generic版本。也有的人说,只有4.15版本以上才能支持uhd 630的驱动”
“
chih758
108 天前
https://www.reddit.com/r/linuxhardware/comments/7v6sdr/intel_uhd_graphics_630_support/?utm_source=reddit-android
https://www.phoronix.com/scan.php?page=article&item=coffee-uhd-graphics&num=1
找了两个帖,不知道有没有帮助。
Intel 的
Linux 显卡驱动原来已经这么垃圾了吗,8
代发布很长时间了,还没适配。我的
6 代的核显驱动也有问题,硬解偶尔会导致整个系统
hanging。
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1710051
”
这说明Intel® Graphics Update Tool 2.0.2 for Ubuntu* 16.04, 64-bit也不一定对intel 630的显卡有效支持。内核也不支持。网上各种吐槽intgel的linux显卡驱动。windows做的那么好,linux下却做的很差。
于是,我决定升级内核。
自己的解决方案三:
https://blog.csdn.net/csdn_duomaomao/article/details/77668946
里有详细的内核升级过程。
http://kernel.ubuntu.com/~kernel-ppa/mainline/是内核目录
我选用
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.18/
4.15.18版本
使用wget下载三个deb文件
即使ctrl+alt+F1直接进入了命令行模式,但是下载需要联网。于是,还是要进界面进行联网。
参照https://www.cnblogs.com/Undo-self-blog/p/8098104.html中的
进入界面。进入以后,会非常卡顿。
因为没有intel uhd 630的显卡驱动。这是内核版本过低导致。
但是https://www.cnblogs.com/Undo-self-blog/p/8098104.html里面更新驱动的方式不建议。还是直接更新内核。因为intel为ubuntu 16.04内核版本写的显卡驱动程序本身支持的就不好。
#下载完成以后,安装内核文件
sudo dpkg -i *.deb
#安装完成以后,重新启动系统,验证内核的版本
uname -sr
升级内核成功。界面不再卡顿。
但是,仍然总是提示检测到系统程序出现问题。
查看问题内容是:
Xorg crashed with sigabrt
2.2 检测到系统程序出现问题
Xorg crashed with sigabrt
查看问题内容是:
ExecutablePath
/usrlib/xorg/Xorg
然后 title是
Xorg crashed with sigabrt in rrproviderAutoConfigGpuScreen()
Package是
Xserver-xorg-core-hwe xxxx出了问题。
我怀疑是因为之前为了进入图形界面,执行下面操作:
以后导致的。
我决定更新Xserver-xorg-core(就是图形化桌面)
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1710051
网址中说了如下内容:
“
- I upgraded to the xserver-xorg-video-intel version that is in this PPA: https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers -- after this, the problem went away, definitively. I have only been running this version for a day, but have had no crashes, and the Facebook WebGL reproduction case is no longer a reproduction case.
My suspicion is that this is a bug deep in the intel driver and its interaction with certain GPUs, since the hang has happened in more than one userland program, and seems to be "repaired" by recent updates in the above-linked PPA.
”
https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers 中说:
“
Adding this PPA to your system
You can update your system with unsupported packages from this untrusted PPA by adding ppa:oibaf/graphics-drivers to your system's Software Sources. (Read about installing)
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt-get update
Supported architectures: amd64, arm64, i386
Supported Ubuntu versions:
- 16.04 (xenial)
- 17.10 (artful)
- 18.04 (bionic) <- suggested version
- 18.10 (cosmic)
”
关键的是如果安装以后有问题,它提示可以用下面的方法回到之前的ubuntu自带
重装了以后。果然没有再提示Xserver-xorg方面的错误了。
但是,我对ubuntu 16.04已经·心灰意冷。于是决定,装ubuntu18.04
而且16.04对双显支持不好,开双显示屏时,各种不协调的画面。
3 我安装过程的全记录之ubuntu18.04LTS
仍然用https://blog.csdn.net/fesdgasdgasdg/article/details/54183577中的方式去制作u盘启动盘等,安装ubuntu18.04LTS。
却最后环节提示:
无法将grub-efi-amd64-signed软件包安装到/target
3.1 无法将grub-efi-amd64-signed软件包安装到/target
用下面的链接进行解决。
https://blog.csdn.net/jesse_mx/article/details/61425361(后来实验时,实际操作时压根没有选择bios保留区域的选项。)中说:
“
用uefi模式下安装。然后不要挂载到boot,而是直接选择bios启动区域。
至于有些教程说把 UEFI 模式 在 Boot 中修改为 Legacy 启动模式,对于UEFI 启动模式的电脑,这是没必要的,这种方法陈旧了,对于新启动模式的电脑早已不适用,而且就算安装成功,启动win10 和 Ubuntu 时,也要来回修改 Boot 下的 Boot List Option(启动模式),而且这种方法安装的双系统有一个 致命的缺点 就是容易出现 系统崩溃 ,况且 ubuntu18.04 LTS 也是长期支持版,本来就支持 UEFI 启动模式,而且 Legacy 模式 也无法 启动win10 ,具体制作过程如图下图所示:
”
我就是被这段话给骗了。
总是说什么新电脑都是uefi模式。所以,我就一直在这个思路下,错行错远。折腾了整整一天!!!!!!
说这种话的人,为什么不强调一点,个人电脑的实际情况是什么呢???
于是,既然没有bios保留区域选项,我就设置efi分区。就按上面那种错误说法来的,而不再设置/boot分区。就这样,又提示:
尝试将一个vfat文件系统挂载到/boot/efi上失败。
我以为是u盘制作的问题,于是找到了下面的帖子:
https://jingyan.baidu.com/album/6181c3e0d24c57152ef15334.html?picindex=8
里面说uefi+gpt适合新模式的电脑。于是,感觉福音来了。天啊!原来是我太low,不懂uefi和gpt。
就这样以为问题要解决了,开始按新方式装。
重新制作u盘。但是又是不行。
这个时候看到一篇文章,叫BIOS模式的win10与UEFI模式的Ubuntu双系统的安装问题https://blog.csdn.net/honglicu123/article/details/53750379
说,
"
机器已经存在BIOS兼容模式的系统,如果继续安装,会有一定的强制性,可能导致现有的系统无法正常启动
在 win10 下 cmd+r,输入 msinfo32 查看 BIOS 模式为传统的 legacy 模式,选择继续安装后,系统重新启动后没有了 win10 的引导项
这里需要提示一下
在安装双系统的时候,Ubuntu 分区问题需要注意,因为安装Ubuntu会将原来的系统的引导项破坏(重启的时候没有了),所以需要从 Ubuntu 下修复 win10 系统的引导项。在安装 Ubuntu 时,首先选择语言,英文或者简体,看个人喜好,点击继续,直到出现选择 “windows 和 Ubuntu 共存” 这样的选项时,需要注意的是,这里不要选择这一项,选择其他选项,由自己分区。
- 首先新建 /boot 分区,这个分区就是用来保存引导项的一些东西,给512M足够
- 然后新建 swap 分区,一般分配内存大小的2倍即可,LZ的机器是8G的,分配了16G的空间
- 然后再次新建 /usr 分区,这个分区用来安装可执行文件,也就是你需要用到的一些软件,可以给的大一些,我分配了230G,给了80G的空间
- 新建 / 根分区,因为我主要的空间几乎都是给了 /home 所以,这个分区只给了 20G 的空间
- /home 分区,这里存放自己的一些文件,照片以及视频等等。LZ经常是看源码之类的事情,东西存放的比较多,所以偏重于给 home 更大的空间
分区分好之后,下面还有一个选项,就是选择引导项安装的位置,这个很重要:如果选择安装在 /boot 下,那么可以从 win10 下引导 Ubuntu ,但是LZ恰恰就是这里出了问题,因为前面提到的那个警告,继续安装Ubuntu会有一定的强制性,重启的时候,导致找不到 win10 的引导项,所以选择的是sda(c盘)的位置安装 Ubuntu 的引导,然后就可以在 Ubuntu 下修复 win10 的引导项了。
继续后面的安装(此处省略。。。详细的安装步骤可以查看论坛),系统完成安装之后,升级一下驱动(LZ因为显卡是N卡1060,没有选择在安装过程中联网升级的步骤,导致的结果就是显卡驱动不匹配,然后选择了一个 test 版的N卡驱动,还凑合着用吧。)
正片环节:
以root权限进入到 terminal 中,
update-grub
会出现 ubuntu 和 win10 的引导项,就表示成功。再次重启就能发现 win10 的引导项,选择进入即可进入 win10 系统。
其实折腾大半天,废了这么多口舌说了这么多的废话,只需要在安装过程中,做好分区,然后一个命令就搞定了。(LZ亲测通过,希望其他童鞋也能安装顺利。)
"
于是,我仿佛恍然大悟!!!用下面的方式查看,自己的windows10果然是传统方式启动。
方法一:查看系统信息中的BIOS模式
注:本方法仅适用于Win8、Win8.1和Win10系统
Win + R 快捷键调出“运行”对话框,输入“msinfo32”,确定,打开“系统信息”窗口。如图:
在“系统摘要”的右侧窗口中即可看到“BIOS模式”信息,如果显示的是“传统”,即为BIOS启动方式;如果显示的是“UEFI”,则为UEFI启动方式。
于是,就用https://blog.csdn.net/honglicu123/article/details/53750379中的方法,在安装的时候,引导安装在windows对应的那个分区,结果真的找不到windows系统了。。。。。。ubunntu倒是成功装上了。可惜,用他的方法,没能恢复windows引导项目。
我顿时怒了!!!离目标越离越远。
3.2 修复win10引导
快启动中说:
http://www.kqidong.com/pe/pe_2762.html
用了,失败!垃圾的快启动。
最后神利器,老毛桃!
一开始进入老毛桃还是修复失败。
有一个可以选择分区的。
当我选择那个分区的时候,突然提示,不是活动分区!!!
我终于明白为什么启动不了了。就是因为不是活动分区。
这个问题,我14年就遇到过。当时解决了,但是现在忘记了!!!
老毛桃显示了四块打不开的磁盘,就是!!!就是当时装linux时设置的四个分区啊!!!!
活动分区竟然在这四块里。也就是说我安装ubuntu系统的时候,把活动分区改动了。结果ubuntu没有装成功!windows也进不去了!!!
重新激活windows所在盘为活动分区。
好了。。。直接重启就进去了。。。
但是ubuntu又进不去了。
现在又回到解放前了,该怎么去安装这个ubuntu 18.04呢
3.3 回到原点
使用这个链接中的方法:https://blog.csdn.net/lnfxbianxiu/article/details/80394284
然后可以看到:
没有一块磁盘,在GPT下面是*号的。说明我的磁盘不是GPT格式。这个很重要。
Win + R 快捷键调出“运行”对话框,输入“msinfo32”,确定,打开“系统信息”窗口。
在“系统摘要”的右侧窗口中即可看到“BIOS模式”信息,如果显示的是“传统”,即为BIOS启动方式;如果显示的是“UEFI”,则为UEFI启动方式。
我的bios模式写的是传统。
既然如此,就只能用bios+MSR的方式去安装双系统。而不是uefi+GPT。所以,真他妈巨坑。网上那些狗屁安装双系统的帖子,就根本没有讲明白这个问题。网上的资源真垃圾。。。
https://blog.csdn.net/qq_40883132/article/details/80538539里面讲
“
步骤:分出一片空的区域-->制作U盘-->进入BOIS安装
1.用U盘制作的时候选择MBR还是GPT!!一定要选清楚,BIOS模式是UEFI的选GPT,是Legacy的选MBR
现在一般的都支持UEFI模式,但我的是Legacy,所以出了很多问题。
2.用U盘作为启动项的时候有以下两个关于你的U盘的
1)关键字是UEFI的
2)你的U盘名
如果你的BIOS模式是Legacy就选 2) ,否则就选1.如果选错,安装结果就是失败,就会出现引导失败。
3.分区问题,因为之前会分出一块空的区域用于安装Ubuntu,我用的是e盘,这里你为了方便可以直接用这块区域,直接将其格式化。
”
于是,我用我的白色u盘制作了老毛桃pe
用我的手机电脑两用u盘制作了安装ubuntu 的启动u盘,用的软件是Rufus,选的是MBR和bios。
最后仍然按照https://blog.csdn.net/fesdgasdgasdg/article/details/54183577的方式
好了。。。又提示:
无法将grub-efi-amd64-signed软件包安装到/target
3.4 痛定思痛
了解到主板的boot secure就是限制双系统的。
于是,我先关闭fast boot,又关闭boot secure。华硕主板的关闭方法:
https://jingyan.baidu.com/article/6dad50753a5c3da123e36e23.html
然后,再按https://blog.csdn.net/fesdgasdgasdg/article/details/54183577的流程走一波,
发现还是会提示:无法将grub-efi-amd64-signed软件包安装到/target
3.5 终极解决方案
我利用讨论班的时间,查了一下uefi和bios的区别。后来发现uefi必须要求在活动分区建立引导项,但是这样的话,就不能支持双系统。这个时候,
忽然间想起来,制作的u盘启动盘,有两种模式,一种是uefi建立引导的模式,另外一种是没有uefi。
我终于明白了。ubuntu18.04系统默认是要求uefi建立引导,不同于16.04,因此安装会提示“无法将grub-efi-amd64-signed软件包安装到/target”。当引导项没有建立在活动分区时,就会报错。但是建立在活动分区,又会覆盖windows的引导项。
于是,选用u盘启动的另外一种模式,按照https://blog.csdn.net/fesdgasdgasdg/article/details/54183577全程走到底,ok。
再在windows中用easyBCD建立引导,即可。
4 总结
我的windows是传统bios启动,磁盘分区格式是MBR而不是GPT。这个时候,如果安装linux系统,也必须是传统bios启动,否则会出很多问题。我后来想了想,除非你将linux系统安装在另外一块磁盘的活动分区上,就不会造成覆盖windows引导的问题。但是我对性能有要求,所以坚持把两个系统都装在250g的固态硬盘上。所以这种方案压根没试。
既然如此,安装默认是uefi方式启动的ubuntu18.04的时候,u盘制作(不要用ultraiso,而是ubuntu官方推荐的Rufus免费版本)时应该选用bios和MBR方式创建引导。
然后再安装的过程中,boot option中排第一的应该是不带uefi字眼的u盘。
最后再按照那篇最佳博文的方式即可解决问题。
也就是:
先认清自己,再行动。
自己的系统都搞不清楚什么调调,对机制也不懂,知其然而不知其所以然,所以就会导致各种错误。
uefi启动并不是坏事。但是我的win10已经安装成bios传统方式启动和MBR格式的磁盘,就必然有所限制。