您的位置:首页 > 运维架构 > Linux

Linux命令学习3—Linux磁盘与文件系统管理

2012-05-21 16:04 1031 查看
一. 各种接口的磁盘在Linux中的文件名

/dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash等接口的磁盘名

/dev/hd[a-d][1-63]:为IDE接口的磁盘文件名

二. 文件信息再磁盘中的记录

Linux操作系统的档案权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常将这两部分数据放在不同的区块中,权限与属性放置到inode区块中,实际数据则放置到data block区块中。还有个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。

·superblock:记录此filesystem的整体信息,包括inode/block的总量,使用量,剩余量,以及文件系统的格式与相关信息等。

·inode:记录档案的属性,一个档案占用一个inode,该inode中将记录档案数据所在的block号码。

·block:记录档案的实际数据,如果档案过大,会占用多个block。

-->Linux正统的文件系统为Ext2(Linux second extended file system, ext2fs)

三. 磁盘信息查询指令

3.1 使用df 指令

[root@localhost ~]# df 查询当前系统挂载的装置

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                      11046136   8611048   1864928  83% /

/dev/sda1               101086     11823     84044  13% /boot

tmpfs                   257736         0    257736   0% /dev/shm

.host:/               53841812  52895444    946368  99% /mnt/hgfs

3.2 使用dumpe2fs [-bh]指令查询当前系统文件系统信息:

选项与参数:

-b:列出保留为坏轨的部分

-h:仅列出superblock的数据,不列出其他区段信息

[root@localhost ~]# dumpe2fs /dev/sda1

四. 文件系统概念与实际的目录树关系

4.1 目录

    在Linux的ext2文件系统建立一个目录时,ext2会分配一个inode与至少一块block给该目录。其中,inode记录该目 录的相关权限与属性,并记录分配的block号码;而block记录在这个目录下的文件名与该文件名占用的inode号码数据。

    使用命令#ls -i查看root家目录内档案所占用的inode号码:

[root@localhost ~]# ls -li

total 104

1083444 drwxr-xr-x 3 root root  4096 May 14 19:48 a

1083347 -rw------- 1 root root  2724 Mar  1  2011 anaconda-ks.cfg

1083446 drwxr-xr-x 3 root root  4096 May 14 19:48 b

1279584 drwxr-xr-x 2 root root  4096 May  8 16:04 Desktop

1081346 -rw-r--r-- 1 root root 51427 Mar  1  2011 install.log

1081347 -rw-r--r-- 1 root root  6589 Mar  1  2011 install.log.syslog

1083353 -rw-r--r-- 1 root root   770 Jun  9  2011 minicom.log

1083348 -rw-r--r-- 1 root root   227 Feb 28  2011 scsrun.log

4.2 文件

在Linux下ext2文件系统建立一个档案时,ext2会分配一个inode与相对应于档案大小的block数量给该档案

五. Linux支持的文件系统 

5.1 使用如下命令查看系统支持的文件系统:

[root@localhost ~]# ls -l /lib/modules/$(uname -r)/kernel/fs

total 200

drwxr-xr-x 2 root root 4096 Mar  1  2011 autofs4

drwxr-xr-x 2 root root 4096 Mar  1  2011 cachefiles

drwxr-xr-x 2 root root 4096 Mar  1  2011 cifs

drwxr-xr-x 2 root root 4096 Mar  1  2011 configfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 cramfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 dlm

drwxr-xr-x 2 root root 4096 Mar  1  2011 exportfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 ext3

drwxr-xr-x 2 root root 4096 Mar  1  2011 fat

drwxr-xr-x 2 root root 4096 Mar  1  2011 freevxfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 fscache

drwxr-xr-x 3 root root 4096 Mar  1  2011 gfs2

drwxr-xr-x 2 root root 4096 Mar  1  2011 hfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 hfsplus

drwxr-xr-x 2 root root 4096 Mar  1  2011 jbd

drwxr-xr-x 2 root root 4096 Mar  1  2011 jffs2

drwxr-xr-x 2 root root 4096 Mar  1  2011 lockd

drwxr-xr-x 2 root root 4096 Mar  1  2011 msdos

drwxr-xr-x 2 root root 4096 Mar  1  2011 nfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 nfs_common

drwxr-xr-x 2 root root 4096 Mar  1  2011 nfsd

drwxr-xr-x 2 root root 4096 Mar  1  2011 nls

drwxr-xr-x 2 root root 4096 Mar  1  2011 squashfs

drwxr-xr-x 2 root root 4096 Mar  1  2011 udf

drwxr-xr-x 2 root root 4096 Mar  1  2011 vfat

5.2 查询系统目前已加载到内存中支持的文集系统

[root@localhost ~]# cat /proc/filesystems 

nodev   sysfs

nodev   rootfs

nodev   bdev

nodev   proc

