Linux 磁盘划分

Linux 磁盘分区

磁道 : 当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道

扇区 : 磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,每个扇区可以存放512个字节的信息,磁盘驱动器在向磁盘读取和写入数据时,要以扇区为单位

磁柱( 柱面 ) : 盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。

 硬盘是以 sectors(扇区), cylinder(磁柱), partitions(分割槽) 这些东西来作为储存的单位,而最底层的实体硬盘单位就是 sectors 了,通常一个 sector 大约是 512 bytes 左右。不过,在磁盘进行格式化的时候,可以将数个 sector 格式化成为一个逻辑扇区(logical block),通称为 block。blocks 为一个档案系统(filesystem)存取的最小量。所谓硬盘的CHS,即Cylinder(柱面)、Head(磁头)、  Sector(扇区),只要知道了硬盘的CHS的数目,即可确定硬盘的容量,硬盘的容量=柱面数×磁头数×扇区数×512B。 ( 扇区数是一个磁道上含有的扇区数, 扇区数*512b = 1个磁道的存储容量, 1个磁道的存储容量 * 柱面数 = 一个磁盘的容量 ( 一个柱面数就等于一个盘面上的磁道数量 ) , 一个磁盘容量 * 磁头数 = 总容量, 因为 磁头数就等于盘片数 ). 磁柱是分割槽的最小单位 .

 那么 partition 是什么?简单的来说,你知道你的 Windows 有所谓的 C:, D: 是吧!其实他们是同一颗硬盘,只是利用『磁盘分割表』(partition table)来将实体的硬盘规划出不同的区块。

Linux 分区格式化

每种操作系统所设定的文件属性/权限并不相同, 为了存放这些档案的所需数据, 因此需要进行格式化, 以便成为操作系统能够利用的文件系统格式 ( file system ).

  linux 文件系统存放 : 权限属性等存放在 inode中 , 实际数据存储在 data block中 , 还有一个超级区块 ( super block ) 会记录整个文件系统的整体信息, 包括 inode与block总量等.

  每个 inode , block 都有编号 , supperblock 记录了 file system的整体信息, 包括 inode/block 总数量, 使用量, 剩余量, 以及文件系统格式及相关信息.

  inode : 记录档案的属性, 一个档案占用一个 inode, 同时记录此档案的数据所在的 block 号码.

  block : 实际存储档案内容, 如果档案太大会占用多个 block .

  文件系统一开始就将inode与block规划好了,除非重新格式化(或利用resize2fs等指令变更文件系统大小),否则inode与block固定后就不会再变动 .

 

链接( 实体链接与符号链接)   

   hardlink ( 实体链接 ) : 透过文件系统的 inode 链接来产生新档名, 而不是新档案 . ( 多个档名对应到一个 inode 中 )    

   ln Makefile ../asdf ( 建立一个 asdf ,这个 asdf 是新的档名,但是它跟 Makefile 是同一个 inode.

   hardlink 好处 : 安全, 如果你不小心删除了1个档名,其实该档案的 inode与 block还是存在的,此时你可以通过另一个档名来读取档案。

   hardlink 限制 : 不能跨 Filesystem , 不能 link 目录 ( 不能LINK目录原因是, 目录下的每个子目录都有父目录的档名 ../ , 所以在link父目录的同时, 必须link每个子目录,这样很麻烦, 所以不能link 目录 ) , 直观理解是,如果允许硬链接指向目录,假设目录.../d1/...与.../d2/...互为硬链接,那么在d1下必然包含目录项“..”,试问这个“..”应该指向d1还是d2 .

   symbolic link 符号连接 : 即 windows 中的快捷方式 . 实际上就是建立一个独立的档案, 这个档案让数据的读取指向他link的那个档案的档名。从ls命令中也可以看出, 因为有个 -> 箭头符号. ( 这两个档名使用的是不同的 inode号码 ) , 注意此处指向的是那个真正的档名, 而这个真正的档名如果被删除了, 那么这个"快捷方式"也就不好使了.

ln -s Makefile ../asdf ( 建立一个符号连接, asdf 是 Makefile 的快捷方式 )

ln [-sf] 来源文件 目标文件

-s : 符号连接

-f : 如果目标文件存在时,就主动的将目标文件直接移除后再建立

其中,符号链接一定要注意,要给出完成路径,否则,会失效。 ln -s /tmp/c_practice/Makefile /tmp/asdf 没问题, 而如果是 ln -s Makefile /tmp/asdf 就废了。

Linux装置代号

 IDE 硬盘:/dev/hd[a-d]
CDROM:/dev/cdrom
打印机:/dev/lp[0-2]
软盘机:/dev/fd[0-1]
网络卡:/dev/eth[0-n]

linux 细节总结

假设你的硬盘总共有 1024 个 cylinder (利用 blocks 结合而成的硬盘计算单位), 那么你在这块硬盘的文件头地方 (就是磁盘分割表,可以想成要读取一块硬盘时最先读取的地方)如果写入你的 partitions 共有两块,一块是 primary 一块是 extended ,而且 extended 也只规划成一个logical ,那么你的硬盘就是只有两个槽啦(对于系统来说,真正能使用的有 Primary 与 Logical 的扇区, Extended 并无法直接使用的!需要再加以规划成为 Logical 才行! ) ,而且在 partition table 也会记录 primary 是由『第 n1 个 cylinder 到第 n2 个 cylinder 』,所以啰,这样子一来,当系统要去读取 primary (就是 c 槽)的时后,就只会在!n1~n2 之间的实体硬盘当中活动啰!

 

 http://blog.csdn.net/moveofgod/article/details/7389493

http://bbs.mydigit.cn/read.php?tid=331754

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值