鸟叔菜谱之Linux磁盘管理

磁盘硬件信息

磁盘的物理组成

在硬盘盒里面其实是由许许多多的圆形磁盘盘、机械手臂、 磁盘读取头与主轴马达所组成的,整个内部如同下图所示:
这里写图片描述
实际的数据都是写在具有磁性物质的磁盘盘上头,而读写主要是透过在机械手臂上的读取头(head)来
达成。实际运作时, 主轴马达让磁盘盘转动,然后机械手臂可伸展让读取头在磁盘盘上头进行读写
的动作。 另外,由于单一磁盘盘的容量有限,因此有的硬盘内部会有两个以上的磁盘盘喔!

磁盘盘上的数据

既然数据都是写入磁盘盘上头,那么磁盘盘上头的数据又是如何写入的呢?其实磁盘盘上头的数据有点像下面的图标所示:
这里写图片描述

由于磁盘盘是圆的,并且透过机器手臂去读写数据,磁盘盘要转动才能够让机器手臂读写。因此,通常数据写入当然就是以圆圈转圈的方式读写啰! 所以,当初设计就是在类似磁盘盘同心圆上面切出一个一个的小区块,这些小区块整合成一个圆形,让机器手臂上的读写头去存取。 这个小区块就是磁盘的最小物理储存单位,称之为扇区 (sector),那同一个同心圆的扇区组合成的圆就是所谓的磁道(track)。 由于磁盘里面可能会有多个磁盘盘,因此在所有磁盘盘上面的同一个磁道可以组合成所谓的磁柱 (cylinder)

磁盘分类

机械硬盘:

组成部件:   圆形的磁盘盘(主要记录数据的部分);
           机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);
            主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据。

主要优势: 相对于固态硬盘来说,硬盘价格低,容量大,数据可恢复,使用寿命长

固态硬盘:

组成部件: 固态电子存储芯片阵列,FLASH芯片(控制单元)、DRAM芯片(存储单元)

主要优势:  防震抗摔、传输速率、功耗、重量、噪音上有明显优势,固态硬盘传输速率性能是机械硬盘的2倍
接口类型

为了要提升磁盘的传输速度,磁盘与主板的连接接口也经过多次的改版,因此有许多不同的接口喔!
传统磁盘接口包括有 SATA, SAS, IDE 与 SCSI 等等。 若考虑外接式磁盘,那就还包括了 USB,eSATA 等等接口喔!不过目前 IDE 已经被 SATA 取代,而 SCSI 则被 SAS 取代。

    IDE(ata):并口,133MB/s
    SCSI:并口,Ultrascsi320, 320MB/S, UltraSCSI640, 640MB/S
    SATA:串口,6gbps /8       IDE的升级版,传输速率快,干扰小则速率快
    SAS:串口,6gbps
    USB:串口,480MB/s

    并口:同一线缆可以接多块设备;
        IDE:两个,主,从
        SCSI:
            宽带:16-1 设备
            窄带:8-1  设备
    串口:同一线缆只可以接一个设备;
磁盘分区

在linux当中一切皆文件:所以在 Linux 系统中,每个磁盘分区都被当成一个文件来对待。

底下列出几个常见的装置与其在 Linux 当中的文件名
这里写图片描述

例题:
如果你的 PC 上面有两个 SATA 磁盘以及一个 USB 磁盘,而主板上面有六个 SATA 的插槽。这两个 SATA 磁盘分别安
插在主板上的 SATA1, SATA5 插槽上, 请问这三个磁盘在 Linux 中的装置文件名为何?
答:
由于是使用侦测到的顺序来决定装置文件名,并非与实际插槽代号有关,因此装置的文件名如下:
1. SATA1 插槽上的檔名:/dev/sda
2. SATA5 插槽上的檔名:/dev/sdb
3. USB 磁盘(开机完成后才被系统捉到):/dev/sd

我们知道磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达所组成, 而数据的写入其实是在磁盘盘上面。

