搜索
您的当前位置:首页正文

UEFI+GPT+双硬盘下 搭建Windos10 和CentOS

来源:二三娱乐

硬件环境介绍

我的Win10装在固态盘,GPT,启动方式是UEFI
CentOS7装在另一个盘。这样的方式最简洁。
读者先确定自己是否也是UEFI+GPT,如果不是请略过这篇文章。
不过现在大多数电脑都是UEFI+GPT,而网上一些2016年前的,标题未加UEFI,大多数是BIOS方式下的安装,我们是不能参考的。
F12下选择的Legacy启动方式就是BIOS启动。
不用担心CentOS不支持UEFICentOS7肯定支持。

搭建CentOS7的起因

写这篇博客的起因

UEFI+GPT 和BIOS+MBR启动的区别

UEFI+GPT模式的启动原理,首先我们来回顾下BIOS引导MBR分区的流程,BIOS开机自检——》读取硬盘MBR分区的主引导记录—》控制权交给引导程序-》引导程序根据安装时候的配置读取各分区记录—》根据各分区已经有的系统情况,列出启动目录—》根据用户选择,启动选择的引导文件启动用户选择的系统。

现在我们来说说UEFI的情况,主板上的UEFI模块—》硬盘内的第一个fat分区,如果分区内有EFI这个文件目录,就根据EFI文件目录的引导文件加载各类型的驱动和引导文件,启动系统同时完成自检。(如果第一个fat分区没有EFI目录则选择第二个,如果第一块硬盘没有,择选择第二块,或者U盘以此类推

基本的形式差别是:
BIOS把MBR读出来交给CPU执行,做MBR做想做的事。
UEFI是查找磁盘里的\efi\boot\bootx64.efi文件,启动这个可执行程序,让这程序做想做的事。
UEFI更先进更快。

MBR分区:

MBR的意思是“主引导记录”,它有自己的启动器,也就是启动代码,一旦启动代码被破坏,系统就没法启动,只有通过修复才能启动系统。最大支持2TB容量,在容量方面存在着极大的瓶颈,那么GPT在今后的发展就会越来越占优势,MBR也会逐渐被GPT取代。

GPT分区:

GPT意为GUID分区表,这是一个正逐渐取代MBR的新标准,它由UEFI辅住而形成的,这样就有了UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到操作系统和文件系统都没法支持。它同时还支持几乎无限个分区数量,限制只在于操作系统,Windows支持最多128个GPT分区。通过UEFI,所有的64位的win0,win8,win7和Vista,以及所对应的服务器都能从GPT启动

一般情况下GPT分区下的磁盘不仅有一个ESP分区还有一个MBR分区,说法是微软自留,我猜测是为了兼容的一些原因。

过程

准备工作
现在我打算固态装Win,机械装CentOS7。这样引导的时候最简单。也可以都装固态

1.HDD预留50G给CentOS7安装系统使用

2.关闭Windows的快速启动,不同主板不一样,百度如何关闭

3.进入BIOS设置关闭Security Boot,不同主板不一样,百度如何关闭,否则CentOS7无法写入引导程序

制作U盘启动盘的时候要注意选择支持UEFI模式的,否则会读不到U盘启动盘。

图1.jpg 图2.jpg 图3.jpg

我的电脑如果选择传统启动U盘能略过这一步,没必要把相对路径改为绝对路径。意味着这里我们可以直接install。我也试过改为绝对路径,当然也可以。如果你和网上大多数教程一样直接install不行,那就找到U盘的绝对路径。

而UEFI下需要配置绝对路径,不修改会找不到安装路径


开机尝试.png

作图二的操作limuze /image/vmlinuz initrd=initrd.img linux dd quiet
可以看到你的U盘

查看磁盘位置.jpg

可以看到,label就是u盘名字,你的u盘名字已经在刻录的时候被改成CentOS了 ,所以绝对路径是sdb4。这里还要提一下的是UEFI启动下的进入编辑是E不是Tab

接下来就去进入安装选择了。这里也没什么疑问。

CentOS安装过程中要设置磁盘分区,这个需要注意下。
这里我遇到了创建分区一直提示Core.img无法写入。
原因是在Windows下只需要分出一块较大的未分配空间就行,记住不要去格式化,保证其“未分配”属性(Linux的文件系统和Win是不一样的,NTFS和FAT32都不适用)

还有不同的是在进入分区创建的时候,记得要有一个/boot/efi分区,这是在UEFI下必须有的,它是在启动的时候,去磁盘寻找启动引导文件的。

  1. swap交换空间,这个也就是虚拟内存的地方,选择主分区空间起始位置。如果你给Ubuntu系统分区容量足够的话,最好是能给到你物理内存的2倍大小,像我8GB内存,就可以给个16GB的空间给它,这个看个人使用情况,太小也不好,太大也没用。(其实我只给了8GB,没什么问题)
  1. 新建efi系统分区,选中逻辑分区(这里不是主分区,请勿怀疑,老式的boot挂载才是主分区)和空间起始位置,大小最好不要小于256MB,系统引导文件都会在里面,我给的512MB,它的作用和boot引导分区一样,但是boot引导是默认grub引导的,而efi显然是UEFI引导的。不要按照那些老教程去选boot引导分区,也就是最后你的挂载点里没有“/boot”这一项,否则你就没办法UEFI启动两个系统了。
  1. 挂载“/home”,类型为EXT4日志文件系统,选中逻辑分区空间起始位置,这个相当于你的个人文件夹,类似Windows里的User,如果你是个娱乐向的用户,我建议最好能分配稍微大点,因为你的图片、视频、下载内容基本都在这里面,这些东西可不像在Win上面你想移动就能移动的。
    总的来说,最好不要低于8GB,我Ubuntu分区的总大小是64GB,这里我给了12GB给home。
    (这里特别提醒一下,Ubuntu最新发行版不建议强制获取Root权限,因为我已经玩崩过一次。所以你以后很多文档、图片、包括免安装软件等资源不得不直接放在home分支下面。你作为图形界面用户,只对home分支有完全的读写执行权限,其余分支例如usr你只能在终端使用sudo命令来操作文件,不利于存放一些直接解压使用的免安装软件。因此,建议home分支多分配一点空间,32GB最好……)
  1. 挂载“/usr”,类型为EXT4日志文件系统,选中逻辑分区空间起始位置,这个相当于你的软件安装位置,Linux下一般来说安装第三方软件你是没办法更改安装目录的,系统都会统一地安装到/usr目录下面,因此你就知道了,这个分区必须要大,我给了32GB
  1. 最后,挂载“/”,类型为EXT4日志文件系统,选中逻辑分区空间起始位置
    因为除了home和usr还有很多别的目录,但那些都不是最重要的,“/”就把除了之前你挂载的home和usr外的全部杂项囊括了,大小也不要太小,最好不低于8GB。如果你非要挨个仔细分配空间,那么你需要知道这些各个分区的含义()
    不过就算你把所有目录都自定义分配了空间也必须要给“/”挂载点分配一定的空间。

这里我尝试了自动分区也没有问题。

如何引导文件

这一步也是比较重要的,应该是所有步骤里最关键的。因为在各种情况下,这里的做法完全不同。

EasyBCD可以引导BIOS+MBR,但是无法引导UEFI

其实也就是再选择完硬盘之后,选择不同系统启动,即使第一种方法下选择centos的磁盘启动之后,也是有3个选项,类似这样的选择。我也不知道会不会出现win覆盖linux的情况,如果有也可以选择方案3解决。

方案3:这个我也没尝试,安装在一个硬盘后,使用refind引导双系统。成功之后会有一个界面选择系统,不推荐如下

refind引导.jpg

固态硬盘和机械硬盘

我也是爱捣鼓,把Win也重装了一遍,我的机械硬盘是磁盘0,固态硬盘是磁盘1,一度我以为要把机械硬盘先拔掉才能把系统安装在磁盘1,其实无关,只要安装系统的磁盘有EFI分区即可,并且引导文件装在这个分区。
系统装0和1都可以,调皮的我甚至也尝试过,将磁盘1刷成MBR,机械盘刷成GPT,也没毛病,就是开机肯定慢了,变成BIOS启动了。
最后当然是刷回来的,两个都是GPT

GPT下一定要有ESPMSR,我手动创建的时候忘记创建ESP,会导致开机之后读不到```UEFI``硬盘。

末尾

在计算机中无论做什么,我们都应当知道每一步操作背后做的事情以及原理;
在开发中每一件自己口中很神奇的事情,都是自己"照葫芦画瓢"的锅。
至此我已经是一个优秀的"修机人员"了。电脑出问题请联系我。

其他参考

Top