Linux 磁盘原理与管理 (分区 挂载)

本文详细介绍了Linux系统中磁盘与主机的连接方式,重点关注磁盘原理,包括硬盘容量计算和MBR的重要性。MBR包含启动记录区和分割表,允许系统启动并管理最多4个主分区或扩展分区。扩展分区可以创建多个逻辑分区,Linux中IDE硬盘最多有63个逻辑分区,而SATA硬盘最多有15个。文章还讨论了Linux的分区类型,如/boot、/根分区和swap,并解释了不同接口磁盘的设备命名规则。
摘要由CSDN通过智能技术生成

       

      目前硬盘与主机系统的联系主要有几种传输介面规格:

IDE介面
        IDE介面插槽所使用的排线较宽,每条排线上面可以接两个IDE装置,由於可以接两个装置,那为了判别两个装置的主/从架构, 因此这种磁碟机上面需要调整跳针(Jump)成为Master或slAVe!这种介面的最高传输速度为Ultra 133规格, 亦即每秒理论传输速度可达133MBytes。
Linux 磁盘原理与管理 - 朝鲜程序员 - 朝鲜程序员的博客

SATA介面

所示为SATA硬盘的连接介面插槽。 我们可以看到该插槽要比IDE介面的小很多,每条SATA连接线仅能接一个SATA装置。SATA介面除了速度较快之外, 由於其排线较细小所以有利於主机机壳内部的散热与安装!目前SATA已经发展到了第二代, 其速度由SATA-1的每秒150MBytes提升到SATA-2每秒300MBytes的传输速度喔, 也因此目前主流的个人计算机硬盘已经被SATA取代了。SATA的插槽示意图如下所示:

SATA 介面的排线 (图示取自 Seagate 网站)
图2.4.5、SATA 介面的排线 (图示取自 Seagate 网站)

由於SATA一条排线仅接一颗硬盘,所以你不需要调整跳针。不过一张主机板上面SATA插槽的数量并不是固定的, 且每个插槽都有编号,在连接SATA硬盘与主机板的时候,还是需要留意一下。


  • SCSI介面

    另一种常见於工作站等级以上的硬盘传输介面为SCSI介面,这种介面的硬盘在控制器上含有一颗处理器, 所以除了运转速度快之外,也比较不会耗费CPU资源喔!在个人计算机上面这种介面的硬盘不常见啦!
 

       再说下磁盘原理

Linux 磁盘原理与管理 - 朝鲜程序员 - 朝鲜程序员的博客
 
编辑

        磁道:上图中硬盘被一圈圈分成9等分的同心圆,这些同心圆就是磁道.但打开硬盘,用户不能看到这些,它实际上是被磁头磁化的同心圆.这些磁道是有间隔的,因为磁化单元太近会产生干扰。
       扇区(磁区) :每个磁道中被分成若干等份的区域.扇区是硬盘数据存储的最小单位其中磁区每个为512bytes
Linux 磁盘原理与管理 - 朝鲜程序员 - 朝鲜程序员的博客
 
       柱面:假如一个硬盘只有上图中的3个磁盘片,每一片中的磁道数是相等的.从外圈开始,这些磁道被分成了0磁道、1磁道、2磁道...具有相同磁道编号的同心圆组成面就称作柱面.为了便于理解,柱面可以看作没有底的铁 桶.从上图可以看出,柱面数就是磁盘上的磁道数. 柱面是硬盘分区的最小单位.因此,一个硬盘的容量=柱面*磁头*扇区*512。
        簇 :扇区是硬盘数据存储的最小单位,但操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理.每个簇可以包括2、4、8、16、32、64个扇区

硬盘的容量=柱面*磁头*扇区*512


整颗磁碟的第一个磁区特别的重要,因为他记录了整颗磁碟的重要资讯! 磁碟的第一个磁区主要记录了两个重要的资讯,分别是:

  • 主要启动记录区(Master Boot Record, MBR):可以安装启动管理程序的地方,有446 bytes
  • 分割表(partition table):记录整颗硬盘分割的状态,有64 bytes

        MBR是很重要的,因为当系统在启动的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且该如何进行启动。 如果你要安装多重启动的系统,MBR这个区块的管理就非常非常的重要了! 一旦MBR物理实体损坏时,则该硬盘就差不多报废了

       分割表(partition table) 第二部分有64个字节,用于存放磁盘分区表.其中,每个分区的信息需要用16个字节来记录。因此,一个硬盘最多可以有4个分区,这4个分区称之为主分区扩展分区(extended)。

         扩展分区中可以继续划分逻辑分区。

注:通常所说的"硬盘分区"就是指修改磁盘分区表,它定义了"第n个磁盘块是从第x个柱面到第y个柱面".因此,当系统要读取第n个磁盘块时,就是去读硬盘上第x个柱面到第y个柱面的信息。
由于扩展分区只能有一个,所以这4个分区可以是4个主分区或者3个主分区加1个扩展分区,如下所示:
P + P + P + P
P + P + P + E

       扩展分区的目的是使用额外的磁区来记录分割资讯,扩展分区本身并不能被拿来格式化。 然后我们可以透过扩展分配所指向的那个区块继续作分割的记录。
       在linux中  
