Linux系统学习第三章:磁盘与文件系统管理(二)文件系统管理
一、文件系统特性
传统的磁盘和文件系统中,一个分区只能被格式化为一个文件系统,由于新技术的出现如LVM可以将一个分区格式化为多个文件系统,也可以将多个分区格式化为一个文件系统。
文件系统:就是明确磁盘或分区上文件的组织方法和数据结构,就是文件组织方法。
个人是这样理解的:
各个不同的文件系统有不同的组织方法:比如我们各种组织看成一个文件系统的话,其组织形式也是多样的。一个文件系统就是一种文件组织形式
军队:以军、师、旅、团、营、连、排、班为单位等组织的
公司:以老板、CEO、行政部、技术部、产品部、营销部等组织的
二、文件系统组成
以ext2这种 文件系统为例:(索引式文件系统)
一个文件系统可以分为三部分:inode,data block,super block(inode和data block都有编号)
(1)inode:记录文件的属性、权限、大小等信息(包括记录文件实际内容的块的编号)
每个文件占用一个inode,它会记录文件具体内容的data block的编号(即指向本文件内容的所有data block)
(2)data block:记录文件实际内容的块
如果文件过大,会占用多个data block。但一个data block只能放一个文件的内容,如果有充裕剩余空间只能闲置
ext2这种文件系统的data block的大小可以为1kB,2kB,4kB(选定一种大小后一般不能改变,除非重新格式化)
data block的大小对应的文件大小 和文件系统总体大小
data block大小 单个文件最大值 文件系统最大值
1KB 16GB 2TB
2KB 256GB 8TB
4KB 2TB 16TB
(3)super block:整个文件系统的信息,包括inode总量、data block总量等
三、查看文件系统信息
(1)df 查看磁盘挂载的设备使用情况
用法:df [-ahkmiT] 目录
参数说明: -a 查看该目录下所有设备使用情况(包括/proc这种特殊的文件系统)
-h 查看使用情况时使用人们习惯的单位来表示(如GB,具体看其大小)
-k 使用KB为单位来表示
-m 使用MB为单位来表示
-i 显示inode的使用数量等情况
-T 显示设备所用的文件系统类型
1 [root@localhost ~]# df 2 文件系统 1K-块 已用 可用 已用% 挂载点 3 /dev/sda2 9920624 4619236 4789320 50% / 4 /dev/sda3 4956316 141424 4559060 4% /home 5 /dev/sda1 101086 11576 84291 13% /boot 6 tmpfs 517552 0 517552 0% /dev/shm 7 [root@localhost ~]# df -a 8 文件系统 1K-块 已用 可用 已用% 挂载点 9 /dev/sda2 9920624 4619236 4789320 50% / 10 proc 0 0 0 - /proc 11 sysfs 0 0 0 - /sys 12 devpts 0 0 0 - /dev/pts 13 /dev/sda3 4956316 141424 4559060 4% /home 14 /dev/sda1 101086 11576 84291 13% /boot 15 tmpfs 517552 0 517552 0% /dev/shm 16 none 0 0 0 - /proc/sys/fs/binfmt_misc 17 none 0 0 0 - /proc/fs/vmblock/mountPoint 18 sunrpc 0 0 0 - /var/lib/nfs/rpc_pipefs 19 [root@localhost ~]# df -k 20 文件系统 1K-块 已用 可用 已用% 挂载点 21 /dev/sda2 9920624 4619236 4789320 50% / 22 /dev/sda3 4956316 141424 4559060 4% /home 23 /dev/sda1 101086 11576 84291 13% /boot 24 tmpfs 517552 0 517552 0% /dev/shm 25 [root@localhost ~]# df -m 26 文件系统 1M-块 已用 可用 已用% 挂载点 27 /dev/sda2 9689 4511 4678 50% / 28 /dev/sda3 4841 139 4453 4% /home 29 /dev/sda1 99 12 83 13% /boot 30 tmpfs 506 0 506 0% /dev/shm 31 [root@localhost ~]# df -h 32 文件系统 容量 已用 可用 已用% 挂载点 33 /dev/sda2 9.5G 4.5G 4.6G 50% / 34 /dev/sda3 4.8G 139M 4.4G 4% /home 35 /dev/sda1 99M 12M 83M 13% /boot 36 tmpfs 506M 0 506M 0% /dev/shm 37 [root@localhost ~]# df -i 38 文件系统 Inode (I)已用 (I)可用 (I)已用% 挂载点 39 /dev/sda2 2560864 161940 2398924 7% / 40 /dev/sda3 1280000 70 1279930 1% /home 41 /dev/sda1 26104 35 26069 1% /boot 42 tmpfs 129388 1 129387 1% /dev/shm 43 [root@localhost ~]# df -T 44 文件系统 类型 1K-块 已用 可用 已用% 挂载点 45 /dev/sda2 ext3 9920624 4619236 4789320 50% / 46 /dev/sda3 ext3 4956316 141424 4559060 4% /home 47 /dev/sda1 ext3 101086 11576 84291 13% /boot 48 tmpfs tmpfs 517552 0 517552 0% /dev/shm 49 [root@localhost ~]#
补充:挂载:将磁盘某个分区挂载到某个目录上,个人认为用指向某个目录更容易让人理解,比如我的分区sda2 有个目录 sda2/www,把sda2挂载到/home上,那这个目录就在/home/www上,只有把分区挂载到目录才能对这个分区的文件进行操作
(2)dumpe2fs:查看每个分区的信息与super block信息
用法:dumpe2fs [-h] 设备名称
-h 仅显示super block的信息
以下注释的用 每一条信息的后面添加的#为本人加的注释(绿色部分为注释)
1 [root@localhost ~]# dumpe2fs -h /dev/sda2 2 dumpe2fs 1.39 (29-May-2006) 3 Filesystem volume name: / #设备挂载的目录 4 Last mounted on: <not available> 5 Filesystem UUID: 4310fb73-da54-498d-bde9-4551eb8dccd8 6 Filesystem magic number: 0xEF53 7 Filesystem revision #: 1 (dynamic) 8 Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file 9 Default mount options: user_xattr acl 10 Filesystem state: clean 11 Errors behavior: Continue 12 Filesystem OS type: Linux 13 Inode count: 2560864 #inode的数量 14 Block count: 2560359 #data block的数量 15 Reserved block count: 128017 16 Free blocks: 1325371 17 Free inodes: 2398969 18 First block: 0 19 Block size: 4096 #每个data block的大小,为4KB 20 Fragment size: 4096 21 Reserved GDT blocks: 625 22 Blocks per group: 32768 23 Fragments per group: 32768 24 Inodes per group: 32416 25 Inode blocks per group: 1013 26 Filesystem created: Sat Sep 29 21:06:25 2012 27 Last mount time: Thu Nov 29 09:02:19 2012 28 Last write time: Thu Nov 29 09:02:19 2012 29 Mount count: 46 30 Maximum mount count: -1 31 Last checked: Sat Sep 29 21:06:25 2012 32 Check interval: 0 (<none>) 33 Reserved blocks uid: 0 (user root) 34 Reserved blocks gid: 0 (group root) 35 First inode: 11 36 Inode size: 128 37 Journal inode: 8 38 First orphan inode: 2272020 39 Default directory hash: tea 40 Directory Hash Seed: cdbe938d-3a98-47c7-acdb-9c8f2d2a1e3d 41 Journal backup: inode blocks 42 Journal size: 128M
(3)du 查看某个目录下的文件大小
它有用法与df类似
du [-akmh]
1 [root@localhost home]# du -h 2 16K ./admin/.kde/Autostart 3 24K ./admin/.kde 4 8.0K ./admin/test 5 8.0K ./admin/.mozilla/extensions 6 8.0K ./admin/.mozilla/plugins 7 24K ./admin/.mozilla 8 8.0K ./admin/test2 9 112K ./admin 10 16K ./ec_admin/.kde/Autostart 11 24K ./ec_admin/.kde 12 8.0K ./ec_admin/.mozilla/extensions 13 8.0K ./ec_admin/.mozilla/plugins 14 24K ./ec_admin/.mozilla 15 80K ./ec_admin 16 16K ./dev/.kde/Autostart 17 24K ./dev/.kde 18 16K ./dev/test/scripts 19 32K ./dev/test 20 8.0K ./dev/.mozilla/extensions 21 8.0K ./dev/.mozilla/plugins 22 24K ./dev/.mozilla 23 16K ./dev/scripts 24 184K ./dev 25 16K ./test/includes 26 20K ./test/document_root 27 44K ./test 28 16K ./lost+found 29 444K .
du与df不同,它会去查找文件系统内所有文件的大小,所以如果文件较多,查找时间会变长