Linux文件系统管理

认识EXT2文件系统

       Linux文件系统将权限与属性放置在inode中,实际数据放置在data block中,另外,还有一个超级块(superblock)记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。
        每个inode与block都有编号,这三个数据的意义如下:
  • super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
  • inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block的号码;
  • block:实际记录文件的内容,若文件太大,会占用多个block。
        inode的特色:
  • 每个inode大小均为128bytes;
  • 每个文件都会占用一个inode而已;
  • 承上,因此文件系统能够创建的文件数量与inode有关;
  • 系统读取文件时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够实际开始读取block的内容。
      The inode is a data structure on a filesystem on Linux and other Unix-like systems. Inode stores all the information about a file except its name and its actual data.
      What happens if inode full?
      Error: No space left on device. 
      Not able to restart any service or process.
      
      How to check inode usage?
   [root@vultr ~]# df -i
   Filesystem      Inodes  IUsed   IFree IUse% Mounted on
   devtmpfs        124251    329  123922    1% /dev
   tmpfs           126843      1  126842    1% /dev/shm
   tmpfs           126843    462  126381    1% /run
   tmpfs           126843     16  126827    1% /sys/fs/cgroup
   /dev/vda1      1600000 432179 1167821   28% /


在文件属性中查看

[root@ali-ecs mnt]# ls -li
total 102484
6 -rw-r--r-- 1 root root     75915 Jan  7 16:28 'AGC'$'\327\351\315\370''ʾ'$'\322\342''ͼ.docx'
7 -rw-r--r-- 1 root root      1733 Jan  7 16:28  alertmanager.yml
4 -rw-r--r-- 1 root root 104857600 Jan  4 23:23  loopdev
5 -rw-r--r-- 1 root root        16 Jan  7 16:28  welcome.html
⇑            ⇑
inum       有多少文件名连接到该Inode


inode的特殊作用

由于inode号码与文件名分离(文件名只与目录有关,但文件内容则与Inode有关),这种机制导致了一些Unix/Linux系统特有的现象。
  1. 有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用。
  2. 移动文件或重命名文件,只是改变文件名,不影响inode号码
  3. 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名。
例:通过Inode删除文件:
[root@361way ~]# find . -inum 271761664  -exec rm -i {} \;

rm:是否删除普通文件 "./–"?y
# find . -inum 271761664 -delete


评论

此博客中的热门博文

码率单位

Process vs. Thread

日志文件系统