Hans学Linux系列文章目录
第0章 计算机系统
第1章 Linux概述
第2章 Linux虚拟机安装和磁盘分区
目录
Hans学Linux系列文章目录
前言
一、安装虚拟机
二、Linux磁盘分区
1.MBR分割表
2.GUID partition table, GPT 磁碟分割表
三、BIOS和UEFI开机模式
1. BIOS 搭配MBR/GPT 的开机流程
2. UEFI BIOS 搭配GPT 开机的流程
四、Linux 分区
总结
前言
学习Linux只通过看书看博客是肯定不够的,在自己的PC上安装一个Linux操作系统会好很多,之前研究生的时候在PC上装过双系统、Ubuntu14.04、16.04、18.04和20.01版本都装过,个人感觉更新的系统装起来更省力一些,因为比较老的操作系统对硬件的支持不够,装显卡驱动、wifi驱动会很费时间,而且坑特别多。
这次想通过虚拟机的方式学习Linux,原因有两点:
一、这种方式安装很方便,不需要考虑引导等问题。
二、在虚拟机里面可以随便造,不用担心会把电脑搞崩之类的问题。
本次打算使用另一套发行商提供的版本CentOS 7。
一、安装虚拟机
关于如何在win10下安装虚拟机的帖子有很多,这次就暂且不表。
我在win10电脑上安装两套虚拟机,一套是CentOS 7.6版本的,另一套选择Ubuntu20.04LTS。
二、Linux磁盘分区
从磁盘的物理结构来看存取信息的最小单位是扇区,扇区的物理量设计有两种大小,分别是512bytes 与4Kbytes。
分割表
1.MBR分割表
早期的Linux 系统为了相容于Windows 的磁碟,因此使用的是支援Windows 的MBR(Master Boot Record, 主要开机纪录区) 的方式来处理开机管理程序与分割表!
而开机管理程序纪录区与分割表则放在磁碟的第一个扇区,这个扇区通常是512bytes。而这个扇区包含的内容有:
- 主要开机记录区(Master Boot Record, MBR):安装开机管理程序的地方,446 bytes
- 分割表(partition table):记录整颗硬盘分割的状态,64 bytes
在分割表中,分为三种分割方式:主要分割、延伸分割和逻辑分割
其中:
- 主要分割与延伸分割最多可以有四笔
- 延伸分割最多只能有一个
- 逻辑分割是由延伸分割持续切割出来的分割槽
由于分割表逻辑地址以32位二进制表示,所以最大只能表示2^32个地址,因此MBR支持的最大容量为2^32*512字节(默认每个扇区大小)=2048G。
较新的硬盘默认扇区支持4k,MBR可支持的最大容量为2^32*4k=16T。
2.GUID partition table, GPT 磁碟分割表
此种方式较新,可以支持4K磁取的硬盘,大多会使用逻辑区块位址(Logical Block Address, LBA)来处理,GPT 将磁盘所有区块以LBA(预设为512bytes) 来规划,与MBR 仅使用第一个512bytes 区块来纪录不同, GPT 使用了34 个LBA 区块来纪录分割信息,并且与MBR不同,GPT 除了前面34 个LBA 之外,整个磁碟的最后33 个LBA 也拿来作为另一个备份。
LBA0 (MBR 相容区块)
与MBR 模式相似,这个相容区块也分为两个部份,一个就是跟之前446 bytes 相似的区块,储存了第一阶段的开机管理程序!而在原本的分割表的纪录区内,这个相容模式仅放入一个特殊标志的分割,用来表示此磁盘为GPT 格式。
LBA1 (GPT 表头纪录)
这个部份纪录了分割表本身的位置与大小,同时纪录了备份用的GPT分割的位置, 同时放置了分割表的检验机制码(CRC32)。
LBA2-33 (实际纪录分割资讯处)
从LBA2 区块开始,每个LBA 都可以纪录4 笔分割纪录,所以在预设的情况下,总共可以有4*32 = 128 笔分割纪录,GPT 在每笔纪录中分别提供了64bits 来记载开始/结束的磁区号码,因此GPT最大支持的硬盘为2^64*512bytes = 2^30TB。
三、BIOS和UEFI开机模式
1. BIOS 搭配MBR/GPT 的开机流程
开机流程:
- BIOS:开机主动执行的固件,读取硬件信息。
- MBR:第一个可开机装置的第一个磁区内的主要开机记录区块,内含开机管理程序;
- 开机管理程序(boot loader):读取grub、内核等来启动;
- 内核启动:将内核加载到内存中
2. UEFI BIOS 搭配GPT 开机的流程
UEFI相当于一个小型的操作系统,使用UEFI的主机,在开机的速度上要比BIOS 来的快上许多。UEFI和BIOS的比较如下表所示:
比较项目 | 传统BIOS | UEFI |
使用程式语言 | 组合语言 | C 语言 |
硬体资源控制 | 使用中断(IRQ) 管理 不可变的记忆体存取 不可变得输入/输出存取 | 使用驱动程式与协定 |
处理器运作环境 | 16 位元 | CPU 保护模式 |
扩充方式 | 透过IRQ 连结 | 直接载入驱动程式 |
第三方厂商支援 | 较差 | 较佳且可支援多平台 |
图形化能力 | 较差 | 较佳 |
内建简化作业系统前环境 | 不支援 | 支援 |
四、Linux 分区
一般的教程都使用手动分区/ /boot /swap /home等,可能由于有些教程比较陈旧,很多教程中都选择分区时给/boot分配100M的空间,但此种分区方法已经不太适合了,/boot文件夹一般用来存放一些引导和内核文件,Linux 内核已经发展到了第五代,内核的尺寸也在增加,/boot只分给100M已经明显不够用了。我的建议是分给/boot更多的空间512M或1G,或者是干脆放弃/boot分区,其实影响不是很大。
总结
在本章节介绍了虚拟机安装、磁盘分割、linux分区的内容。
鸟哥的Linux私房菜依然是主要的参考。