磁盘操作命令: fdisk,parted,mkfs,dumpe2fs,df,du,mount,umount

作者:jicanmeng

时间:2016年06月01日


  1. fdisk: 对磁盘进行分区
  2. mkfs: 对分区进行格式化
  3. parted: 对磁盘进行分区
  4. dumpe2fs: 查看分区的情况
  5. df: 查看磁盘空间使用情况
  6. du: 查看某个目录的大小
  7. mount: 挂载分区到某个目录
  8. umount: 卸载分区

1. fdisk: 对磁盘进行分区

fdisk命令的用法在《鸟哥的linux私房菜》中有详细描述。这里只提三点:

2. mkfs: 对分区进行格式化

对磁盘进行分割后,都会对各个partition进行格式化,常常使用mkfs命令。格式为:mkfs -t type partition,常用的type有ext2,ext3,ext4,vfat等。例如mkfs -t ext4 /dev/sda1

mkfs其实是个综合指令,你在调用mkfs -t ext3时,其实系统调用了mkfs.ext3这个指令。

3. parted: 对磁盘进行分区

fdisk命令对于大于2T的分区无法划分,所以用fdisk无法看到parted划分的GPT格式的分区。parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区。这里并不讨论parted的各种详细用法,只会说一种用法:使用parted命令查看磁盘中各个分区的格式。下面是例子:

[root@andy ~]# parted /dev/sda print
Model: ATA HGST HTS545050A7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  211MB  210MB  fat16              boot
 2      211MB   525MB  315MB  ext4
 3      525MB   269GB  268GB  ext4

[root@andy ~]#

4. dumpe2fs: 查看分区的情况

dumpe2fs命令用于查看分区中inode和block的情况。一般情况下我们会关注inode和block的个数和所占的空间大小。

下面是例子:

root@jicanmeng-desktop:~/Desktop# dumpe2fs /dev/sda1 -h
dumpe2fs 1.41.11 (14-Mar-2010)
...
Inode count:              700384
Block count:              2800896
Reserved block count:     140044
Free blocks:              2205655
Free inodes:              560483
First block:              0
Block size:               4096
...
Inode size:	          256
...
root@jicanmeng-desktop:~/Desktop#

可以看到,inode的大小是256个字节,block的大小是4096个字节,/dev/sda1这个partition中共有700384个inode,2800894个block。

5. df: 查看磁盘空间使用情况

df命令的语法是:

一般情况下,一个partition都会格式化为一种档案系统。默认情况下,df命令会显示已经挂载的所有partition的空间占用情况。准确的说,df命令会显示所有的档案系统所在的partition的空间占用情况。同时我们也知道,linux系统有一些虚拟的基于内存的档案系统,例如sysfs,procfs等,df命令加上-a选项也会显示这些档案系统的情况。

常用选项有:

其中,-s和-h是最常用的选项。

下面是例子:

root@jicanmeng-desktop:~/Desktop# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             11027720   2205380   8262164  22% /
none                   1803092       268   1802824   1% /dev
none                   1807312         0   1807312   0% /dev/shm
none                   1807312        80   1807232   1% /var/run
none                   1807312         0   1807312   0% /var/lock
none                   1807312         0   1807312   0% /lib/init/rw
shared               304065532  68244556 235820976  23% /media/sf_shared
root@jicanmeng-desktop:~/Desktop# df -a
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             11027720   2205380   8262164  22% /
proc                         0         0         0   -  /proc
none                         0         0         0   -  /sys
none                         0         0         0   -  /sys/fs/fuse/connections
none                         0         0         0   -  /sys/kernel/debug
none                         0         0         0   -  /sys/kernel/security
none                   1803092       268   1802824   1% /dev
none                         0         0         0   -  /dev/pts
none                   1807312         0   1807312   0% /dev/shm
none                   1807312        80   1807232   1% /var/run
none                   1807312         0   1807312   0% /var/lock
none                   1807312         0   1807312   0% /lib/init/rw
shared               304065532  68244556 235820976  23% /media/sf_shared
binfmt_misc                  0         0         0   -  /proc/sys/fs/binfmt_misc
root@jicanmeng-desktop:~/Desktop# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.2G  7.9G  22% /
none                  1.8G  268K  1.8G   1% /dev
none                  1.8G     0  1.8G   0% /dev/shm
none                  1.8G   80K  1.8G   1% /var/run
none                  1.8G     0  1.8G   0% /var/lock
none                  1.8G     0  1.8G   0% /lib/init/rw
shared                290G   66G  225G  23% /media/sf_shared
root@jicanmeng-desktop:~/Desktop# df -h .
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              11G  2.2G  7.9G  22% /
root@jicanmeng-desktop:~/Desktop# df -iT /etc
Filesystem    Type    Inodes   IUsed   IFree IUse% Mounted on
/dev/sda1     ext4    700384  139906  560478   20% /
root@jicanmeng-desktop:~/Desktop#
说明:那个 /dev/shm/ 目录,其实是利用记忆体虚拟出来的磁碟空间!

6. du: 查看某个目录的大小

du命令的语法是:

常用选项有:

其中,-sh是最常用的选项。

如下是例子:

root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# tree
.
├── a.c
├── a.out
├── dir1
│   ├── a.out
│   └── dir11
│       └── a.out
└── dir2
    └── a.out

3 directories, 5 files
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# du
8	./dir1/dir11
15	./dir1
8	./dir2
31	.
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# du -a
1	./a.c
8	./a.out
8	./dir1/a.out
8	./dir1/dir11/a.out
8	./dir1/dir11
15	./dir1
8	./dir2/a.out
8	./dir2
31	.
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# du -sh
31K	.
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# du -Sh
7.5K	./dir1/dir11
7.5K	./dir1
7.5K	./dir2
8.0K	.
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# du -sh dir1/
15K	dir1/
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# du -sh a.out
7.5K	a.out
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir# ll a.out
-rwxrwx--- 1 root vboxsf 7211 2016-05-31 16:37 a.out*
root@jicanmeng-desktop:/media/sf_shared/shell/duTestDir#

du -sh a.out命令显示是a.out文件占用的空间大小。ll a.out命令显示的a.out文件自身的大小。一般情况下,文件占用的空间大小都会大于文件自身大小。

7. mount: 挂载分区到某个目录

命令格式简单来说,就是mount -t type device dir。常用的格式有ext2,ext3,ext4,vfat,iso9660(光碟格式)。有下面几点需要注意:

8. umount: 卸载分区

格式为:umount device或者umount dir都可以。有几点需要注意一下:

参考资料

  1. 鸟哥的linux私房菜
    http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php