zoukankan      html  css  js  c++  java
  • <实训|第十天>从底层解释一下U盘内存为什么变小的原因附数据恢复的基本原理

    [root@localhost~]#序言
        我们平时不论是买一个U盘硬盘,或者自己在电脑上创建一个分区,大小总是比我们创建的要小一点,有些人会说,这个正常啊,是因为厂家规定的1M=1000k,真正的是1M=1024k,要是这样,我这篇文章就不用写了。厂家的规格可能是一部分原因,不过我现在是以U盘硬盘,或者分区的底层来分析这个问题。


    开班第十天:

    [root@localhost~]#今天的课程大纲:
    1. 真正了解文件系统
    2. 分析U盘变小了的原因
    3. 如何选择date block大小
    4. 软链接,硬链接
    5. 数据恢复的原理

    详细讲解:

    [root@localhost~]#真正了解文件系统


      linux中叫创建文件系统,windows中习惯称呼为格式化,filesystem一种管理文件的方式,我们平时在linux中挂载本质上挂载的是文件系统。一个文件系统包括了inode block和date block,分别为索引节点块和数据块,这是在mkfs创建文件系统的时候就已经生成了。下面我用一张我手画的图来模拟一个分区的构成,不好看,大家不要介意。(实在看不清的就留言,单独给你发)
      
      再解释一下上面图,dir是一个目录索引表,这里假设我要执行cat a.txt文件,我怎么知道a.txt文件里的内容,这里我们先找到dir中a.txt对应inum是1,然后再在file中找到inum=1所对应的文件,可以看到block对应的是<10,11,12>,而在date block中是没有inum的,我写上为了方便理解,我们找到了<10,11,12>,那么我们就从date block中读取出数据,然后返回给cat,这样我们就能读取到a.txt文件内容了。
    [root@localhost~]#分析U盘变小了的原因

      看懂了上面的图,现在就很容易理解U盘,分区变小的原因了。在inode中,dir的一条记录占用一个inode,file中一条记录占用了一个inode,而且file中的一条记录还记录了这个文件的拥有者,所属组和属性等信息。这一部分总占用的资源就是我们U盘,分区少的那一部分,所以我们分区创建好之后,会变小,就是这个原因。

    [root@localhost~]#如何选择date block大小

     今天我闲的无聊用英文写了这个问题的解答,只过了四级,所以语法很多问题,不过搞IT嘛,能看懂就行,哈哈!

    every date block has regular size:

      if regular size is small,the inode will occupation(占用) to much space,the rest for date block will decrease( 减少).

      if regular size is large,some small document can't occupation full of a date block,the bad things :much space will be waste.

    so choose the right date block regular size is decide to you requirement.

     
      我想表达的大概意思就是,每一个文件系统我们都可以规定date block的默认大小。如果太小,那么inode就会占用太多的资源,那么留给date block就会变少,那么我们看到的分区就比现在还要小;如果太大,那么一些小文件可能占用不完一个block,而使用了一个block,那么很多的空间就会被浪费。所以选择一个合适的date block大小取决于你的需求。
    [root@localhost~]#软链接,硬链接

     我们知道,在用ls -l查看文件权限的时候,第一位可能是 -,d,l,-代表的是普通文件,d代表目录,l代表链接文件。其实这样的属性还有很多个。今天来讲一下链接文件。
     软链接做个比喻,其实就像windows中的快捷方式。如何来创建链接呢?
     1.软链接:ln -s a.txt b.txt,b.txt是本来不存在的,现在b.txt就是a.txt的一个快捷方式。
     
     2.硬链接:ln a.txt b.txt,表示硬链接,a.txt和b.txt互相为对方的硬链接。
     这里说一下软硬链接的性质:
     1.不能跨文件系统创建硬链接,因为不同的文件系统可能有相同的inode。
     2.不能做目录的硬链接。
     3.硬链接,删除其中一个硬链接,另外一个可以读取,软链接删除源文件,不能读取了。
     4.两个硬链接都被删除,该inode会被重新分配。  
     5.软链接会占用磁盘空间,硬链接不会占用磁盘空间。
     
    硬链接其实就是指向同一文件且inum相同的两条inode,所以他们都会占用一条inode。
    [root@localhost~]#数据恢复的原理

      我们知道,删除一个文件只是删除了这个文件的inode,而指向的date block却没有被删除,所以我们可以再次通过已知的inode值来找到date block,从而重新读取出里面的数据。但是我们常见的数据恢复软件都会友情提示,数据误删除之后,都不要再继续进行读写磁盘,因为可能重新写的数据会占用了你之前删除的inode,date block也会被占用,那么即时你找回了,要不是原来的数据了。

     总结:

    [root@lcoalhost~]#来自爱家人爱老婆的IT男:
        好好揣摩一下文件系统的结构,这对我们今后走运维这条路很有帮助的,希望大家都能够越走越远,越走越顺利!
    
    博客园:爱家人爱老婆的IT男
    QQ群:145252709,我会上传资源,同时会有很多大神跟你们讨论学习分享 
    微信公众号:程序猿的野生香蕉【获取文章中出现的工具】
    博客园:爱家人爱老婆的IT男 QQ群:145252709,我会上传资源,同时会有很多大神跟你们讨论学习分享 微信公众号:程序猿的野生香蕉【获取文章中出现的工具】
  • 相关阅读:
    剑指offer 51.构建乘积数组
    剑指offer 50.数组中重复的数字
    股票价格涨跌预测—基于KNN分类器
    R语言-神经网络包RSNNS
    基于客户保持率的人口特性分析
    车辆碰撞位置间的关联性分析
    统计学的七大支柱[转载@谢益辉]
    AutoDesK演示项目部署
    自定义数字键盘组件化方案
    2020年大前端发展趋势
  • 原文地址:https://www.cnblogs.com/bokeyuanlibin/p/5728917.html
Copyright © 2011-2022 走看看