[Linux] 硬盘构造与分区

  首先让我们从物理结构上了解一下硬盘的存储原理。

  硬盘构造示意图:

  

  1. head:磁头,磁盘盘面上的磁头,有几个磁头,就有几个盘面。从0开始编号,最大255,表示总共256个磁头。

  2. cylinder:柱面。每个盘面上的磁道叠加起来,看起来就像一个柱体,因此被称为柱面。对于单个磁盘盘面来说,一个柱面就是一个磁道,许多的同心圆磁道构成一个盘面。从0开始编号,最大1023,表示总共1024个磁道。

  3. sector:扇区。每个磁道上可以划分为若干段,每一段称为一个扇区,扇区是磁盘最小存储单位,一般每个扇区存储 512 个字节数据。从1开始编号,最大63,表示63个扇区。

  扇区示意图:

  

  你可以将一个硬盘想象为这么一栋圆柱体建筑,建筑有若干层,每一层正反面都是是一个圆形的田径场,这就是磁盘;每个田径场是由 N 个跑道组成,这就是磁道;每个田径场都有一个运输运动员进出场的接驳车,这就是磁头;用 N 条直径将整个田径场划分为 2N 个扇形,每条磁道都被直径划分为 2N 段,每条磁道的每一段就是扇区;每一个运动员就是一个字节,每一个扇区可以容纳 512 个运动员。

  

  硬盘(圆柱体建筑)示意图:

  单个磁盘单面(田径场)示意图:

  了解了 head, cylinder, sector 是什么后,就可以计算出硬盘容量。

  例如以下硬盘信息:

$ sudo fdisk /dev/mmcblk0 -l

Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes
4 heads, 16 sectors/track, 973968 cylinders, total 62333952 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00062524

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            2048       43007       20480    6  FAT16
/dev/mmcblk0p2           43008    62332927    31144960   83  Linux

  以上信息显示硬盘大小为 31914983424 bytes,约为 31.9 GB。

  该硬盘共有 4 个磁头,973968 个柱面,16 个扇区,每个扇区可存储 512 字节。

  硬盘容量 = 4 heads × 973968 cylinders × 16 sectors × 512 bytes = 31914983424 bytes = 30.436 GB

  扇区大小为 512 字节,但我们实际上存储的东西最小颗粒也可能会大于 512 字节,因此在进行格式化时,我们可以选择分配单元大小,即逻辑区块 Block,例如我们指定格式化时数据最小存储单位为 1024 字节,那么一个 Block 就是 1024 字节,即 1 个Block 等于 2 个 sectors。

  硬盘容量是如何增长的?

  (机械)硬盘容量虽然越来越大,但基本的构造原理没有太大变化。

  随着制造工艺技术提供,磁碟越来越薄,磁头也越来越小,这样一个硬盘储存器就可以装下越来越多的磁片,由于磁片表面密度越来越高,也就是磁道和扇区也越来越多,容量自然越来越大。

  另外还有一种叫做多区记录技术,在此技术之前,每个磁道都是被相同直径划分,这就意味着每个磁道上的扇区是一样多的,外围的扇区明显比内围的扇区要宽,这就浪费了很多磁道长度。在多区记录技术引入后,外围的磁道就可以划分更多的扇区,从而增加容量。



  以上就是硬盘的物理构造,硬盘只是存储介质,下面就让我们在硬盘上规划出数据的存储方案,这就是对硬盘进行分区。

  硬盘分区概念有三种,分别是主分区(primary partition)、扩展分区(extended partition)、逻辑分区(logical partition)

  在物理磁盘这个意义层面上,只有主分区和扩展分区,如果所有分区容量之和小于磁盘容量,剩余的部分就是未分配空间(unallocated disk)。硬盘分区信息保存在分区表(partition table)中,对操作系统而言,未分配空间是文件系统之外的不可用区域。

  对于硬盘而言,最多有四个分区,最少有一个分区,其中至少得包含一个主分区,至多包含一个扩展分区。

  分区是什么?为什么要有分区?

  分区就是将一个硬盘划分为若干连续的储存区域,分区表保存硬盘分区的索引,分区信息保存在分区表中。如果一个硬盘上只有一个分区,那么整个文件系统位于一个分区中,即整个文件系统存储在一个连续区域。如果该存储区域出现损坏,那么文件系统将受到破坏,用户可能丢失所有数据。对于文件系统而言,将系统数据和用户数据分开保存在不同分区,可以避免用户数据增长以致填满整个硬盘,从而导致系统崩溃或挂起。如果使用多个分区,也可以根据存储的文件对象不同,选择使用不同容量的最小存储单元进行分区格式化。 

  什么是主分区和扩展分区?

  在 Windows 平台下激活的主分区是硬盘的启动分区,一般是 C 盘,也是硬盘的第一个分区。在 Linux 平台主分区和扩展分区都可以用以安装操作系统核心。

  主分区属于原子分区,不能再将其划分不同区域来使用,数据直接保存在主分区的存储单元上。扩展分区不能直接用于储存数据,必须将扩展分区划分为更小的存储单元,即逻辑分区,数据都是保存在逻辑分区中。

  主分区和逻辑分区好比是文件,而扩展分区好比是目录,硬盘空间主要由主分区、扩展分区(由逻辑分区组成)、未分配空间组成。

  一般来说,先分出主分区,剩下的就都划为扩展分区,没有必要的话,一般不留未分配空间以免浪费硬盘空间。

  总的说来,一个硬盘只能划分为四个分区(主分区和扩展分区),一个主分区就是一个分区,一个扩展分区可以划分为任意数量的逻辑分区。

  什么是主引导扇区?

  主引导扇区是位于磁盘最前面一段保存引导(loader)代码的区域,该代码也被称为主引导记录(MBR,Main Boot Record),这段代码的作用在于让磁盘操作系统(DOS)对磁盘进行读写时分区合法性判断、分区引导信息定位,它也是由磁盘操作系统(DOS)在对磁盘进行初始化的时候产生。

  该磁盘区域不属于主分区和扩展分区,因此主引导程序更不属于硬盘上安装的任何操作系统。它作为磁盘上一个非常小的特殊区域独立存在,不会被分区空间内的格式化命令所擦除。该磁盘区域主要可以分为三个部分:

  1. 主引导程序(即主引导记录 MBR),空间大小为 446 个字节。它会在硬盘启动后,将系统控制权转交给在分区表中登记的操作系统,让操作系统可以操作磁盘。

  2. 分区表(DPT,Disk Partition Table),由四个分区表构成(每个 16 字节,这也就是为什么硬盘至多只有四个分区)。

  3. 结束标识(2字节),值为 AA55(十六进制)。

  简而言之,主引导程序的作用就是在硬盘启动后,引导电脑设备进入安装在硬盘上的操作系统程序。

1. 硬盘的扇面、磁道、扇区

时间: 2024-11-05 15:23:16

[Linux] 硬盘构造与分区的相关文章

Linux 硬盘格式化、分区、挂载、卸载、删除分区

Linux 硬盘格式化.分区.挂载.卸载.删除分区 Linux 2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如: sda 表示第1块SCSI硬盘 hda 表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上) scd0 表示第1个USB光驱. 0. 查看挂载情况 df -hl 看到系统只挂载了40G的 /dev/vda1 在 / 目录下, 分别分给了不同文件夹 1. 查看硬盘信息 fdisk -l 有一个 20G 的 /dev/vdb

Linux 硬盘分区

硬盘分区   Linux分区表有以下两种:MBR,GPT MBR: MBR分区表(即主引导记录)大家都很熟悉.所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 GPT: GPT(即GUID分区表).是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式.与MBR分区方式相比,具有如下优点.突破MBR 4个主分区限制,每个磁盘最多支持128个分区.支持大于2T的分区,最大卷可达18EB. Linux中fdisk分区工具支持MBR分区,parted

