选中内容(绿色)时除了会搜索文章名,还会搜索文章内容
点击结果中的文章名进入文章界面后可以按Ctrl+F在页面内搜索
  • 版权:CC BY-SA 4.0
  • 创建:2020-11-17
  • 更新:2020-12-15
  • 关键词: 双系统 多系统 windows linux 引导
介绍在实体机装双系统或者多系统的方法, 对于离不开windows娱乐环境又要使用linux系统开发的小伙伴,以及对计算机运行流程不太清晰的小伙伴一定有帮助


系统硬件组成

  • 显示器、鼠标、键盘等外设
  • CPU:整个系统的大脑
  • 显卡:集成是图像相关的硬件加速单元,用以图像处理和图像显示,显示器就是连接到显卡的接口
  • 内存:也叫 RAM, 现在一般是 DDR4内存条
  • 硬盘:用于存放系统 ROM 和数据的地方
  • 主板:主板负责承载其它硬件设备,包括 CMOS、EEPROM、CPU、内存、显卡、硬盘、网卡、USB控制器等等
  • 其它:略,这里只说本篇需要的最重要的几个部分

关于引导的基础知识

这很重要,因为装多个系统一定要保证系统能被正常引导启动,这也是很多新手折腾了很久也没理解的地方,但是真的很重要!

先看图,结合后面的介绍看

boot

从计算机上电到系统进入桌面发生了很多事(这里介绍主要过程,细节有兴趣可自行学习):

  • 用户按下开机键或者 reset 键,CPU 启动,执行主板上存在 FLASH 或者 EEPROM 里面的 BIOS(Basic Input Output System) 程序,BIOS 程序会从 CMOS 里面读取配置信息(所以当你把主板的 CMOS 电池拔掉一会儿,系统时间就会复位,一些配置也会复原), 然后 BIOS 程序负责硬件自检初始化等工作,并且根据启动项设置将执行权限交接给启动项里面的内容
  • 启动项里面的内容一般是指向一个特定分区格式的磁盘,磁盘分区有 MBR 和 GPT 分区表, GPT 分区比 MBR 更新,支持更多分区, BIOS 会根据分区表找到放引导程序的地方,一般是放在一个 FAT 格式的 ESP(EFI system partition)分区中,分区根目录会有一个EFI文件夹,里面放了引导程序, 比如 windows 的 windows boot manager, 或者 Linux 常用的 GRUB,这个引导可以引导多个系统,会以一个列表的形式将电脑中的系统列出来
  • 用户选择引导程序中的系统后,引导程序加载系统程序,并将执行权限转交给系统,系统启动

有几个点需要注意:

  • BIOS 和 UEFI 有什么区别
    其实本质一样,都是主板商提供程序,在启动的第一个阶段使用,用以检测硬件初始化硬件,以及加载引导程序等工作, UEFI 标准比 BIOS 时间更晚,现在几乎都是使用 UEFI,而传统的 BIOS在各种主板程序中都称之为 Legacy BIOS, 所以把 UEFI 称为 UEFI BIOS 也没啥问题,可以参考UEFI 引导与 BIOS 引导在原理上有什么区别?
    一下说 BIOS 可以代表两者,传统的 BIOS 会特地加 legacy

  • CSM(Compatibility Support Module) 选项
    另外,你可能会在 UEFI 启动选项里面看到 CSM(Compatibility Support Module) 选项, 而且很多文章要求将这个选项打开 CSM, 没错,如果你装的是老旧的系统(比如 win7),或者老旧的硬件,或者你装的系统引导没有正确的 UEFI 签名,可能需要打开这个选项, 不打开就是使用安全模式,系统会校验引导的签名,不正确就不予以启动,这是为了防止危险程序,而且由微软发起的。如果你想要装 linux 系统更加简单,可以打开这个模式, 不使用兼容模式也是可以的,有很多办法。 要知道更多,请使用关键字UEFI 签名进行搜索查找资料
    CSM2

  • easy BCD 是什么? GRUB 是什么?
    在很多教程里面会使用 easy BCD, 有很多使用 GRUB,如果你是第一次接触,可能被弄糊涂了, easy BCD是一个工具, 用来修改 windows boot manager 的项目, 而 GRUB 是一个引导,和 windows boot manager 一样的级别, 同时修改启动项有其指定的配置方法,不需要第三方工具修改。
    而我们在实际装多系统的时候, windows boot manager 和 GRUB 只需要选择一个即可,不要都去使用,建议使用 GRUB,不要去碰 windows boot manager

  • PE 电脑店 老毛桃?

如果只是装系统,大可不必用到这些工具,它们都很庞大,内置了很多工具,如果电脑有故障,需要修复的时候,可以使用,装系统用更简单的程序就好了,比如 win32diskimager, 或者 etcher 或者 universal usb installer,或者ventoy(这个很好用,只需要把iso放到U盘就可以使用,支持多个 iso 系统,开机界面选择启动)

所以总结上面的, 要达到多系统的目标, 我们需要使用 UEFI 找到引导程序 GRUB, 然后 GRUB 引导我们的 linux 系统和 windows 系统, 在开机界面显示选项,让我们开机的时候自由选择进哪个系统

