因此,当我们读取一个文件时,实际上是在目录中找到了这个文件的inode编号,然后根据inode的指针,把数据块组合起来,放入内存供进一步的处理。当我们创建一个文件时,是分配一个空白 inode 给该文件,将其 inode 编号记入该文件所属的目录,然后选取空白的数据块,让 inode 的指针指向这些数据块,并放入内存中的数据。
1.2 磁盘的读写原理
系统将文件存储到磁盘上时,按柱面、磁头、扇区的方式进行,即最先是第1磁道的第一磁头下(也就是第1盘面的第一磁道)的所有扇区,然后,是同一柱面的下一磁头,……,一个柱面存储满后就推进到下一个柱面,直到把文件内容全部写入磁盘。
255盘面 * 3263柱面 * 63扇区 * 每个扇区512bytes = 26839088640byte。
用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开、读取、写和关闭)提供用户接口。系统调用接口的作用就像是交换器,它将系统调用从用户空间发送到内核空间中的适当端点。在硬盘系 统中,硬盘的每一个盘片都有两个盘面(Side),即上、下盘面,一般每个盘面都会利 用,都可以存储数据。盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。
磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区。操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。
大硬盘搜索范围大,效率低
2. Linux 下磁盘命名和分区
在为主机添加硬盘前,首先要了解Linux系统下对硬盘和分区的命名方法。
在 linux 中可以使用 fdisk -l 查看一个磁盘的物理结构:
磁盘配额只能对分区做设定
磁头(Head)
mkfs.ext3 /dev/sdb1 //格式化分区成 ext3
2.1 磁盘命名
在Linux下对 SCSI 和 SATA 设备是以 sd 命名的,第一个 scsi 设备是 sda,第二个是 sdb,依此类推。一般主板上有两个SCSI接口,因此一共可以安装四个SCSI设备。主 SCSI 上的两个设备分别对应 sda 和 sdb,第二个 SCSI 口上的两个设备对应 sdc 和 sdd。一般硬盘安装在主 SCSI 的主接口上,所以是 sda 或者 sdb,而光驱一般安装在第二个SCSI的主接口上,所以是 sdc。(IDE接口设备是用 hd 命名的,第一个设备是hda,第二个是hdb,依此类推。)
3.5.7 IBM JFS 文件系统
IBM 的 Journaled File System (JFS),目前用于 IBM 企业服务器,专为高吞吐量服务器环境而设计。它可用于 Linux,包含在几个发行版中。要创建 JFS 文件系统,使用 mkfs.jfs 命令。
文件是文件系统对数据的分割单元。文件系统用目录来组织文件,赋予文件以上下分级的结构。在硬盘上实现这一分级结构的关键,是使用 inode 来虚拟普通文件和目录文件对象。在Linux系统中,目录也是一种文件。所以/home/sammy 是指向目录文件 sammy 的绝对路径。
具体步骤:
/dev/hdd 2nd (Secondary) IDE controller Slave
磁盘与文件系统:
3.5.4 ext4 文件系统
ext4 是作为 ext3 的扩展来启动的,它通过增加存储限制和提高性能来满足更大文件系统的需求。为了保留 ext3 的稳定性,在2006 年 6 月,该扩展被拆分成一个新的文件系统,即 ext4。ext4 文件系统在 2008 年 12 月正式发布,包含在 2.6.28 内核中。
1.1 物理结构
硬盘的物理结构一般由磁头与碟片、电动机、主控芯片与排线等部件组成;当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁头悬浮在碟面上画出一个与碟片同心的圆形轨道(磁轨或称柱面),这时由磁头的磁感线圈感应碟面上的磁性与使用硬盘厂商指定的读取时间或数据间隔定位扇区,从而得到该扇区的数据内容。所有的盘片都固定在一个旋转轴上,这个轴即盘片主轴。而所有盘片之间是绝对平行的,在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离比头发 丝的直径还小。所有的磁头连在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向动作,而盘片以每分钟数千转到上万转的速度在高 速旋转,这样磁头就能对盘片上的指定位置进行数据的读写操作。
从物理介质读文件的具体过程:
3.5.2 ext2 文件系统 (责任编辑:武汉三度艺术机构)