⼀、简介

在Linux系统中,每个设备都被当成⼀个⽂件来对待

⼆、外设

SCSI/SATA/USB硬盘机、USB闪存盘 :/dev/sd[a-p]

VirtI/O界⾯ :/dev/vd[a-p] (⽤于虚拟机内)

软盘机: /dev/fd[0-7]

打印机 :/dev/lp[0-2] (25针打印机) /dev/usb/lp[0-15](USB 接⼝)

⿏标 :/dev/input/mouse[0-15] (通⽤) /dev/psaux(PS/2界⾯) /dev/mouse (当前⿏标)

CDROM/DVDROM:/dev/scd[0-1] (通⽤) /dev/sr[0-1] (通⽤,CentOS 较常⻅) /dev/cdrom (当前 CDROM)

磁带机/dev/ht0:(IDE 界⾯) /dev/st0 (SATA/SCSI界⾯) /dev/tape (当前磁带)

三、磁盘分区

1、MSDOS (MBR) 分区表

开机管理记录区与磁盘分区表统统放在磁盘的第⼀个扇区,这个扇区⼤⼩⼀般是512Bytes。

主要开机记录区(Master Boot Record, MBR):可以安装开机管理程序的地⽅,有446 Bytes

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

由于分区表所在区块仅有64 Bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始

与结束的柱⾯号码。 若将硬盘以⻓条形来看,然后将柱⾯以直条图来看,那么那64 Bytes的记录区段

有点像下⾯的图⽰:

131145045_1_20180424110405566

如果硬盘设备名是/dev/sda 的话,那么四个分区分别为

P1:/dev/sda1

P2:/dev/sda2

P3:/dev/sda3

P4:/dev/sda4

分区的意义是什么呢?

数据安全性:整块磁盘分为四个分区,相互之间不会影响,即使⼀个损坏,其他盘⼀样可以正常⼯作,⼀个

常⻅的应⽤场景就是我们在重新安装系统的时候,只需要格式化C盘,其他盘的数据不受影响

读写速度快:数据集中在某⼀个分区,读写查找磁盘速度较全局查找快,对于磁盘性能有很⼤提升

如果想要对磁盘进⾏更多的分区划分怎么办?

磁盘⽀持扩展分区,可以实现划分多块分区(4块)的功能,如图所⽰:

131145045_2_20180424110405691

即 P+E模式,P:主要分区,E :扩展分区, L:逻辑分区

P1:/dev/sda1

P2:/dev/sda2

L1:/dev/sda5

L2:/dev/sda6

L3:/dev/sda7

L4:/dev/sda8

这种模式是我们经常⽤的模式,例如我的系统是ubuntu16.04,⽽我的磁盘分区情况是:

131145045_3_20180424110405847

具体分区情况:

131145045_4_2018042411040619

可以看出,sda1是主分区P,sda2是扩展分区E,5-9是逻辑分区

MBR 主要分区、延伸分区与逻辑分区的特性我们作个简单的定义啰:

主要分区与延伸分区最多可以有四笔(硬盘的限制)

延伸分区最多只能有⼀个(操作系统的限制)

逻辑分区是由延伸分区持续切割出来的分区;

能够被格式化后,作为数据存取的分区为主要分区与逻辑分区。延伸分区⽆法格式化;

逻辑分区的数量依操作系统⽽不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制;

思考题:

1、如果我想将⼀颗⼤硬盘'暂时'分区成为四个partitions,同时还有其他的剩余容量可以让我在未来的时候

进⾏规划, 我能不能分区出四个Primary?若不⾏,那么你建议该如何分区?

2、假如我的PC有两颗SATA硬盘,我想在第⼆颗硬盘分区出6个可⽤的分区(可以被格式化来存取数据之

⽤), 那每个分区在Linux系统下的设备⽂件名为何?且分区类型各为何?⾄少写出两种不同的分区⽅式

2、GUID partition table, GPT 磁盘分区表

未完待续。。。

参考链接:

https://www.kernel.org/doc/Documentation/devices.txt

https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/20.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