博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[svc]linux的inode和block-软硬链接
阅读量:6609 次
发布时间:2019-06-24

本文共 1470 字,大约阅读时间需要 4 分钟。

磁盘结构 容量

  • 磁盘结构
    9e792b8fgy1fmg4iou3cuj20ju0igtkd.jpg

9e792b8fgy1fmg4jgo7jjj20gr09qwix.jpg

磁盘容量 = 一个柱面大小柱面的总数 = 磁头数量每个磁道上的扇区数一个扇区大小柱面总数

存储容量=磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

了解-什么是CHS(cylinder head sector)

磁盘存储最小单位是sector,那么如何对sector进行定位?CHS是早期在IBM PC架构上面用来进行磁盘寻址的办法。CHS是一个三元组,组成如下:1.      一共24个 bit位。2.      其中前10位表示cylinder,中间8位表示head,后面6位表示sector。3.      最大寻址空间

9e792b8fgy1fmg4phykahj20cx0cg3yt.jpg

9e792b8fgy1fmg4pzef7aj20ri0d70wj.jpg

linux磁盘容量计算

9e792b8fgy1fmg4u2a7wqj20jh064abl.jpg

9e792b8fgy1fmg4uvmrhoj20p90cvgt1.jpg

9e792b8fgy1fmg5ezx0yhj20la0fv75p.jpg

磁盘的inode和block

参考:

这个文章说的很清楚

9e792b8fgy1fmg4y0s6shj20lp0fedn6.jpg

每个目录下有 . 和.. 两个目录- 这里比较有意思

. 代表当前目录 算上目录本身,因此他的inode是2.

.. 上一级目录

这里顺便说一下目录文件的"链接数"。创建目录时,默认会生成两个目录项:"."和".."。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。所以,任何一个目录的"硬链接"总数,总是等于2加上它的子目录总数(含隐藏目录)。

除了硬链接以外,还有一种特殊情况。

文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。
这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。
参考:

硬连接类似引用数据类型,js的原型,所有对象共享

软链接 硬链接

快速理解inode和硬链接

  • 文件夹不能手动创建硬链接(系统自动维护)
  • 文件夹的硬链接默认是2,里面多一个文件夹则硬链接 加1. 里面多一个文件,对文件夹的硬链接数无影响
  • 文件的硬链接默认是1, 可以通过ln -s来手动创建维护
  • 多个文件名可以指向同一个inode号, 这就是硬链接

下面是inode和硬链接最佳图解

806469-20180225191017726-1697113439.png

小结

9e792b8fgy1fmg537krduj20il0dlq4b.jpg

1,磁盘分区格式化文件系统后,会分为inode和block

2,inode存放文件的属性以及指向文件实体的指针,文件名不再inode里.一般商机目录的block
3,访问文件,通过文件-->inode-->blocks
4,inode一般情况默认大小256B block大小1 2 4k 默认是4k,引导分区除外
5,通过df -i 查看inode的数量及使用情况.dumpe2fs /dev/sda3查看inode及block的大小及数量
6,一个文件至少占用一个inode及一个block,单个文件可以占用同一个inode(硬链接)
7,一个block只能被一个文件使用,如果文件很小,block很大,剩余空间浪费,无法继续被其他文件使用
8,block不是越大越好,要根据业务的文件大小进行选择,一般默认4k
9,可以在格式化的时候改变inode和block的大小.

注意这里针对的是ext4的文件系统.

其他文件系统如overlay联合文件系统参考:

转载地址:http://naiso.baihongyu.com/

你可能感兴趣的文章
掌握多少门编程语言才能成为优秀程序员?
查看>>
Node.js之Stream双工流
查看>>
用迁云工具自建遗留系统镜像
查看>>
python爬虫js加密解密系列文章合集
查看>>
河南申请高新技术企业需要多少个专利?智为知识产权为您解答! ...
查看>>
怎样让GPS定位系统应用开发变得简单,选择底子很关键
查看>>
dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3.2整合(五)Spring中spring-data-redis的使用...
查看>>
局部区块多个报表 TAB 页切换及局部区块的参数查询
查看>>
「镁客早报」FDA试点项目将测试区块链,以遏制假药;努比亚折叠屏新品将亮相MWC2019...
查看>>
IDEA 插件开发入门教程
查看>>
纪念Galaxy系列10周年,三星推出了价值13310元的折叠屏手机
查看>>
体验云上快速搭建WordPress网站小记
查看>>
设计模式——代理模式
查看>>
加强市场拓展技术研发,企鹅科技获蚂蚁金服战略投资
查看>>
Java实现Redis发布订阅
查看>>
为云下IDC赋能-组建多可用区多地域的混合云(专线)最佳实践
查看>>
基于hi-nginx的web开发(python篇)——起步
查看>>
html5知识点补充—GeoLocation API位置感知
查看>>
kubernetes+docker监控之简介
查看>>
What is base..ctor(); in C#?
查看>>