另外除了 GRUB 还有一个引导工具,叫 rEFInd, 可以自动搜索磁盘里面的系统和引导,而且有签名,安全模式下也能使用,在一些 Linux 系统安装好了在安全模式下无法进入的时候就可以用这个来引导,十分好用, 所以引导大致上流程如下图:

系统安装

  • BIOS 设置 UEFI 启动,而不是 legacy BIOS
  • 安装 windows 系统, 方法如下:
    • 这里下载 windows 镜像
    • 下载镜像制作工具, win32diskimager, 或者 etcher 或者 universal usb installerventoy
    • 使用上面下载的工具将 windows 镜像写入到 U 盘
    • 插入U盘, 开机按 F12, 也许不是F12, 也许是 F11, 进入 BIOS 的启动项选择,选择 U盘, 如果没有就根据开机提示进入 BIOS 设置,在boot 选项中找到 u 盘,点击确认从 u 盘启动
      csm
    • 选择 u盘启动进入 Windows 安装过程,如果你是全新安装,可以把所有分区删除,然后新建分区,它会自动新建 GPT 分区表,这是会自动建立一个 ESP 分区,大概有100~300MiB 左右,然后选择一个安装系统的分区进行下一步下一步,和安装软件一样就完成了。注意为 Linux 留空间。 如果不是新装,注意数据别搞丢了,选择安装系统的分区会被擦除。这一步你可能会遇到 GPT MBR 分区的问题, 如果你不知道怎么做了,就备份好数据,把 BIOS 里面的legacy bios 选项都关了, 全部使用 UEFI ,然后删除所有分区,然后新建分区,这时会自动建立 GPT 分区表
  • 为 Linux 准备磁盘空间, 如果你有全新的磁盘,准备一块磁盘 Windows,一块 Linux, 那很好,下一步。如果装在同一个硬盘,需要为linux准备一个磁盘空间,如果没有了,可以从 windows 分区中压榨一个分区出来:
    • 按 Win + X 按键, 选择磁盘管理,选择空间大的分区,右键点击压缩分区
      compress
      然后选择需要的空间大小,点击确定, 会出来一个新的分区,留给等会儿的 Linux 使用
  • 同样的方法,下载一个 Linux 系统, 使用上面的工具之一创建一个启动 U 盘
  • U 盘启动,进入 Linux 安装流程, 选择语言,一定要为中文,后面要用英文再改也可以。
    install
  • 到了选择磁盘的步骤
    disk
  • 在下面选择磁盘,如果是干净的磁盘,需要新建分区,这会自动建立 GPT 分区表, 如果已经有分区表的,就不需要新建分区表了
    part
  • 新建交换分区, 大小随便了,网上都推荐是内存大小的两倍,也不一定,但是不要太小,会用到的,比如这里设置了6GiB
    part
  • 新建主分区, 挂载点 /, 格式 ext4
    part2
  • 除了 /根目录,还可以单独为其它挂载点设置分区,比如把/home挂载到一个单独分区,这样以后重装系统就放在 home 目录的数据就没那么容易不小心消失了。如果其它挂载点不设置,都会使用/根目录的空间,不会有什么影响
  • 选择主分区,选择好磁盘,磁盘选择主磁盘就好了,不用选具体哪个分区, 点击现在安装
    part3
  • 安装完成,拔掉 U 盘启动

启动引导检查

装完后,最好的情况,就是拔掉 U 盘,开机,自动进入 grub 引导界面,有 ubuntu 和 windows boot manager选项
grub

不过也可能出现一些意外,比如 windows boot manager 消失, 以及选择 ubuntu 后进不了系统等, 甚至在 BIOS 启动选项都没有 ubuntu 这个选项。
不过也不要慌,系统都还在,只是引导出错了。

第一种最简单的问题,BIOS 启动项没选择对, 系统装好后会自动添加一个 ubuntu 的BIOS 启动项,但是可能没有设置成默认启动项,默认可能还是windows boot manager 需要手动设置,比如下图有很多启动项
bios

前面说了,启动引导大致如下:
boot

可以看到, 从 BIOS 到 ubuntu 有很多条路径, 我们只需要选择一条路走就好了,这里如果出问题了,最简单的方法就是使用 rEFInd, 它会自动寻找启动项,而且支持自定义 UI, 好用又好看, 使用方法见: 多系统启动管理:rEFInd

rEFInd

refind2

另外,如果装好系统后, BIOS 启动选项中也没有 grub 的引导项(一般 ubuntu 的 grub 引导项在 BIOS 中就叫 ubuntu)或者不小心删除了, 也可以自己建立, 用 U盘进入 Ubuntu 试用界面, 使用工具新建一个 BIOS 启动项即可,甚至有些 BIOS 直接支持新建启动项, 详情参考 UEFI启动分析 UEFI设置启动项

文章有误?有想法想讨论?查看或者发起勘误/讨论 主题
(发起评论需要先登录 github)

/wallpaper/wallhaven-96pk78.jpg