• Linux——文件系统inode与软硬链接


    目录

    一.inode

    (一).背景知识

    (二).inode

     二.软硬链接

    (一).软链接

    (二).硬链接


    一.inode

    (一).背景知识

    我们知道,磁盘是按磁道与扇区划分。Linux把一个磁盘进行了分区处理(一般为4个区)。

    进行分区处理有很多优点,比如利于管理,当某个分区损坏但不会影响整个磁盘。

    每个分区里又划分成多个块组(block groups)和启动块(boot block)。

    启动块用于存放该块组信息以及数据恢复。

    一个块组里又由不同性质的块组成。

    块属性
    super block存放整个文件系统的信息,比如分区中每个块的大小、硬盘分区上一共有多少个块组、以及每个块组中有多少个inode
    CDT块组描述符,里面有指针会指向该块组的inode table、block bitmap和inode bitmap。
    block bitmap用于在data blocks中找block,按位图的方式寻找
    inode bitmap用于在inode group中找inode,按位图的方式寻找
    inode group存放多个inode结构体
    block group存放多个块(block),块中存放的才是文件数据,一个块是4KB

    (二).inode

    inode本质是一个结构体,用于存放一个文件的相关信息。

    一个文件往往由多个块组成,但一个文件只有一个inode。

    一个inode结构体内部记录了文件的大小、信息、该文件包含的所有块的编号等。

    当删除文件时,只需要把对应的bitmap置0,同时把inode映射取消即可。

    恢复文件时,找到原inode以及对应bitmap置1。

    格式化时,并没有删除inode与block table内容,只是把映射取消,因为inode与block可以覆盖。

    值得注意的是,虽然一个文件只能有一个inode,但是一个inode可以对应多个文件名(这些文件本质是同一个文件,因为对应inode相同也就是使用的块相同)。同时inode中会记录映射的文件名数量(引用计数方式),当数量为0时才会真正删除文件信息。

     二.软硬链接

    (一).软链接

    ln -s 路径+文件名 软链接名 

    软链接可以类比windows快捷方式。

    当删除时不会删除文件本体。

    本质是因为软链接是一个新的文件,与目标文件不是同一个inode。

    (二).硬链接

    ln 路径+文件名 硬链接名 

    硬链接删除时也不会删除相关文件,但是硬链接与目标文件是同一个文件。

    因为inode与目标文件相同,只是在inode映射的文件名数量上加一。


    如有错误,敬请斧正

  • 相关阅读:
    docker 搭建 redis 集群
    HPC系统简介
    C++list模拟实现
    dji uav建图导航系列()move_base
    Spinnaker调用Jenkins API 返回403错误
    基于servlet+jsp+mysql网上书店系统
    ImportError: cannot import name 'SQLAlchemy' from 'flask_sqlalchemy' (unknown location)
    LVS-NAT模式部署
    软件测试之【单元测试、系统测试、集成测试】
    “蔚来杯“2022牛客暑期多校训练营7 JK题解
  • 原文地址:https://blog.csdn.net/weixin_61857742/article/details/128060428