Linux基础1之磁盘与分区

时间:2022-09-10 10:08:44

  Linux上面设备皆文件,目前需要知道的,比如U盘和SARA硬盘的在Linux上面的文件名,/dev/sd[a-p]。与IDE接口不同的是,SATA/USB接口的磁盘没有一定的顺序,这里就根据Linux内核检测到磁盘的顺序。

  比如PC上面有两个SATA磁盘和一个USB磁盘,而主板上面有六个SATA的插槽。这两个插槽安插在主板上的SATA1,SATA5上面,这三个磁盘在Linux中的设备文件名是什么?由于是使用检测到的顺序来决定设备文件名,并非与实际插槽代号有关,因此设备的文件名如下。SATA1插槽上的文件名是/dev/sda ,SATA5插槽上的文件名是/dev/sdb ,USB磁盘(开机完成后才被系统识别)的文件名是/dev/sdc。

  虽然磁盘是数据存储的地方,但是实际对于数据的写入是在盘片上面。盘片上面又可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大。磁盘的第一个扇区是非常重要的,主要记录了两个重要的信息,分别是主引导分区(Master Boot Record,MBR):可以安装引导加载程序的地方,有446bytes;分区表(partition table):记录整块磁盘分区的状态,有64bytes。MBR是非常重要的,因为当系统在开机的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里且该如何开启。如果你要安装多重引导的系统,MBR更加显得重要。分区表是什么呢?刚才拿到的整块磁盘就像一根原木,你必须在这根原木上面切割出你想要的区段,这个区段才能够再制作成为你想要的家具。如果没有进行切割,那么原木就不能被有效地利用。同样的道理,你必须要针对你的硬盘进行分区,这样硬盘才可以被使用、

  IDE接口分主从设备,依次abcd,一个IDE接口只能接两个设备。

  说起磁盘,里面的道道还是比较多得。下面精简介绍。磁盘,由具有磁性的盘片(由磁头对盘片加磁性?)还有一些机械装置组成(磁头、马达、固定装置等)。磁盘,说起盘,很容易想起圆圈。在磁盘的存储结构中,主要组成是磁道、柱面、扇区、磁头这几个关键词被提起,一般磁道和柱面是一个实物的两种不同观察方式表现。磁道,顾名思义,就是一圈圈的圆环,两个圆环之间的区域就是磁道。柱面是什么呢?这个是从空间、立体的结构来看的,一般磁盘并不只是一个盘片,经常有多个盘片和多个磁头组成,而且是重叠组合而成,跌在一起,于是在一个盘片上面的某个磁道的位置在其他盘片上得也是同样位置的地方,这样遍历整个磁盘的全部盘片,就组成了柱面,可以回忆高等数学上面的柱面的定义,直线绕着曲线旋转一圈所形成的曲面叫做柱面。扇区,从名字上来看,很容易想到,就是一把扇子嘛,但是这里要注意,并不是真正的普通的扇形,在磁盘上面的扇区,也是大扇形的面积减去小扇形的面积所形成的区域,这才叫扇区。其实一个扇区的数据区域一般是512字节,但是还有其它的控制信息还占据了一些存储位置。怎么计算磁盘的容量呢?磁盘容量 = 磁头数*磁道数*扇区数*每扇区字节数 ,磁头数就相当于有多少个盘片,磁道数相当于每个盘片上面被划分了多少个环形道道(其实这个道道就是磁头放在盘片上面,磁盘飞速旋转一圈就出现了,相邻磁道间并不是严格的相邻,毕竟磁头往外移动一点距离,可能这里磁头不是标准的矩形,或许是个球形等,所以也能避免磁性的影响,不会影响数据,磁盘需要避免磁场强的区域),每个环形道道上面,又被划分了多个扇区,扇区的弧连接在一起有360度就组成了一个磁道。每个扇区有512B。于是磁盘容量就出来了。

  说到这里,有时候经常会有疑惑,一般硬盘经常有一些参数,比如转速多少多少转,5400,7200,还有毕竟少见的用于企业服务器上面的15000转/s。回想高中的物理知识,角速度相等,那么由V = W(角速度)*R(半径),越是最外圈的磁道,磁头在这上面经过的速度越快,为了存储数据方便,一般固定将扇区数目固定为512byte,作为最外围的磁道,如果每个磁道上面的扇区数目相等,那就是相当于本来512个人在篮球场上面可以正常干活(比较内围的磁道),转移到512个人在足球场上面干活,有没有感觉一种极大的不公平,同时考虑磁头在每秒钟经过的扇区数目在外围磁道和里面磁道也是不一样的。工业界当然不允许这样的情况发生,于是出现了一些设计,clv,zclv等刻录技术,越是外围的磁道,扇区数目越多,而且扇区编号是从外围开始往内变大得,所以像MBR、DBR(dos boot record)等都是在磁盘的外围区域,有名的windows系统,C盘系统盘,那么C盘就是磁盘的最外围区域,作为操作系统的存储地方,当然保证较快的存取速度,大胆猜测下,越往里面增加,速度越慢,所以有时候需要经常进行下磁盘清理,把外围磁盘要充分利用完。

  上面还是没解决问题,为什么计算的时候为那么计算,因为简单方便。这里的扇区数其实是一个平均的扇区数,就是把外面的大的多的扇区数和里面的小得少得扇区数作了一个平均而给出的一个数目,方便计算。当然每扇区的字节数,还是尽量保证差不多大得面积,既占用空间小一点又能保证数据的完整性。

  0号磁头,0号磁道,1号扇区是给MBR的,这里是由主板来读取的,在DOS上面读取不到的。0号磁头,1号磁道,1号扇区是给DBR是由DOS来读取的。