Linux 磁盘与磁盘分区

Linux 系统中全部的硬件设备都是经过文件的方式来表现和使用的,咱们将这些文件称为设备文件,硬盘对应的设备文件通常被称为块设备文件。本文介绍磁盘设备在 Linux 系统中的表示方法以及如何建立磁盘分区。说明:本文的演示环境为 ubuntu 16.04。ubuntu

磁盘分类

比较常见的磁盘类型有消费类市场中的 SATA 硬盘和服务器中使用的 SCSI 硬盘、SAS 硬盘,固然还有当下大热的各类固态硬盘。安全

SATA 硬盘
SATA(Serial ATA)口的硬盘又叫串口硬盘,Serial ATA 采用串行链接方式,串行 ATA 总线使用嵌入式时钟信号,具有了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不只仅是数据)进行检查,若是发现错误会自动矫正,这在很大程度上提升了数据传输的可靠性。串行接口还具备结构简单、支持热插拔的优势。SATA 硬盘主要用于消费类市场和一些低端服务器(下图来自互联网):服务器

 

SCSI 硬盘
SCSI 硬盘即采用 SCSI 接口的硬盘。它因为性能好、稳定性高,所以在服务器上获得普遍应用。同时其价格也不菲,正因它的价格昂贵,因此在普通PC上不多见到它的踪影。SCSI 硬盘使用 50 针接口,外观和普通硬盘接口有些类似(下图来自互联网):工具

SAS 硬盘性能

SAS 是 Serial Attached SCSI 的缩写,即串行链接的 SCSI,其目标是定义一个新的串行点对点的企业级存储设备接口。串行接口减小了线缆的尺寸,容许更快的传输速度。SAS 硬盘与相同转速的 SCSI 硬盘相比有相同或者更好的性能。SAS 硬盘通常用于比较高端的服务器。spa

固态硬盘
固态硬盘(Solid State Disk),通常称之为 SSD 硬盘,固态硬盘是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。其主要特色是没有传统硬盘的机械结构,读写速度很是快(下图来自互联网):操作系统

磁盘设备在 Linux 下的表示方法

在 Linux 系统中磁盘设备文件的命名规则为:
主设备号 + 次设备号 + 磁盘分区号
对于目前常见的磁盘,通常表示为:
sd[a-z]x
主设备号表明设备的类型,相同的主设备号表示同类型的设备。当前常见磁盘的主设备号为 sd。
次设备号表明同类设备中的序号,用 "a-z" 表示。好比 /dev/sda 表示第一块磁盘,/dev/sdb 表示第二块磁盘。
x 表示磁盘分区编号。在每块磁盘上可能会划分多个分区,针对每一个分区,Linux 用 /dev/sdbx 表示,这里的 x 表示第二块磁盘的第 x 个分区。3d

以下图所示:code

该系统中一共有四块磁盘 /dev/sda,/dev/sdb,/dev/sdc 和 /dev/sdd。其中的 /dev/sda 上建立了三个分区,分别是 /dev/sda1,/dev/sda2,/dev/sda5;/dev/sdb 上只有一个分区 /dev/sdb1。而 /dev/sdc 和 /dev/sdd 则还没有分区(也肯能是只有一个分区,分区的名称和磁盘的名称相同)。blog

磁盘分区

建立磁盘分区大概有下面几个目的:

  • 提高数据的安全性(一个分区的数据损坏不会影响其余分区的数据)
  • 支持安装多个操做系统
  • 多个小分区对比一个大分区会有性能提高
  • 更好的组织数据

本文以常见的 MBR 分区为例介绍磁盘分区中的一些常见概念。MBR 磁盘的分区由主分区、扩展分区和逻辑分区组成。在一块磁盘上,主分区的最大个数是 4,其中扩展分区也是一个主分区,而且最多只能有一个扩展分区,但能够在扩展分区上建立多个逻辑分区。所以主分区(包括扩展分区)的范围是 1-4,逻辑分区从 5 开始。对于逻辑分区,Linux 规定它们必须创建在扩展分区上,而不是创建在主分区上。
主分区的做用是用来启动操做系统的,主要存放操做系统的启动或引导程序,所以建议操做系统的引导程序都放在主分区,好比 Linux 的 /boot 分区,最好放在主分区上:

扩展分区只不过是逻辑分区的 "容器"。实际上只有主分区和逻辑分区是用来进行数据存储的,于是能够将数据集中存放在磁盘的逻辑分区中。
咱们能够经过 fdisk 命令来查看磁盘分区的信息:

$ sudo fdisk -l /dev/sda

输出中的前几行是磁盘的基本信息,好比总大小为 80G,一共有多少个扇区(sector),每一个扇区的大小等等。红框中的则是咱们比较关注的分区信息:
第一列 Device 显示了磁盘分区对应的设备文件名。
第二列 Boot 显示是否为引导分区,上图中的 /dev/sda1 就是引导分区。
第三列 Start 表示磁盘分区的起始位置。
第四列 End 表示磁盘分区的结束位置。
第五列 Sectors 表示分区占用的扇区数目。
第六列 Size 显示分区的大小。
第七列和第八列显示的内容相同,分别是数值 ID 及其文字描述。 Id 列显示了磁盘分区对应的 ID,根据分区的不一样,分区对应的 ID 号也不相同。Linux 下用 83 表示主分区和逻辑分区,5 表示扩展分区,8e 表示 LVM 分区,82 表示交换分区,7 表示 NTFS 分区。
上图中的信息代表:/dev/sda1 是一个主分区而且被用做引导分区;/dev/sda2 是扩展分区,其中只有一个逻辑分区,即 /dev/sda5,这点能够经过两个分区相同的大小证实。

利用 fdisk 划分磁盘分区

fdisk 是 Linux 系统中一款功能强大的磁盘分区管理工具,能够观察硬盘的使用状况,也能够用来管理磁盘分区。本文仅介绍如何使用 fdisk 建立新的磁盘分区。
假设咱们的 Linux 系统中增长了一块新的磁盘,系统对应的设备名为 /dev/sdd,下面咱们经过 fdisk 命令对这个磁盘进行分区。

$ sudo fdisk /dev/sdd

输入命令 n 来建立新分区:

根据上面的提示,咱们选择 p 来建立主分区,而后提示咱们输入分区的编号:

主分区的编号为 1- 4,这里咱们输入了 1。接下来是设置分区的大小:

分区的大小是经过设置分区开始处的扇区和结束处的扇区设置的。这里若是回车两次会把整个磁盘划分为一个分区,也就是整个磁盘的容器都分给了一个分区。这样一个简单的分区就差很少完成了,注意此时的分区信息尚未写入到磁盘中,在这里还能够反悔,若是确认执行上面的分区,执行 w 命令就好了:

这时分区操做已经完成了,咱们能够经过下面的命令查看分区的结果:

$ sudo fdisk -l /dev/sdd

若是嫌上面的执行过程麻烦,能够用下面的一行命令起到相同的效果:

$ (echo n; echo p; echo 1; echo ; echo ; echo w) | sudo fdisk /dev/sdd

更改分区的类型

上面建立的分区类型默认为 83(Linux),若是想要一个 8e(Linux LVM)类型的分区该怎么办?咱们能够继续使用 fdisk 命令修改分区的类型,此次输入 t 命令来修改分区的类型:

接下来能够选择要修改的分区号,咱们只有一个分区,因此默认就是 1。
下面咱们能够经过 L 命令来查看 fdisk 命令支持的分区类型:

咱们须要建立 LVM,所以咱们使用 LVM 的类型代码 8e:

最后输入 w 命令确认变动。再次查看 /dev/sdd 的分区信息,此时分区类型已经变成了 Linux LVM:

总结

分区是使用磁盘的基础,在分区完成后还须要对分区进行格式化,并把格式化后的文件系统挂载到 Linux 系统以后才能存储文件。

相关文章
相关标签/搜索