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不同,它会去查找文件系统内所有文件的大小,所以如果文件较多,查找时间会变长

 

 

posted @ 2012-11-29 10:24  遗梦诗心  阅读(189)  评论(0编辑  收藏  举报