hda1到 hda4四个号码都是保留给Primary或Extended用的, 所以逻辑分割槽的装置名称号码就由5号开始了。


主要分割、扩展分配与逻辑分割的特性简单定义:

  • 主分区与扩展分区最多可以有四个(硬盘的限制)
  • 扩展分区最多只能有一个(操作系统的限制)
  • 逻辑分区是由扩展分区持续切割出来的分区;
  • 能够被格式化后,作为数据存取的分区为主分区与逻辑分区。扩展分区无法格式化;
  • 逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号), SATA硬盘则有11个逻辑分割(5号到15号)。



1.Linux磁盘分区格式说明

     linux分区不同于windows,

        各种接口的磁盘在Linux中的文件名分别为:

  • /dev/sd[a-p][1-15]:为SCSI, SATA, U盘, Flash闪盘等接口的磁盘文件名;
  • /dev/hd[a-d][1-63]:为 IDE 接口的磁盘文件名;

      安装Linux时,默认分为三个区,分别是/boot分区、/根分区和swap分区.这三个分区分别对应的盘符是hda1、hda2、hda3
     linux下硬盘设备名为
    IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个。
     SCSI,SATA,USB硬盘为sdx(x为a—z),硬盘主分区最多为4个,主分区从sdb1开始到sdb4,逻辑分区从sdb5开始,      (逻辑分区永远从sdb5开始…)设备名可以使用fdisk –l查看


  • df:列出文件系统的整体磁盘使用量;
  • du:评估文件系统的磁盘使用量(常用在推估目录所占容量)


  • df
[root@www ~]# df  [-ahikHTm]  [目录或文件名]
选项与参数:
-a  :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k  :以 KBytes 的容量显示各文件系统;
-m  :以 MBytes 的容量显示各文件系统;
-h  :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;(human read)
-H  :以 M=1000K 取代 M=1024K 的进位方式;
-T  :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i  :不用硬盘容量,而以 inode 的数量来显示

范例一:将系统内所有的 filesystem 列出来!
[root@www ~]# df
Filesystem      1K-blocks      Used Available Use% Mounted on
/dev/hdc2         9920624   3823112   5585444  41% /
/dev/hdc3         4956316    141376   4559108   4% /home
/dev/hdc1          101086     11126     84741  12% /boot
tmpfs              371332         0    371332   0% /dev/shm
# 在 Linux 底下如果 df 没有加任何选项,那么默认会将系统内所有的 
# (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
# 至于那个 /dev/shm 是与内存有关的挂载,先不要理他!

范例二:将容量结果以易读的容量格式显示出来
[root@www ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm
# 不同于范例一,这里会以 G/M 等容量格式显示出来,比较容易看啦!

范例三:将系统内的所有特殊文件格式及名称都列出来
[root@www ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs
# 系统里面其实还有很多特殊的文件系统存在的。那些比较特殊的文件系统几乎
# 都是在内存当中,例如 /proc 这个挂载点。因此,这些特殊的文件系统
# 都不会占据硬盘空间喔! 

范例四:将 /etc 底下的可用的磁盘容量以易读的容量格式显示
[root@www ~]# df -h /etc
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
# 这个范例比较有趣一点啦,在 df 后面加上目录或者是文件时, df
# 会自动的分析该目录或文件所在的 partition ,并将该 partition 的容量显示出来,
# 所以,您就可以知道某个目录底下还有多少容量可以使用了! ^_^

范例五:将目前各个 partition 当中可用的 inode 数量列出
[root@www ~]# df -ih 
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/hdc2               2.5M    147K    2.3M    6% /
/dev/hdc3               1.3M      46    1.3M    1% /home
/dev/hdc1                26K      34     26K    1% /boot
tmpfs                    91K       1     91K    1% /dev/shm
# 这个范例则主要列出可用的 inode 剩余量与总容量。分析一下与范例一的关系,
# 你可以清楚的发现到,通常 inode 的数量剩余都比 block 还要多呢

先来说明一下范例一所输出的结果信息为:

  • Filesystem:代表该文件系统是在哪个 partition ,所以列出装置名称;
  • 1k-blocks:说明底下的数字单位是 1KB 呦!可利用 -h 或 -m 来改变容量;
  • Used:顾名思义,就是使用掉的硬盘空间啦!
  • Available:也就是剩下的磁盘空间大小;
  • Use%:就是磁盘的使用率啦!如果使用率高达 90% 以上时, 最好需要注意一下了,免得容量不足造成系统问题喔!(例如最容易被灌爆的 /var/spool/mail 这个放置邮件的磁盘)
  • Mounted on:就是磁盘挂载的目录所在啦!(挂载点啦!)
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值