磁盘盘上面又可细分出扇区(Sector)与磁道(Track)两种单位, 其中扇区的物理量设计有两种大小,分别是 512bytes 与 4Kbytes。

那么是否每个扇区都一样重要呢?其实整颗磁盘的第一个扇区特别的重要,因为他记录了整颗磁盘的重要信息! 早期磁盘第一个扇区里面含有的重要信息我们称为 MBR (Master Boot Record) 格式,但是由于近年来磁盘的容量不断扩大,造成读写上的一些困扰, 甚至有些大于 2TB 以上的磁盘分区已经让某些操作系统无法存取。因此后来又多了一个新的磁盘分区格式,称为 GPT (GUID partitiontable)! 这两种分区格式与限制不太相同啦

那么分区表又是啥?其实妳刚刚拿到的整颗硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段, 这个区段才能够再制作成为你想要的家具!如果没有进行切割,那么原木就不能被有效的使用。 同样的道理,你必须要针对你的硬盘进行分区,这样硬盘才可以被你使用的!

通常磁盘可能有多个磁盘盘,所有磁盘盘的同一个磁道我们称为磁柱 (Cylinder), 通常那是文件系统的最小单位,也就是分区槽的最小单位啦!为什么说“通常“”呢?因为近来有 GPT 这个可达到 64bit 纪录功能的分区表, 现在我们甚至可以使用扇区 (sector)号码来作为分区单位哩!分区表其实目前有两种格式喔!我们就依序来谈谈这两种分区表格式吧

MBR分区表格式与限制

早期的 Linux 系统为了兼容于 Windows 的磁盘,因此使用的是支持 Windows 的 MBR(Master BootRecord, 主要开机纪录区) 的方式来处理开机管理程序与分区表!而开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区, 这个扇区通常是 512bytes 的大小 (旧的磁盘扇区都是 512bytes )所以说,第一个扇区 512bytes 会有这两个数据:

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

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

由于分区表所在区块仅有 64 bytes 容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。
这里写图片描述
假设上面的硬盘装置文件名为/dev/sda时,那么这四个分区槽在Linux系统中的装置文件名如下所示,
重点在于档名后面会再接一个数字,这个数字与该分区槽所在的位置有关喔!

  • P1:/dev/sda1
  • P2:/dev/sda2
  • P3:/dev/sda3
  • P4:/dev/sda4

上图中我们假设硬盘只有 400 个磁柱,共分区成为四个分区槽,第四个分区槽所在为第 301 到 400号磁柱的范围。 当你的操作系统为 Windows 时,那么第一到第四个分区槽的代号应该就是 C, D, E, F。当你有资料要写入 F 槽时, 你的数据会被写入这颗磁盘的 301~400 号磁柱之间的意思。

由于分区表就只有 64 bytes 而已,最多只能容纳四个分区的记录, 这四个分区的记录被称为主分区或扩展分区槽。
根据上面的图示与说明,我们可以得到几个重点信息

  • 其实所谓的『分区』只是针对那个 64 bytes 的分区表进行设定而已!
  • 硬盘默认的分区表仅能写入四组分区信息
  • 这四组分区信息我们称为主要(Primary)或延伸(Extended)分区槽
  • 分区槽的最小单位『通常』为磁柱(cylinder)
  • 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区槽进行数据的处理

为啥要分区?

1. 数据的安全性:
因为每个分区的数据是分开的!所以,当你需要将某个分区槽的数据重整时,例如你要将计算机中Windows 的 C盘重
那么 C 盘重装系统并不会影响到 D 盘! 所以善用分区盘,可以让妳的数据更安全。

2. 系统的效能考虑:
由于分区将数据集中在某个磁柱的区段,例如上图当中第一个分区槽位于磁柱号码 1~100 号,如此一来  当有数据要读
取自该分区时, 磁盘只会搜寻前面 1~100 的磁柱范围,由于数据集中了,将有助于数据读取的速度与效能!

#

#

猜你喜欢

转载自blog.csdn.net/lv8549510/article/details/80440929
今日推荐