一到假期就想搞搞我的笔记本电脑,硬件方面SSD和内存都加上了,想到以后还想去做运维相关的工作,也喜欢Linux系列的操作系统,就准备装个win10+linux双系统。谁知道过程是一波三折,也是学艺不精导致的,对一些基础的理论概念不清晰。由于之前装系统时没有截图,就凭着记忆用文字叙述一下吧。
首先,安装之前必须要说下系统启动相关的知识,我起初就是这个知识不扎实,结果后面各种悲剧。
BIOS模式
我们常说的Bios,其实分为两种模式,一种是传统的Legacy模式,一种是新的UEFI(EFI)模式。基本上只要不是很老的机器主板,近年来预装Win8/10机器的启动模式都是UEFI的启动模式。
这里简单叙述一下二者的原理和区别,过多的不再说,网上有很多这方面的知识 。
-
legacy
legacy是传统的BIOS启动模式,开机之后BIOS先初始化->完成自检->引导操作系统。与legacy相匹配的硬盘分区为MBR分区方案。
在legacy模式下安装的系统只能在legacy模式下进入。
-
uefi
uefi(Unified Extensible Firmware Interface) 统一的可扩展固定接口。起初,efi是Intel公司在2000年提出的一个bios替代方案,随后uefi在efi的基础上作为统一的标准向全球推广,uefi相比legacy有着巨大的优势,已经在逐步取代legacy成为新一代的bios模式。
uefi模式下,开机->uefi初始化->引导操作系统。速度相比legacy模式下快了很多,与之相匹配的硬盘分区方案是gpt,现在win8/10开机速度明显增快就是使用了uefi+gpt的这种方式。
在uefi模式下安装的系统只能在uefi模式下进入。
硬盘的分区方案
硬盘的分区方案分为MBR和GPT两种方式。
MBR分区方案
MBR(Main Boot Record)主引导记录,是位于磁盘最前边的一段引导代码。MBR分区方案包含了MRB主引导记录和硬盘的分区。在MBR磁盘的第一个扇区内,也就是MRB主引导记录中,又保存着主引导代码和MBR分区表。
MBR分区方案不支持容量超过2TB的磁盘,而且健壮性不够好,一旦MBR引导记录被破坏或覆盖,就面临着系统无法被成功引导的风险,这时候就必须得修复MBR引导。GPT分区方案
GPT(GUID Partition Table)全局唯一标识磁盘分区表,是可扩展固件接口(EFI)标准的一部分,被用来取代原有的MBR分区方案,它可以支持2TB以上容量的硬盘。
GPT分区方案由PMBR,GPT分区表,硬盘分区,备份GPT分区表四部分组成。开机启动时,UEFI并不从PMBR中获取GPT磁盘的分区信息,它有自己的分区表,即GPT分区表。除此外,备份分区表还保证了分区信息不容易丢失。
现有的启动方案基本分为传统的Legacy+MBR和新生的UEFI+GPT,后者以它的优势已经取代前者成为了主流,开机速度明显更快,即便是机械硬盘下Win10也能10秒开机靠的就是这个。
理论说了太多了,接下来要看我们自己的电脑了,如果是Haswell平台之后的电脑,基本上主板默认就都是UEFI启动模式的了。
那么如何查看我们系统是用UEFI还是Legacy启动的呢?
很简单,在Windows下win+R打开运行,输入msinfo32,找到BIOS模式,如果显示UEFI就是UEFI模式,若显示传统就是Legacy。
还有个问题,我们的UEFI BIOS为了防止安装除了Windows以外的操作系统,BIOS设置里有个Secure Boot选项,为了能成功安装Fedora等其他Linux系统,我们首先要将Secure Boot 设置为Disabled。
这里说说这个双系统存在的原理,其实就是使用GRUB2来引导Fedora25和Windows10双系统,学过Linux操作系统的都知道,引导Linux启动的就是多系统引导工具早时期的LILO和后来的GRUB现在的GRUB2。
能不能使用Windows来引导Linux启动呢?如果把两个系统的引导装在同一个分区,答案是不行的,如果先装Windows后装Linux,一定是GRUB覆盖了原有的Windows引导,由GRUB来引导多系统。但是反之,Windows的主引导记录会覆盖Linux的GRUB引导,所以Linux不会被正常引导,还是只能启动Windows。所以在UEFI模式下要用GRUB2来引导两个系统的启动。
那么非UEFI模式下装双系统呢?
这个时候就要提到一个叫EasyBCD的软件了。这款软件就是用在非UEFI BIOS模式下,一个多系统的引导工具。当初我们拿机房电脑做实验装Win7+Ubuntu14双系统,由于是Legacy+MBR的方案,直接在Win7的基础上装了Ubuntu14,不覆盖原有的Win7引导,随后使用EasyBCD2.2添加开机启动项,开机的时候就能成功引导Win7和Ubuntu14了。
那么UEFI模式下是不是可以也用EasyBCD呢?答案是不能用它来增加Linux的引导的,EasyBCD2.2在UEFI模式下完全不会工作,EasyBCD2.3会工作但是很不幸它无法增加Linux引导项,连界面都是灰色的。
好了,接下来好好说说安装的事情。
安装前准备工作:
- Fedora-Workstation-Live-x86_64-25-1.3.iso镜像
- FedoraMediaWriter-win32-4.0.7.exe Fedora25的U盘制作工具,不要使用UltraISO了,好像会有些问题。
- 一个容量4GB以上的U盘
使用工具将镜像烧录到U盘里之后,关闭电脑插入U盘重新启动,我的笔记本电脑是华硕FX50JK,启动时按esc可以选择从那个启动项进入,这里选择从UEFI的模式下进入Fedora25的安装U盘,当然还有个非UEFI进入安装U盘的选项,不要选这个,不然分区的时候你都找不到EFI分区。
进系统一路安装没什么好说的,直接跳到分区这里。在我的硬盘总量是50GB的情况下:
很重要!/Boot/EFI分区! 一定要挂载到windows下的EFI分区下!!!我的是/dev/sda1,就挂载到了sda1分区下边
/boot分区分给500M大小即可
/swap分区,我的内存大小8G,也分了8G
/分区,我建议给15GB到20GB。
这个我得好好说说,之前看别人的教程文章,就分了10个G,其他的内存全分给了/home分区,结果这个方案成了我后来手残导致系统崩盘的伏笔。这10个G其实是不够用的,为什么呢?我们从软件商店里下载的软件,通过RPM包安装的软件,通过dnf(原yum)安装的的软件都放在/usr目录下。我搞完开发环境,安装了那么多的依赖包以及软件,10个G早早就报警容量不够用了,后来准备扩容很不幸把系统彻底折腾坏了,只好重装了一个Ubuntu16。说多了都是泪,所以我建议大家要么把/usr单独分给10GB的容量用来装软件,要么就给/分区多分一点,免得后期容量不够还得想办法扩容。
- 剩下的容量都分给/home分区吧
然后一路next下去,等到安装完毕拔掉U盘重新启动。
如果你发现启动的还是Windows10,并没有出现GRUB2来引导多系统的界面,不要慌,重启一下,进入BIOS选项,找到启动首选项,如果还有Window Boot Manage就给禁用掉,把Secure Boot也来回调整下试试,我就是把所有选项都删掉禁用了,它才直接默认从GRUB2开始引导的。
其实能把/boot/efi分区装到windows下的efi分区下就已经成功了90%,接下来10%就看你能不能把启动界面调出来了。
对了,我想提醒大家关于硬盘分区,用EasyBCD添加引导等操作时记得先备份下硬盘分区表和引导记录,因为不知道就什么时候弄坏了分区表或者主引导了TnT。
接下来我想说说看起来很简单的事情,为何在我这里一波三折。
我笔记本后来装了SSD,也就是我有两块磁盘,一块500G机械硬盘,一块256G的固态硬盘。装了固态之后肯定要把系统和软件装到固态硬盘里啊,然后我就用系统迁移软件直接迁移了过来,当然不敢重装系统,对于电脑里存在好多软件和数据的我来说,重装系统的打击程度不亚于电脑坏掉重买一台。
我把256GB的SSD分成了两个区,一个100GB用来装系统,一个120GB用来装软件。系统迁移之后,我把原来的C盘格式化了,但是这里仅仅是格式化了系统盘,并没有删掉原来机械硬盘里的引导记录。没想到这个动作在后面救我的Win10起了关键的作用。
我设置了系统默认从SSD启动,我发现开机快速启动是不可用状态的,但是也没在意,因为本身SSD启动速度就很快,不超过10秒就开机了。直到这次装双系统我才反应过来,我实在没想到我这么坑爹的方案是怎么形成的…..
因为我发现自己的SSD居然是MBR分区方案,而原有的机械硬盘是GPT。
也就是说我从固态硬盘启动系统,采用的却是Legacy+MBR的方案,也难怪Win10快速启动不可用。本来大家都说UEFI+GPT已经启动很快了,配合上SSD岂不是更快,然而到我这里成这样我也是无言以对。
我本来从SSD压缩出了50GB的空间,准备把Fedora25安装到这上面,结果UEFI模式下各种提示我必须装到GPT分区的磁盘下,我这才反应过来。要把MBR分区方案转为GPT分区方案必须要重新分区格式化,接受不了我就放弃了。Legacy+MBR我又没装成功,采用EasyBCD结果把自己固态硬盘的Windows引导给弄坏了,顿时装Linux不成反倒赔了Win10进去。这个时候我上面说的留下了原机械硬盘的Windows引导起了作用,在固态上引导坏掉的情况下,它承担起了正常引导进入Win10的重任,拯救我的系统于水火之中,简直让我感激涕零。
一阵折腾过后,我就只能考虑从我的机械硬盘压缩出了50GB空间,重新完成UEFI+GPT模式的双系统装机了。虽然机械硬盘慢了点吧,但是该用还是可以用的。
接下来就回到上面的装系统步骤了,这次装得很顺利,成功实现了GRUB2引导Fedora25和Win10双系统。
但是好景不长,上边/目录总共就分了10GB的空间,/usr也没单独分容量。一路软件安装下来就提示/目录容量不足了。我这才去找/目录扩容的教程,CSDN上有教程,是将/home的容量分给/目录,要卸载/home分区,但是我这是Gnome3桌面环境啊,卸载又卸载不了,那我就想要不再从机械硬盘挤出点空间分给/也行。
可惜我选择的居然是另一个盘符的空间,想把它加到这50GB的容量上。这个举动直接导致了我后面系统的倾覆,因为我没理解的是,虽然从另外的盘符挤出来了15GB的空闲空间,但是这所有的空闲空间的地址不是连续的啊,它们仍然无法合到一起。
后面还有更悲剧的,我手一抖直接把磁盘改成了动态磁盘,这下次完了,基本磁盘转动态磁盘可能会无损,但是要变回去就要格式化重新分区!还好有Diskgenius这个软件,它有个鲜为人知的功能,用它可以扫描磁盘上丢失的分区表,然后恢复磁盘分区,可以无损地将动态磁盘转换为原有的基本磁盘。
但是Fedora25的引导却被我破坏一去不返了,再加上我直接格式化了给它分配的空间。我精心安装并配置好的开发环境,精心美化好的GNOME3桌面,还没来得及截图就全部湮灭了……最后重新分了100GB的磁盘空间,装了个Ubuntu16双系统。
装了才发现还是Red hat系的使用起来更顺手,但是也实在不想再来回折腾。便在虚拟机里装了个CentOS 7用作学习Red hat系的系统。
不得不说这是个惨痛的教训,以后再倒腾系统,硬盘相关的知识,提前做好功课还是相当有必要的!