Linux文件系统管理
认识EXT2文件系统
Linux文件系统将权限与属性放置在inode中,实际数据放置在data block中,另外,还有一个超级块(superblock)记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。每个inode与block都有编号,这三个数据的意义如下:
- super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
- inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block的号码;
- block:实际记录文件的内容,若文件太大,会占用多个block。
- 每个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% /
inum 有多少文件名连接到该Inode
1. 有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用。
2. 移动文件或重命名文件,只是改变文件名,不影响inode号码。
3. 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名。
例:通过Inode删除文件:
[root@361way ~]# find . -inum 271761664 -exec rm -i {} \;
rm:是否删除普通文件 "./–"?y
# find . -inum 271761664 -delete
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
评论
发表评论