做程序员也两年多了,有些基础的东东,不碰了就很容易忘记。五一有时间,就看了一下Linux下相关的硬盘管理的资料,下面很多资料都是出自 http://linux-vbird.bluedata.org,( 的确是一个好网站啊!)
首先看看几个概念, 磁道,扇区,
http://baike.baidu.com/view/201129.htm 写道
磁盘的每一面被分为很多条磁道,即表面上的一些同心圆,越接近中心,圆就越小。而每一个磁道又按512个字节为单位划分为等分,叫做扇区,在一些硬盘的参数列表上你可以看到描述每个磁道的扇区数的参数,它通常用一个范围标识,例如373~746,这标识,最外圈的磁道有746个扇区,而最里面的磁道有373个扇区,因此可以算出来,磁道的容量分别是从382KB到191KB。
再来看看Linux是怎样划分硬盘的
http://linux-vbird.bluedata.org/linux_base/0220filemanager.htm 写道
好了,知道了大体的硬盘构造之后,再来谈一谈怎么硬盘分割( partition )呢?我们在进行硬盘分割的时候,最小都是以磁柱为单位进行分割的,那么分割完成之后自然就是格式化( format )啰,在 Linux 里面我们在进行格式化的时候必须要考虑到 Block 与 inode 的信息,这个 block 还好理解,他是我们磁盘可以记录的最小单位,是由数个 sector 所组成的,所以他的大小通常为 n*512 bytes ,例如 4K 。那么 inode 是什么? Block 是记录『档案内容数据』的地区,而 inode 则是记录『该档案的属性、及该档案放置在哪一个 Block 之内』的信息!所以,每个档案都会占用到至少一个 inode 。而当我们 Linux 系统要找到这个档案时,他会先去搜寻 inode table 找到这个档案的属性及数据放置的地区,然后再到数据去找到数据存放的 Block 进而将数据取出利用。这个 inode 数目在一开始就会被设定好,他的设定方式通常是利用 ( 硬盘大小 / 一个容量 ),这个容量至少应该比 Block 要大一些较佳,例如刚刚的 Block 订为 4K ,那么 inode 可以订为 8K 左右。所以,一颗 1GB 的硬盘,如果以 8K 来规划他的 inode 数时,他的 inode 就会有 131072 个 inode 啦!而一个 inode 的大小为 128 bytes 这么大!这么一来的话,我们就可以清楚的知道了,那就是一个 partition 格式化为一个 filesystem 之后,基本上,他一定会有 inode table 与 data area 两个区块,一个用来记录档案的信息与该档案放置的 block 区块,一个用来记录档案的内容!
由于我们 Linux 在读取数据的时候,是先查询 inode table 以得到数据是放在那个 Block 里面,然后再去该 Block 里面读取真正的数据内容!然后,那个 block 是我们在格式化硬盘的时候规定出来的一个值,这个 block 是由 2 的 n 次方个 sector 所集结而成的!所以,他是 0.5K 的倍数喔!假设我们 block 规划为 4KBytes 好了,那么由于一个 inode 与一个 block 最多均只纪录一个档案,所以,哈哈!如果你的一个档案有 0.1 K bytes 这么大时,你要晓得的是,由于你的 block 为 4K bytes ,因此,你就会有 3.9 Kbytes 的空间『浪费掉』喔!所以,当你在格式化硬盘的时候,请千万注意到你的系统未来的使用方向喔!
当 block 越小 ( 最小为 0.5K ) 、inodes 越多,可利用空间越多,但是大档案写入效率较差:适合档案数量多但是档案容量小的系统,例如 BBS 或者新闻群组 news 这方面的服务之系统;
当 block 越大 ( 最大可到 16 * 0.5K 以上 ) 、 inodes 数越少,大档案写入效率较佳,但浪费的空间较多:适合档案容量大的系统。
关于Hard Link和Symbolic Link
http://linux-vbird.bluedata.org/linux_base/0220filemanager.htm 写道
Hard Links:
刚刚说过,当系统要读取某一个档案的时候,就会先去读 inode table ,然后再根据 inode 的信息到 block area 去将数据取出来利用!而 hard link 就是直接再建立一个 inode 连结到档案放置的 block 区块。也就是说,进行 hard link 的时候,实际上,你的档案内容不会改变,只是你在查询的时候,利用原来的 inode 与后来的 inode 均可被指定到该档案放置的地点,因此两个档案的内容会是一样的!所以读取任何一个 inode 的结果都是存取在同一个档案的内容就是了。不过,这样一来就有个问题啦,因为 inode 是会连结到 block 区域去的,而『目录』本身仅消耗 inode 而已,那么一来的话, hard link 不就不能 link 目录啦?对的!没错! Hard link 有两个最大的限制:
不能跨 filesystem ,因为不同的 filesystem 有不同的 inode table 嘛!
不能 link 目录!
Symbolic Links:
相对于 hard link , Symbolic link 可就好理解多了,基本上,他就是在建立一个独立的档案,而这个档案会让数据读取指向他 link 的那个档案内容!由于只是利用档案来做为指向的动作,所以,当来源档被删除之后,symbolic link 的档案会『开不了』,会一直说『无法开启某档案!』
分享到:
相关推荐
它的基本组成部分包括磁道、扇区、柱面和磁头数。这些部分共同决定了硬盘的存储能力和数据组织方式。 - **磁道(Track)**:磁道是指硬盘盘面上以盘片中心为圆心的不同半径的同心圆。磁道的数量取决于硬盘的设计和...
硬盘结构原理磁道、扇区和柱面图示 硬盘结构原理磁道、扇区和柱面图示是计算机存储设备的核心组件。硬盘由多个盘片组成,每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可...
【大容量存储器结构——磁道、扇区、柱面和磁头数】 在计算机存储系统中,大容量存储器通常指的是硬盘驱动器,它在现代计算机中扮演着次要存储的主要角色。硬盘由一系列涂有磁性介质的坚硬金属盘片组成,不同容量的...
MBR 位于硬盘的0磁道0柱面1扇区中,其中446字节属于硬盘主引导程序,64字节属于硬盘分区表(DPT),两个字节(55AA)属于分区结束标志。如果0磁道遭到破坏,将使硬盘的主引导程序和分区表信息遭到严重破坏,从而导致...
17\H0SE63 第17章的17.2 H0SE63.EXE 显示0磁道扇区数据(汉显) 18\EARSE 第18章的18.2 EARSE.EXE 扩展读扇区数据(汇编) 19\EAWSE 第19章 EAWSE.EXE 扩展写扇区数据(汇编) 20\RSECTOR 第20章的20.1-20.3 RSECTOR.EXE C...
为了解决这些问题,硬盘制造商设计了一种机制,即“重新映射的扇区事件计数”(Remapped Sector Count),用于监控和管理硬盘内部的故障扇区。 #### 重新映射的扇区事件计数详解 1. **定义**: - “重新映射的...
在实际应用中,VB程序会先调用`CreateFile`打开磁盘,然后使用`DeviceIoControl`指定读写操作和扇区位置。`ReadFile`和`WriteFile`则用于传输数据。最后,使用`CloseHandle`关闭设备,确保资源得到正确释放。 了解...
在硬盘0磁道损坏后的补救是指在硬盘的0磁道出现故障或损坏时,采取的一些修复和维修方法,以恢复硬盘的正常工作状态。硬盘的0磁道是一个非常重要的位置,是硬盘的主引导记录区(MBR)的所在位置,存放着硬盘的主引导...
扇区通常由一个或多个物理磁道上的一个位置组成,而磁道又构成磁盘的柱面。 2. **数据比较**:扇区数据比较是指对比两个或更多存储设备在同一扇区位置的数据是否一致。这有助于检测硬盘错误、病毒感染、数据损坏等...
扇区是硬盘上最小的数据读写单位,每个扇区都有一个唯一的编号,这个编号结合磁头号和磁道号形成了硬盘的逻辑区块地址(LBA)。 在DELPHI中,实现硬盘物理扇区的读写通常需要以下步骤: 1. **驱动程序接口**:首先...
每个硬盘都由无数个扇区组成,它们按照特定的顺序排列,形成我们所熟知的磁道和簇。当硬盘扇区发生损坏时,可能会导致数据丢失、系统运行缓慢或无法正常启动。然而,不必过于担忧,因为存在专门的工具和方法来应对...
O磁道,也称为“零磁道”,是硬盘上最外圈的磁道,通常包含硬盘的引导扇区、分区表等关键信息。这些信息对于硬盘的正常工作至关重要。当O磁道发生损坏时,可能导致硬盘无法正确读取或写入数据,从而影响计算机的启动...
4. **扇区号**:每个磁道上的数据被划分为若干个扇区,按顺序编号。 在VC++中,我们可以使用Windows API函数来实现扇区读写。以下是一些常用的API函数: - `CreateFile`:打开或创建一个文件或设备,包括磁盘扇区...
磁道进一步划分为若干个扇区,每个扇区包含一组固定数量的数据。当我们在硬盘上保存或读取文件时,操作系统会处理这些扇区级别的交互,但有时我们需要直接操作扇区,例如进行磁盘克隆、数据恢复或系统备份。 “ISO...
CHS 和 LBA 是两种不同的扇区定位方法,CHS 方法使用柱面/磁头/扇区三个参数,而 LBA 方法使用一个唯一的扇区编号。两种方法可以相互转换,例如硬盘上的第一个扇区用 C/H/S 表示是 0/0/1,0 柱面 0 磁头 1 扇区,用 ...
无论是日常的数据存储,还是专业的系统维护,都需要对磁盘的物理信息和扇区数据有深入的理解。本文将详细解析一款名为“磁盘信息及扇区数据显示工具”的实用软件,该工具能帮助用户直观地查看硬盘的物理属性,并且...
3. **扇区地址表示**:磁盘上的数据是以扇区为单位存储的,扇区的地址通常由磁道号、扇区号和柱面号组成。在易语言中,我们需要将这些信息转换成操作系统能识别的格式。 4. **数据缓冲区**:在写扇区之前,需要先...
BOOT扇区位于硬盘的0磁道0柱面1扇区,是硬盘上的第一扇区,也是最早被读取的扇区。它的主要功能是加载并执行存储在其中的启动程序,这个程序通常为操作系统的引导加载器(如MBR的Boot Loader或GPT的EFI Boot Loader...