现在的位置: 首页 > Linux > Linux基础 > 正文
df、du、fdisk:Linux磁盘管理三板斧的使用心得
2013年05月29日 Linux基础 ⁄ 共 4834字 df、du、fdisk:Linux磁盘管理三板斧的使用心得已关闭评论 ⁄ 被围观 10,890 views+

1.df

df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。

df命令各个选项的含义如下:

-a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k:以k字节为单位显示。
-i:显示i节点信息,而不是磁盘块。
-t:显示各指定类型的文件系统的磁盘空间使用情况。
-x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T:显示文件系统类型。

我们先看看使用df命令的例子:

//列出各文件系统的磁盘空间使用情况
#df
文件系统                 1K-块      已用      可用 已用% 挂载点
/dev/mapper/vg_dbserver01-lv_root
                      51606140   2924320  46060380   6% /
tmpfs                  8159140   4993468   3165672  62% /dev/shm
/dev/sda1               495844     64977    405267  14% /boot
/dev/mapper/vg_dbserver01-lv_home
                     103212320   2933328  95036112   3% /home
/dev/mapper/vg_dbserver01-lv_u01
                     206424760  21061760 174877240  11% /u01
/dev/mapper/vg_dbserver01-LogVol04
                      61927420    490448  58291244   1% /var

第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。

◆用户也许会感到奇怪,第3,4列块数之和不等于第2列中的块数。这是因为默认的每个分区都留了少量空间供系统管理员使用的缘故。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use%列表示普通用户空间使用的百分比,若这一数字达到100%,分区仍然留有系统管理员使用的空间。

最后,Mounted on列表示文件系统的安装点。

//列出各文件系统的i节点使用情况。
# df -ia
文件系统              Inode  已用(I)  可用(I) 已用(I)%% 挂载点
/dev/mapper/vg_dbserver01-lv_root
                     3276800   95160 3181640    3% /
proc                       0       0       0    -  /proc
sysfs                      0       0       0    -  /sys
devpts                     0       0       0    -  /dev/pts
tmpfs                2039785     520 2039265    1% /dev/shm
/dev/sda1             128016      46  127970    1% /boot
/dev/mapper/vg_dbserver01-lv_home
                     6553600    3894 6549706    1% /home
/dev/mapper/vg_dbserver01-lv_u01
                     13107200   48873 13058327    1% /u01
/dev/mapper/vg_dbserver01-LogVol04
                     3932160    3477 3928683    1% /var
none                       0       0       0    -  /proc/sys/fs/binfmt_misc
sunrpc                     0       0       0    -  /var/lib/nfs/rpc_pipefs

//列出文件系统的类型。
# df -T
文件系统    类型         1K-块      已用      可用 已用% 挂载点
/dev/mapper/vg_dbserver01-lv_root
              ext4    51606140   2924320  46060380   6% /
tmpfs        tmpfs     8159140   4993468   3165672  62% /dev/shm
/dev/sda1     ext4      495844     64977    405267  14% /boot
/dev/mapper/vg_dbserver01-lv_home
              ext4   103212320   2933328  95036112   3% /home
/dev/mapper/vg_dbserver01-lv_u01
              ext4   206424760  21061792 174877208  11% /u01
/dev/mapper/vg_dbserver01-LogVol04
              ext4    61927420    490456  58291236   1% /var

 2. du

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小。该命令的功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。

df命令的各个选项含义如下:
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。
-k:以1024字节为单位列出磁盘空间使用情况。
-c:最后再加上一个总计(系统默认设置)。
-l:计算所有的文件大小,对硬链接文件,则计算多次。
-x:跳过在不同文件系统上的目录不予统计。

下面举例说明du命令的使用:

//查看/mnt目录占用磁盘空间的情况
# du -abk /media/
4       /media/usbsd
8       /media/

//列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间
# du /home/
8       /home/oracle/.gnome2/keyrings
4       /home/oracle/.gnome2/nautilus-scripts
4       /home/oracle/.gnome2/panel2.d/default/launchers
8       /home/oracle/.gnome2/panel2.d/default
12      /home/oracle/.gnome2/panel2.d
28      /home/oracle/.gnome2
……以下省略……

输出清单中的第1列是以块为单位计的磁盘空间容量,第2列列出目录中使用这些空间的目录名称。

◆这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:

#du -s /home
……以上省略……
2741232 /home/


//列出所有文件和目录所占的空间(使用a选项),并以字节为单位(使用b选项)来计算大小

# du -ab /var/mail/
60456   /var/mail/root
0       /var/mail/nagios
0       /var/mail/oracle
0       /var/mail/barlow
0       /var/mail/rpc
64552   /var/mail/

3、fdisk

fdisk可以划分磁盘分区。下面给出使用Fdisk命令进行磁盘分区的操作步骤:

# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

用户通过提示键入“m”,可以显示Fdisk命令各个参数的说明。

Fdisk有很多参数,可是经常使用的只有几个。

◆在Linux分区过程,一般是先通过p参数来显示硬盘分区表信息,然后根据信息确定将来的分区。如下所示:

Command (m for help): p
Disk /dev/sdb: 26.5 GB, 26474446848 bytes
64 heads, 32 sectors/track, 25248 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6321cd50
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       25248    25853936   83  Linux

◆如果想完全改变硬盘的分区格式,就可以通过d参数一个一个地删除存在的硬盘分区。删除完毕,就可以通过n参数来增加新的分区。当按下“n”后,可以看到如下所示:

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partiton number(1-4):2
First cylinder(1-1023):2
Last cylinder or + size or +sizeK or + sizeM(1-1023):+258M

这里要选择新建的分区类型,是主分区还是扩展分区;并选择p或是e。然后就是设置分区的大小。

◆要提醒注意的是,如果硬盘上有扩展分区,就只能增加逻辑分区,不能增加扩展分区。

◆在增加分区的时候,其类型都是默认的Linux Native,如果要把其中的某些分区改变为其他类型,例如Linux Swap或FAT32等,可以通过命令t来改变,当按下“t”改变分区类型的时候,系统会提示要改变哪个分区、以及改变为什么类型(如果想知道系统所支持的分区类型,键入l),如下所示:

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap)

改变完了分区类型,就可以按下“w”,保存并退出。如果不想保存,那么可以选择“q”直接退出,如下所示:

Command (m for help):w

通过如上的操作,就可以按照需要成功地划分磁盘分区了。

抱歉!评论已关闭.

×