- 作者:
- 分类:知识&开发->OS->Linux基本
- 阅读:7864
- 点赞:48
- 版权:CC BY-SA 4.0
- 创建:2020-11-17
- 更新:2021-04-29
原文链接(持续更新):https://neucrack.com/p/330
系统硬件组成
- 显示器、鼠标、键盘等外设
- CPU:整个系统的大脑
- 显卡:集成是图像相关的硬件加速单元,用以图像处理和图像显示,显示器就是连接到显卡的接口
- 内存:也叫 RAM, 现在一般是 DDR4内存条
- 硬盘:用于存放系统 ROM 和数据的地方
- 主板:主板负责承载其它硬件设备,包括 CMOS、EEPROM、CPU、内存、显卡、硬盘、网卡、USB控制器等等
- 其它:略,这里只说本篇需要的最重要的几个部分
关于引导的基础知识
这很重要,因为装多个系统一定要保证系统能被正常引导启动,这也是很多新手折腾了很久也没理解的地方,但是真的很重要!
先看图,结合后面的介绍看
从计算机上电到系统进入桌面发生了很多事(这里介绍主要过程,细节有兴趣可自行学习):
- 用户按下开机键或者 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 会特地加 legacyCSM(Compatibility Support Module) 选项
另外,你可能会在 UEFI 启动选项里面看到 CSM(Compatibility Support Module) 选项, 而且很多文章要求将这个选项打开 CSM, 没错,如果你装的是老旧的系统(比如 win7),或者老旧的硬件,或者你装的系统引导没有正确的 UEFI 签名,可能需要打开这个选项, 不打开就是使用安全模式,系统会校验引导的签名,不正确就不予以启动,这是为了防止危险程序,而且由微软发起的。如果你想要装 linux 系统更加简单,可以打开这个模式, 不使用兼容模式也是可以的,有很多办法。 要知道更多,请使用关键字UEFI 签名
进行搜索查找资料easy BCD 是什么? GRUB 是什么?
在很多教程里面会使用 easy BCD, 有很多使用 GRUB,如果你是第一次接触,可能被弄糊涂了, easy BCD是一个工具, 用来修改 windows boot manager 的项目, 而 GRUB 是一个引导,和 windows boot manager 一样的级别, 同时修改启动项有其指定的配置方法,不需要第三方工具修改。
而我们在实际装多系统的时候, windows boot manager 和 GRUB 只需要选择一个即可,不要都去使用,建议使用 GRUB,不要去碰 windows boot managerPE 电脑店 老毛桃?
如果只是装系统,大可不必用到这些工具,它们都很庞大,内置了很多工具,如果电脑有故障,需要修复的时候,可以使用,装系统用更简单的程序就好了,比如 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 installer 或 ventoy
- 使用上面下载的工具将 windows 镜像写入到 U 盘
- 插入U盘, 开机按 F12, 也许不是F12, 也许是 F11, 进入 BIOS 的启动项选择,选择 U盘, 如果没有就根据开机提示进入 BIOS 设置,在boot 选项中找到 u 盘,点击确认从 u 盘启动
- 选择 u盘启动进入 Windows 安装过程,如果你是全新安装,可以把所有分区删除,然后新建分区,它会自动新建 GPT 分区表,这是会自动建立一个 ESP 分区,大概有100~300MiB 左右,然后选择一个安装系统的分区进行下一步下一步,和安装软件一样就完成了。注意为 Linux 留空间。 如果不是新装,注意数据别搞丢了,选择安装系统的分区会被擦除。这一步你可能会遇到 GPT MBR 分区的问题, 如果你不知道怎么做了,就备份好数据,把 BIOS 里面的legacy bios 选项都关了, 全部使用 UEFI ,然后删除所有分区,然后新建分区,这时会自动建立 GPT 分区表
- 为 Linux 准备磁盘空间, 如果你有全新的磁盘,准备一块磁盘 Windows,一块 Linux, 那很好,下一步。如果装在同一个硬盘,需要为linux准备一个磁盘空间,如果没有了,可以从 windows 分区中压榨一个分区出来:
- 按 Win + X 按键, 选择磁盘管理,选择空间大的分区,右键点击压缩分区
然后选择需要的空间大小,点击确定, 会出来一个新的分区,留给等会儿的 Linux 使用
- 按 Win + X 按键, 选择磁盘管理,选择空间大的分区,右键点击压缩分区
- 同样的方法,下载一个 Linux 系统, 使用上面的工具之一创建一个启动 U 盘
- U 盘启动,进入 Linux 安装流程, 选择语言,一定要为中文,后面要用英文再改也可以。
- 到了选择磁盘的步骤
- 在下面选择磁盘,如果是干净的磁盘,需要新建分区,这会自动建立 GPT 分区表, 如果已经有分区表的,就不需要新建分区表了
- 新建交换分区, 大小随便了,网上都推荐是内存大小的两倍,也不一定,但是不要太小,会用到的,比如这里设置了6GiB
- 新建主分区, 挂载点
/
, 格式 ext4 - 除了
/
根目录,还可以单独为其它挂载点设置分区,比如把/home
挂载到一个单独分区,这样以后重装系统就放在 home 目录的数据就没那么容易不小心消失了。如果其它挂载点不设置,都会使用/
根目录的空间,不会有什么影响 - 选择主分区,选择好磁盘,磁盘选择主磁盘就好了,不用选具体哪个分区, 点击现在安装
- 安装完成,拔掉 U 盘启动
启动引导检查
装完后,最好的情况,就是拔掉 U 盘,开机,自动进入 grub 引导界面,有 ubuntu 和 windows boot manager选项
不过也可能出现一些意外,比如 windows boot manager 消失, 以及选择 ubuntu 后进不了系统等, 甚至在 BIOS 启动选项都没有 ubuntu 这个选项。
不过也不要慌,系统都还在,只是引导出错了。
第一种最简单的问题,BIOS 启动项没选择对, 系统装好后会自动添加一个 ubuntu 的BIOS 启动项,但是可能没有设置成默认启动项,默认可能还是windows boot manager 需要手动设置,比如下图有很多启动项
前面说了,启动引导大致如下:
可以看到, 从 BIOS 到 ubuntu 有很多条路径, 我们只需要选择一条路走就好了,这里如果出问题了,最简单的方法就是使用 rEFInd, 它会自动寻找启动项,而且支持自定义 UI, 好用又好看, 使用方法见: 多系统启动管理:rEFInd
另外,如果装好系统后, BIOS 启动选项中也没有 grub 的引导项(一般 ubuntu 的 grub 引导项在 BIOS 中就叫 ubuntu)或者不小心删除了, 也可以自己建立, 用 U盘进入 Ubuntu 试用界面, 使用工具新建一个 BIOS 启动项即可,甚至有些 BIOS 直接支持新建启动项, 详情参考 UEFI启动分析 UEFI设置启动项