Linux磁盘与文件系统管理(一) :磁盘基本知识

参考资料:《鸟哥的Linux私房菜(第四版)》

磁盘知识

磁盘的组成原理

盘片(platter)与磁头(head)

image

一个盘片有两个盘面,磁头通过扫过这些盘面读写数据,上下两个盘面都可以使用。

如果一个磁盘有5张盘片,那么就有10个盘面可以使用

磁道(track)与扇区(sector)

image

在上图中,每个同心圆就是一个磁道,就像运动场的跑道一样 😃

扇区就是跑道上的一个段,像一小块扇子一样。扇区是磁盘上的最小单元,通常为512bytes或4KB

柱面(cylinder)

因为每个盘都有相同数量的磁道,我们从边缘的磁盘开始编号,具有同编号的磁盘就组成了一个圆柱,称为磁盘的柱面。

因此,柱面数就是磁道数(单独一个扇面上的)。

磁盘分区

磁盘的设备名称

在Linux系统中,有一句话,叫“万物皆文件”。硬盘的文件名就是 /dev/sd[a-p]

## 虚拟机里添加四个磁盘 10G 10G 5G 5G
[root@orcl19 ~]# fdisk -l |grep  "Disk /dev/*"
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors
Disk /dev/sde: 5368 MB, 5368709120 bytes, 10485760 sectors
Disk /dev/sdd: 5368 MB, 5368709120 bytes, 10485760 sectors

以 SATA 接口来说,由于 SATA/USB/SAS 等磁盘接口都是使用 SCSI 模块来驱动的, 因此这些接口的磁盘装置文件名都是/dev/sd[a-p]的格式。

MSDOS(MBR) 分区

早期的 Linux 系统为了兼容于 Windows 的磁盘,因此使用的是支持 Windows 的 MBR(Master Boot
Record, 主要开机纪录区) 的方式来处理开机管理程序与分区表。

#### 因为mbr是微软的,所以称为msdos
##在虚拟机重
[root@orcl19 raw]#  parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 129GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1075MB  1074MB  primary   xfs             boot
 2      1075MB  66.7GB  65.6GB  primary   xfs
 3      66.7GB  120GB   53.7GB  primary   xfs
 4      120GB   129GB   8458MB  extended
 5      120GB   129GB   8456MB  logical   linux-swap(v1)


Error: /dev/sdb: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

[root@orcl19 raw]#

而开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区, 这个扇区通常是 512bytes 的大小。

第一个扇区 512bytes 会有这两个数据:

1 主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有 446 bytes

2 分区表(partition table):记录整颗硬盘分区的状态,有 64 bytes

分区表所在区块仅有 64 bytes 容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。

假如这个硬盘只有有400个柱面,分成了4个区

分区1:1~100 号柱面
分区2:101~200 号柱面
分区3:201~300 号柱面
分区4:301~400 号柱面

如果磁盘为 /dev/sda,那么四个分区就是:

/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda4

如果我们王 /dev/sda1这个分区时,其实就是写入 1~100号的柱面里。

分区的优点:

1 数据的安全性

2 提高效能

假如 /opt 挂载了 /dev/sda2

当我们访问 /opt/oracle/xxx 文件时,就直接知道 /dev/sda2 这个分区

想到于只需要扫描 101~200 这些磁柱,会提高速度

既然分区表只有记录四组数据的空间,那么是否代表我一颗硬盘最多只能分区出四个分区槽?

不是,我们可以通过延伸分区(Extended)的方法来处理

参考:

由于这个 MBR 区块的容量有限,所以,当初设计的时候,就只有设计成 4 个分区纪录,这些分区记录就被称为 Primary ( 主分区 ) 及 Extended ( 扩展分区 ) ,也就是说,一颗硬盘最多可以有 4 个 Primary + Extended 的扇区,其中,Extended 只能有一个,因此,你如果要分区成四块磁盘分区的话,那么最多就是可以:

P + P + P + P

P + P + P + E

的情况来分区了。需要特别留意的是,如果上面的情况中, 3P +E 只有三个『可用』的磁盘,如果要四个都『可用』,就得分区成 4P 了!( 因为 Extended 不能直接被使用,还需要分区成 Logical 才行)

posted on 2023-02-13 09:03  兔哥DB  阅读(74)  评论(0编辑  收藏  举报

导航