磁盘管理
一、认识磁盘
什么是磁盘:
磁盘运行机理:
简单来说就是多个盘片之间靠主轴连接,电机带动主轴做旋转运动,通过多个磁头臂的摇摆和磁盘的旋转,磁头就可以在磁盘旋转的过程中就读取到磁盘中存储的各种数据
磁盘的扇区、磁道、柱面:
(1)磁道:磁盘的每个盘面被划分为许多同心圆,这些同心圆的轨道叫做磁道。 (2)扇区:一个盘面划分为若干个内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区。每个扇区中的数据作为一个单元同时被读入或写入。每一个扇区是512字节,其中有64个字节存储的是分区表,一条分区信息占16个字节。 (3)柱面:每一个盘片同一大小的同心圆可以看成连在一起的柱面,磁盘在分区的时候最小单位是柱面,每一个盘片的上下面都可以读取数据,每一个磁头,不可以跨盘面读取数据。
二、磁盘的分区
为什么要分区
(1)易于管理和使用:
比如说我们把磁盘分了sda1、sda2、sda3、sda4盘,我们假设sda1盘为系统盘,其他的比如说游戏、办公、软件盘,这样我们要重新分哪个区就直接在对应的盘分就可以了,不需要整块磁盘进行分区。根据用途我们也能较快的去使用相应的磁盘。
(2)有利于数据的安全:
通过分区可以降低数据损失的风险。出现硬盘坏道、错误操作、重装系统都有可能造成数据损失,如果分区了,那么我们就可以将损失最小化。
(3)节约寻找文件的时间:
这个我觉得跟第一条比较像,但是这里所说的寻找文件的时间,是指电脑搜索文件的时间。分区以后,电脑搜索文件时只需要在相对应的分区搜索就可以了,没必要进行全盘搜索。大大节省了寻找文件的时间。
下图为硬盘的柱面区间示意图:
由于我们之前说过一个扇区是512字节,其中有64个字节存储的是分区表,一条分区信息占16个字节,因此磁盘最多只能分四个分区,要想有多个分区怎么办?这时候就有了扩展分区。
扩展分区:
比如说是图中p4为扩展分区,扩展分区可以被继续划分为多个逻辑分区,逻辑分区是可以进行格式化的。扩展分区把逻辑分区的分区信息在扩展分区中找了一个位置给存起来。假如说p4扩展分区划分了三个逻辑分区那么第1个逻辑分区命名为sda5、第2个为sda6、第3个sda7,以此类推。 上面所说的是一个磁盘被分为四个分区,第四个分区被设置为扩展分区,第一个逻辑分区为sda5。但是当整个磁盘被分为3个分区的时候,我们把扩展分区划分的第1个逻辑分区依然命名为sda5,而不是其它的。总结一下,就是不论磁盘有几个主分区,第一个逻辑分区一定是从sda5开始。
三、磁盘在系统同的命名
设备名称 | 分区信息 | 设备类型 |
---|---|---|
/dev/sda | /dev/sda1 | 第一块物理磁盘第一分区 |
/dev/sdb | /dev/sdb | 第二块磁盘第二个分区 |
/dev/vdd | /dev/vdd4 | 第四块虚拟磁盘的四个分区 |
分区主要分为三类:主分区《--- 扩展分区《--- 逻辑分区
#1、逻辑分区属于扩展分区, 扩展分区属于主分区
#2、主分区又叫做引导分区, 是可以安装系统的分区
目前常见的磁盘分区格式有两种, MBR 分区和 GPT 分区:
-
MBR 分区, MBR 的意思是 " 主引导记录"。MBR 最大支持 2TB 容量, 在容量方面存在着极大的瓶颈。最多4个主分区、通常用于<2T的硬盘空间。
-
GPT 分区, GPT 意为 GUID 分区表, 它支持的磁盘容量比 MBR 大得多。这是一个正逐渐取代 MBR 的新标准, 它是由 UEFI辅住而形成的, 将来 UEFI 用于取代老旧的 BIOS , 而 GBT 则取代老旧的 MBR 。最多128个主分区、通常用于>2T的硬盘空间
磁盘分区工具
-
MBR分区格式====》分区工具fdisk(最多4个主分区、通常用于<2T的硬盘空间)
-
GPT分区格式=====》分区工具gdisk(最多128个主分区、通常用于>2T的硬盘空间)
MBR格式和GPT格式区别:
-
支持的硬盘空间大小不同
-
支持主分区大小不同
四、磁盘的分区
MBR分区
-
fdisk命令用法:
用法:
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
选项:
-b <大小> 扇区大小(512、1024、2048或4096)
-c[=<模式>] 兼容模式:“dos”或“nondos”(默认)
-h 打印此帮助文本
-u[=<单位>] 显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
-v 打印程序版本
-C <数字> 指定柱面数
-H <数字> 指定磁头数
-S <数字> 指定每个磁道的扇区数
-
fdisk工具
适用于磁盘小于2TB的磁盘, 分区类型MBR, 主分区4或主分区3+扩展分区 (逻辑分区+…) , 分区后需要保存后才能生效
(1) 在进行分区时,首先我们需要查看当前磁盘的一个分区状况,使用命令:fdisk -l
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e88a1
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 976895 487424 83 Linux
/dev/sda2 976896 4882431 1952768 82 Linux swap / Solaris
/dev/sda3 4882432 41943039 18530304 83 Linux
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:2684.4 GB, 2684354560000 字节,5242880000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
#注意:/dev/sda1 后面有个*,表示该磁盘用于引导系统进行启动。
sda1:存放的是与系统相关的文件
sda2:虚拟内存交换分区
sda3:为我们系统上的根分区
start、end表示分区开始的扇区位置和结束的扇区位置。
blocks:表示块的信息,一个块里面有多个扇区。
Id:表示磁盘编号
system:表示Linux系统分区的一个分区信息。
PS:也可用lsblk命令查看设备详情,以及分区的情况
[root@localhost ~]# lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1