linux系统中文件的特性,linux文件系统特性
1. 文件系統特性(索引式文件系統)
文件系統格式化后block group的組成部分:
super block:記錄文件系統整體信息,inode和data block的總量,使用量,剩余量,以及文件系統格式與相關信息,一般大小為1024bytes.
inode table:記錄文件的權限與屬性,一個文件占用一個inode,同時記錄此文件的數據所在的block號碼,每個inode默認固定大小為128bytes。
data block:記錄文件的實際內容,若文件太大,會占用多個block,ext2文件系統所支持的block大小有1k,2k,4k三種
filesystem description:描述了每個block group的開始于結束的block號碼
block bitmap:記錄了使用的和未使用的block號
inode bitmap:記錄了使用的和未使用的inode號
【N】文件系統格式化的過程會中就已經把inode與block規劃好了,以便操作系統識別使用,除非重新格式化,或者resize2f更新文件系統
[root@Darren ~]# dumpe2fs /dev/sda3
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:? ?
Last mounted on:? ? ? ? ? /
Filesystem UUID:? ? ? ? ? 7b6aa9b8-aa0d-4497-ac09-d423c035d50a
Filesystem magic number:? 0xEF53
Filesystem revision #:? ? 1 (dynamic)
Filesystem features:? ? ? has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:? ? ? ? ?signed_directory_hash
Default mount options:? ? user_xattr acl
Filesystem state:? ? ? ? ?clean
Errors behavior:? ? ? ? ? Continue
Filesystem OS type:? ? ? ?Linux
Inode count:? ? ? ? ? ? ? 479552 ? ? ? --inode總數
Block count:? ? ? ? ? ? ? 1914624 ? ? --block總數
Reserved block count:? ? ?95731
Free blocks:? ? ? ? ? ? ? 968312 ? ? ?--剩余block
Free inodes:? ? ? ? ? ? ? 365275 ? ? ?--剩余inode
First block:? ? ? ? ? ? ? 0
Block size:? ? ? ? ? ? ? ?4096 ? ?--每個block大小
Fragment size:? ? ? ? ? ? 4096
Reserved GDT blocks:? ? ? 467
Blocks per group:? ? ? ? ?32768
Fragments per group:? ? ? 32768
Inodes per group:? ? ? ? ?8128
Inode blocks per group:? ?508
Flex block group size:? ? 16
Filesystem created:? ? ? ?Wed Aug? 3 23:22:08 2016
Last mount time:? ? ? ? ? Thu Nov 10 15:49:44 2016
Last write time:? ? ? ? ? Wed Aug? 3 23:31:03 2016
Mount count:? ? ? ? ? ? ? 32
Maximum mount count:? ? ? -1
Last checked:? ? ? ? ? ? ?Wed Aug? 3 23:22:08 2016
Check interval:? ? ? ? ? ?0 ()
Lifetime writes:? ? ? ? ? 9 GB
Reserved blocks uid:? ? ? 0 (user root)
Reserved blocks gid:? ? ? 0 (group root)
First inode:? ? ? ? ? ? ? 11
Inode size:? ? ? ? ? ? ? ?256 ? ?--每個inode的大小
Required extra isize:? ? ?28
Desired extra isize:? ? ? 28
Journal inode:? ? ? ? ? ? 8
Default directory hash:? ?half_md4
Directory Hash Seed:? ? ? 0d3fdc26-38ed-4b93-8a85-ec305215a827
Journal backup:? ? ? ? ? ?inode blocks
Journal features:? ? ? ? ?journal_incompat_revoke
Journal size:? ? ? ? ? ?? 128M
Journal length:? ? ? ? ? ?32768
Journal sequence:? ? ? ? ?0x00008bac
Journal start:? ? ? ? ? ? 1
Group 0: (Blocks 0-32767) [ITABLE_ZEROED]
Checksum 0x5873, unused inodes 0
Primary superblock at 0, Group descriptors at 1-1
Reserved GDT blocks at 2-468
Block bitmap at 469 (+469), Inode bitmap at 485 (+485)
Inode table at 501-1008 (+501)
21078 free blocks, 0 free inodes, 1315 directories
Free blocks: 11080-11099, 11144-11199, 11227, 11764-11829, 11831-11883, 11886-32767
Free inodes:
2.與目錄樹的關系
目錄:
linux下ext2文件系統新建一個目錄會分配一個inode和至少一個block,inode記錄該目錄相關的屬性和權限,還有分配到那block號碼,而block則是記錄該目錄下文件名與該文件名占用的inode號
文件:
linux下ext2文件系統新建一個文件會分配一個inode和相對該文件大小的block數量的文件。
目錄樹讀取:
系統通過掛載的inode號(文件系統最頂層的inode號由2開始),找到inode的內容,根據inode內容讀取目錄的block內的文件名和數據,再一層層找到文件數據。
[root@Darren ~]# ls -lid / /etc /etc/passwd
2 dr-xr-xr-x. 22 root root? 4096 11月 10 15:49 /
130052 drwxr-xr-x? 98 root root 12288 11月 10 17:39 /etc
137728 -rw-r--r--? ?1 root root? 1532 11月 10 16:27 /etc/passwd
3.日志文件系統
日志文件系統就是一種具有故障恢復能力的文件系統,所謂日志就是一種特殊的文件,它會在一個循環的緩沖區內記錄文件系統的修改,然后將其定期提交到文件系統。一旦系統發生崩潰,日志文件就會起到一個檢查點的作用,用于恢復未保存的信息,防止損壞文件系統元數據。
ext2不支持日志文件系統,從ext3開始支持。
把ext3升級到ext4:
(1)卸載umount
(2)[root@Darren ~]# tune2fs -O extents,uninit_bg,dir_index /dev/sdb1
(3)[root@Darren ~]# e2fsck /dev/sdb1
4.其他linux支持的文件系統
linux支持哪些文件系統:
[root@Darren ~]# ls -l /lib/modules/$(uname -r)/kernel/fs
系統已經加載到內核中的文件系統:
[root@Darren ~]# cat /proc/filesystems
5.連接文件:ln
硬連接:通過文件系統的inode連接產生新文件名,而不是產生新文件,連接文件和源文件的inode一樣,不占用inode和block。
限制:
不能跨分區建立硬連接;
不能連接目錄;
軟連接:相當于windows的快捷方式,是一個獨立的新的文件,指向源文件,連接文件和源文件的inode不同,占用inode和block。
例:
[root@Darren tmp]# touch file1.txt
[root@Darren tmp]# ln file1.txt file2.txt ? ? --創建硬鏈接
[root@Darren tmp]# ln -s file1.txt file3.txt ? --創建軟鏈接
[root@Darren tmp]# ls -il
3508 -rw-r--r-- 2 root root? ? 0 Nov? 8 01:08 file1.txt
3508 -rw-r--r-- 2 root root? ? 0 Nov? 8 01:08 file2.txt
3514 lrwxrwxrwx 1 root root? ? 9 Nov? 8 01:13 file3.txt -> file1.txt
硬連接文件file2.txt與原文件file1.txt 的inode節點相同,然而符號連接文件的inode節點不同。
[root@Darren tmp]# echo 'This is test' >> file1.txt
[root@Darren tmp]# cat file1.txt
This is test
[root@Darren tmp]# cat file2.txt
This is test
[root@Darren tmp]# cat file3.txt
This is test
[root@Darren tmp]# rm file1.txt ? ?--刪除file1.txt
[root@Darren tmp]# ls -li
3508 -rw-r--r-- 1 root root? ?13 Nov? 8 01:20 file2.txt
3514 lrwxrwxrwx 1 root root? ? 9 Nov? 8 01:13 file3.txt -> file1.txt
[root@Darren tmp]# cat file2.txt ?--硬鏈接無影響
This is test
[root@Darren tmp]# cat file3.txt ?--軟鏈接失效
cat: file3.txt: No such file or directory
總結:
(1)刪除符號連接f3,對f1,f2無影響;
(2)刪除硬連接f2,對f1,f3也無影響;
(3)刪除原文件f1,對硬連接f2沒有影響,導致符號連接f3失效;
(4)同時刪除原文件f1,硬連接f2,整個文件會真正的被刪除。
[root@Darren tmp]# mkdir -p dir1
[root@Darren tmp]# ln dir1/ dir2/
ln: target `dir2/' is not a directory: No such file or directory
[root@Darren tmp]# ln dir1/ dir2 ? ? ? --目錄是不能做硬鏈接的
ln: `dir1/': hard link not allowed for directory
[root@Darren tmp]# ln -s dir1/ /tmp/dir2 ? --創建目錄的軟鏈接
[root@Darren tmp]# ls -li
total 20
3514 drwxr-xr-x 2 root root 4096 Nov? 8 01:41 dir1
3617 lrwxrwxrwx 1 root root? ? 5 Nov? 8 01:55 dir2 -> dir1/
總結
以上是生活随笔為你收集整理的linux系统中文件的特性,linux文件系统特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7关闭系统索引服务器,win7系统
- 下一篇: qos和被qos是什么意思