nodev   cpuset

nodev   binfmt_misc

nodev   debugfs

六. 文件系统的操作

磁盘的总体数据是在superblock区块中,而具体的档案容量则在inode中记载。

6.1  df(列出文件系统的整体磁盘使用量)--显示的是superblock信息

格式:df [-ahikHTm] [目录或文件名]

选项与参数:

-a:列出所有的文件系统,包括/proc等文件系统

-h:以较已阅读的GBytes,MBytes,KBytes等格式显示

-i:不用硬盘容量,而以inode的数量来显示

·du:评估文件系统的磁盘使用量

示例:

[root@localhost ~]# df -h

Filesystem            Size   Used   Avail   Use%  Mounted on

/dev/mapper/VolGroup00-LogVol00

                             
bbea
 11G  8.3G     1.8G   83%   /

/dev/sda1              99M   12M   83M  13%   /boot

tmpfs                 252M     0       252M   0%   /dev/shm

.host:/                     52G   51G  925M  99% /mnt/hgfs

列出/home所在磁盘容量以易读的容量格式显示

[root@localhost ~]# df -h /home

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                              11G  8.3G  1.8G  83%  /

6.2 du [-ahakm] 档案或目录名称

选项与参数:

-a:列出所有的档案与目录容量,默认仅统计目录下的档案

-h:以较已阅读的GBytes,MBytes,KBytes等格式显示

-s:列出总量而已,而不列出每个各别的目录占用的容量

示例:

列出当前目录下的所有档案容量

[root@localhost ~]# du

4       ./.redhat/esc

8       ./.redhat

4       ./.gnome2_private

8       ./.gconf/apps/panel/applets/window_list/prefs

12      ./.gconf/apps/panel/applets/window_list

8       ./.gconf/apps/panel/applets/clock/prefs

12      ./.gconf/apps/panel/applets/clock

8       ./.gconf/apps/panel/applets/workspace_switcher/prefs

12      ./.gconf/apps/panel/applets/workspace_switcher

.......................

七.  实体链接与符号链接:ln

格式:ln [-sf]  来源文件  目标文件

选项与参数:

-s:如果不加任何参数就进行链接,为hard link,添加-s为symbolic link

-f:如果目标文件存在,将该文件清除后再建立

7.1 Hard Link(实体链接,硬链接)

hard link是在某个目录下新增一个档案名,链接到某inode号的关联记录

示例:

建立/etc/crontab的实体链接:

[root@localhost ~]# ln  /etc/crontab .

查看二者的inode记录:

[root@localhost ~]# ll -i /etc/crontab /root/crontab 

2457767 -rw-r--r-- 3 root root 255 Jul 15  2006 /etc/crontab

2457767 -rw-r--r-- 3 root root 255 Jul 15  2006 /root/crontab

两个档案连接到的inode号都为2457767

-->hard link的限制:

·不能跨filesystem

·不能link目录(否则二者随时需要同步,浪费系统开销)

7.2 Symbolic link(符号链接,即是快捷方式)

Symbolic link是建立一个独立的档案,而这个档案会让数据的读取指向其link的那个档案

示例:

建立一个符号链接文件链接到/etc/crontab:

[root@localhost ~]# ln -s /etc/crontab crontab2

查看信息:

[root@localhost ~]# ll -i /etc/crontab /root/crontab2

2457767 -rw-r--r-- 3 root root 255 Jul 15  2006 /etc/crontab

1083449 lrwxrwxrwx 1 root root  12 May 21 14:32 /root/crontab2 -> /etc/crontab

-->符号链接可以链接目录

例如:ln -s /bin  /root/bin

在进入/root/bin这个目录时,实际进入的是/bin目录

删除链接档:

# rm /root/bin

7.3 关于目录的link数量

新建目录时,存在.与..这两个目录,因此,如果建立名为/tmp/aa时,会有三个目录:

/tmp/aa

/tmp/aa/.

/tmp/aa/..

其中,/tmp/aa与/tmp/aa/.是一样的,指的都是aa目录;/tmp/aa/..则代表/tmp目录,因此,新建一个目录时,新建目录链接数为2(分别是/tmp/aa和/tmp/aa/.);而上层目录会增加1(因为/tmp/aa/..链接到上层目录)

示例:

[root@localhost ~]# ls -ld /tmp

drwxrwxrwt 60 root root 4096 May 21 14:02 /tmp

目录/tmp初始链接数为60

新建目录:

[root@localhost ~]# mkdir /tmp/aa

再查看/tmp链接数

[root@localhost ~]# ls -ld /tmp

drwxrwxrwt 61 root root 4096 May 21 14:44 /tmp

查看/tmp/aa链接数

[root@localhost ~]# ls -ld /tmp/aa/

drwxr-xr-x 2 root root 4096 May 21 14:44 /tmp/aa/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息