美文网首页
UEFI+GPT+双硬盘下 搭建Windos10 和CentOS

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

作者: 费宇超 | 来源:发表于2018-05-29 10:36 被阅读1587次

    硬件环境介绍

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

    搭建CentOS7的起因

    读完黑客与画家后,越来越觉得优秀的程序员应该能横向发展,至少要有能横向发展的能力,对整个计算机系统有个全面的理解。本身我是学习硬件出身的,如果出去说装一个系统都不会的话,是多么尴尬。
    正巧鸟哥的Linux私房菜CentOS入门的,于是开始搭建Windos10CentOS7 双系统。

    写这篇博客的起因

    写这篇博客的原因是因为我被网上的"过时"文章坑了很久,免后人踩坑。
    一开始我是对着这篇文章去做的 第一篇参考文章,踩了大坑。
    首先这篇文章是写在2016年的,另外虽然文章没写,但是根据他的步骤来看,他的电脑启动方式是BIOS启动,磁盘是MBR,区别我待会会讲。另外不能拿EasyBCD这个工具来修复引导,它只对BIOS+MBR启动有效。

    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无法写入引导程序

    4 两个U盘 分别刻录CentOS7Win10启动盘
    U盘刻录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。如果你非要挨个仔细分配空间,那么你需要知道这些各个分区的含义(Linux(ubuntu)分区挂载点介绍
      不过就算你把所有目录都自定义分配了空间也必须要给“/”挂载点分配一定的空间。

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

    如何引导文件

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

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

    方案1:而我这里采取的方式比较方便了 ,两个系统安装在不同硬盘,引导比较清爽 点击参考
    我在这次尝试之后成功了。开机的时候默认开启win系统,通过选择不同硬盘启动,更换系统。

    方案2:也可以安装在一个固态硬盘,我没尝试
    这里要注意的是将EFI挂载在一个ESP分区下,不要再新建ESP分区了。
    如果在 UEFI/GPT 系统上配置 双启动,请不要重新格式化 UEFI 分区,因为已有的分区上包含 Windows 启动需要的 .efi 文件。不需要重新创建分区,只需要 #挂载分区.

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

    点击参考CentOS
    点击参考Ubuntu

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

    refind引导.jpg
    点击参考

    固态硬盘和机械硬盘

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

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

    末尾

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

    其他参考

    小白win10下安装centos7 uefi + refined 启动
    如何在已安装 Windows 10 的情况下安装 Linux(Ubuntu 15.04)双系统?
    亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统

    Unified Extensible Firmware Interface (简体中文)
    UEFI 固件
    EFI_System_Partition
    关于ESP分区和UEFI启动的一些问题?
    鸟哥linux私房菜 第四版
    Windows和Ubuntu双系统,修复UEFI引导的两种办法

    相关文章

      网友评论

          本文标题:UEFI+GPT+双硬盘下 搭建Windos10 和CentOS

          本文链接:https://www.haomeiwen.com/subject/mkpojftx.html