linux硬盘分区格式化及挂载

linux硬盘分区格式化及挂载 1.硬盘的接口类型 硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在linux上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为主板上面一般有两个IDE插槽,一个IDE插槽可以接两个硬盘,而光驱是接着IDE的第二个插槽上面的第一个接口上面.其他诸如SCSI,SAS,SATA,USB等接口的设备在linux识别为/dev/sd[a-z]. 2.linux硬盘的分区 磁盘的分区分为: primar

企业生产场景下如何对Linux硬盘分区

生产环境: 硬件:华硕PC机,4 Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz,内存4G: 任务:生产场景下如何对Linux硬盘分区,安装CentOS6.9版本,搭建公网环境: 技巧:U盘安装.生产场景分区 1.背景   添加一台新电脑,目前该主机是裸机,没有安装任何操作系统.在安装操作系统之前,先要分区,在这里作者是按企业生产场景环境来分区的,对硬盘分区之前,我们先梳理磁盘分区的相关知识. 2.磁盘分区知识:    为什么硬盘要分区,因为我们要告诉操作系统,从

Linux硬盘分区及格式化学习笔记

一.硬盘分区 (一)硬盘分区好处 1.可避免数据丢失.通常在Windows系统中,常常将硬盘划分成多个分区,如C.D.E.F盘等,而C盘主要作为系统盘.这样的好处在于一旦系统崩溃需重装系统时,除C盘之外的其他数据均可得到保存,重而降低数据丢失的风险.同时分区也有利于管理软件.数据等. 2.可安装多个系统.比如Win8和Linux就不能装在同一个分区.每个分区都能被格式化成不同的文件系统,或是支持Windows的FAT32.NTFS:亦或是支持Linux的EXT系列.NFS.GFS等,这样就可在装

linux系统下使用分区、格式化、挂载命令添加新硬盘

一.硬盘的接口类型 从整体的角度上,硬盘接口分为IDE.SATA.SCSI.光纤通道和SAS五种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵.SATA是种新生的硬盘接口类型,还正处于市场普及阶段,在家用市场中有着广泛的前景. 二.linux的硬盘分区 linux磁盘的分区分为: primary(主分区).extended(扩展分区).Logical (逻辑分区)且主分区加上扩展分区的个数小于等于4个.且扩展分

(转)硬盘分区备忘(主分区,扩展分区和逻辑分区)以及Linux硬盘分区工具parted 介绍

场景:最近在学习Linux的基础知识,不可避免的设计到Linux的磁盘分区,以前做过总结,但是那种总结就是复制别人的文章,总结完就不想看第二遍,所以很容易就遗忘了!清楚明白的理解分区后,我就可以在自己的电脑上随意操作了! 1 主分区 我们知道硬盘的第一个扇区也就是第0扇区是用来存放主引导记录(MBR)的,因此也称MBR扇区. 一个扇区是512字节,因此MBR的大小也是512字节,其具体数据结构是:446个字节的引导代码.64个字节的分区表及2个字节的签名值"55AA". 由于MBR的分

Linux硬盘分区挂载及swap分区扩容

本文以纯代码形式书写,请各位同仁在阅读时抓住带颜色字体的位置.这才是重中之重!! (小编也不知道使用代码称呼呢还是用指令称呼 O(∩_∩)O哈哈~) [[email protected] ~]fdisk -l             查看磁盘信息 Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical

Linux硬盘分区与文件系统---学习笔记

一·linux的硬盘和分区 (1)硬盘:IDE接口的硬盘,表示为"hdX"形式表示:而对于SCSI接口的硬盘,表示为"sdX".其中"X"可以为a.b.c.d等字母序号.例如:系统中的第一块IDE接口的硬盘,表示为"hda" 第二块SCSI硬盘表示为"sdb" (2)分区:表示分区时,以硬盘的文件名作为基础,在后面添加该分区(无论主分区.扩展分区.逻辑分区)对应的数字即可.例如:第一个IDE硬盘的第一个分区