Linux磁盘管理命令汇总
在Linux中磁盘管理有 df、du、fdisk、mkfs、fsck、mount、umount。其作用分别如下:
df:列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
fdisk:用于磁盘分区
mkfs:格式化分区
fsck:(file system check)用来检查和维护不一致的文件系统。
mount:磁盘挂载
umount:磁盘卸载
一、df命令
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df [-ahikHTm] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
实例:
1.将系统内所有的文件系统列出来
# df
2.将容量结果以易读的容量格式显示出来
# df -h
3.将系统内的所有特殊文件格式及名称都列出来
# df -aT
4.将 /etc 底下的可用的磁盘容量以易读的容量格式显示
# df -h /etc
二、du命令
功能:Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。
语法:du [-ahskm] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
实例:
1.只列出当前目录下的所有文件夹容量(包括隐藏文件夹)
# du
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
2.将文件的容量也列出来
# du -a
3.检查根目录底下每个目录所占用的容量,通配符 * 来代表每个目录。
# du -sm /*
三、fdisk命令
1.基本使用
功能:fdisk是一个创建和维护分区表的工具,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。
语法:fdisk [必要参数][选择参数]
参数:
-l 列出素所有分区表
-u 与"-l"搭配使用,显示分区数目
选择参数:
-s<分区编号> 指定分区
-v 版本信息
菜单操作说明
m :显示菜单和帮助信息
a :活动分区标记/引导分区
d :删除分区
l :显示分区类型
n :新建分区
p :显示分区信息
q :退出不保存
t :设置分区号
v :进行分区检查
w :保存修改
x :扩展应用,高级功能
2.输出详解
fdisk -l
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd10cd10c
从上面信息可以看出,这个硬盘是250G的,有255个磁面;63个扇区;30401个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(约为)=8.225280M(约为);
分区序列/引导 开始 终止 容量 (分区类型ID) 分区类型
Device Boot Start End Blocks Id System
/dev/sda1 1 3917 31463271 7 HPFS/NTFS
/dev/sda2 3918 30401 212732730 f W95 Ext'd (LBA)
/dev/sda5 3918 12841 71681998+ 7 HPFS/NTFS
/dev/sda6 12842 21765 71681998+ 7 HPFS/NTFS
/dev/sda7 21766 23070 10482381 b W95 FAT32
/dev/sda8 23071 25620 20482843+ 83 Linux
/dev/sda9 25621 25747 1020096 82 Linux swap / Solaris
/dev/sda10 25748 30401 37383223+ 83 Linux
以上数据说明:
硬盘分区的表示:在Linux 是通过hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c …… …… x表示的数字 1、2、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或SATA;
引导(Boot):表示引导分区,在上面的例子中 sda1 是引导分区;
Start (开始):表示的一个分区从X cylinder(磁柱)开始;
End (结束):表示一个分区到 Y cylinder(磁柱)结束;
Blocks(容量):其默认单位是K;一个分区容量的值是由下面的公式而来的;
Blocks = (相应分区End数值 - 相应分区Start数值)x 单位cylinder(磁柱)的容量
例如:sda1的 Blocks 的大小 :
sda1 Blocks=(3917-1)x8225.280=32210196.48 K = 32210.19648M
查看分区大小或者文件的时候,一般用的都是十进制,推算办法是 byte 向前推小数点三位就是K ,K单位的值向前推小数点三位就是M,M向前推小数点三位就是G…… …… 一般都是这样,取大概值就行
id和System 表示的是一个意思,id看起来不太直观,我们要在fdisk 一个分区时,通过指定id来确认分区类型;比如 7表示的就NTFS 分区;
3.磁盘分区
使用 fdisk 对硬盘进行分区,采用传统的问答式界面。常用的命令参数见 1 中的“菜单操作说明”。
实例:对/dev/sdb进行分区
(1)# fidsk /dev/sdb
(2)根据菜单命令进行操作(常用的命令参数见 1 中的“菜单操作说明”)。
(3)分区过程描述
a.通过 p 参数来查看出硬盘分区表信息。根据信息确定将来的分区
b.通过 d 参数一个个删除存在的硬盘分区,如果想完全改变硬盘的分区格式
c.通过 n 参数来增加新的分区
选择新建的分区类型。p为主分区,e为扩展分区(当有扩展分区存在时这里的e会 变成l,即逻辑分区)
设置分区号。主分区或扩展分区为1-4,逻辑分区为5开始
设置分区起始位置。(一般回车默认就好)
设置分区结束位置。(100单位为扇区,+100M单位为M,+100K单位为K)
d.通过p参数确认分区建立成功
e.通过参数w或q退出(w为保存并退出,q为不保存退出)
注意:在增加分区的时候,其类型都是默认的 Linux Native,如果需要把其中的某些分区改变为其它类型,可以通过命令 t来改变,当键入“t”改变分区类型的时候,系统会提示要改变哪个分区,改变为什么类型(键入l查看系统所支持的分区类型及其对应的分区类型号)。
四、mkfs命令
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令。
语法:mkfs [-t 文件系统格式] 设备名
选项与参数:
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
-V : 显示更多输出,包括文件系统的相关信息(注意:-V必须放在-t前面)
实例:
1.查看 mkfs 支持的文件格式
# mkfs[tab][tab]
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
2.将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:
# mkfs -t ext3 /dev/hdc6
3.其他用法
# mkfs -V -t vfat /dev/sdb1
# mkfs.vfat -v /dev/sdb1
五、fsck命令
语法:fsck [-t 文件系统] [-ACay] 装置名称
选项与参数:
-t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
-s : 依序一个一个地执行 fsck 的指令来检查
-A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
-C : 显示完整的检查进度
-d : 打印出 e2fsck 的 debug 结果
-p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
-R : 同时有 -A 条件时,省略 / 不检查
-V : 详细显示模式
-a : 如果检查有错则自动修复
-r : 如果检查有错则由使用者回答是否修复
-y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
实例
1.查看系统有多少文件系统支持的 fsck 命令:
# fsck[tab][tab]
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat
2.强制检测 /dev/hdc6 分区:
# fsck -C -f -t ext3 /dev/hdc6
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks
如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。
六、mount与umount命令
Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。
1.mount命令
语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r:等于 -o ro
-w:等于 -o rw
-L:将含有特定标签的硬盘分割挂上。
-U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync:在同步模式下执行。
-o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto、-o noauto:打开/关闭自动挂上模式。
-o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允许执行档被执行。
-o suid、-o nosuid:
允许执行档在 root 权限下执行。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。
-o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro:用唯读模式挂上。
-o rw:用可读写模式挂上。
-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
示例:
(1)用默认的方式,将刚刚创建的 /dev/hdc6 挂载到 /mnt/hdc6
# mkdir /mnt/hdc6
# mount /dev/hdc6 /mnt/hdc6
# df
Filesystem 1K-blocks Used Available Use% Mounted on
.....中间省略.....
/dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6
(2)将 /dev/hda1 用唯读模式挂在 /mnt 之下。
#mount -o ro /dev/hda1 /mnt
(3)将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。
#mount -o loop /tmp/image.iso /mnt/cdrom
2.umount命令
语法:umount [-ahnrvV][-t <文件系统类型>][文件系统]
选项与参数:
-a 卸除/etc/mtab中记录的所有文件系统。
-h 显示帮助。
-n 卸除时不要将信息存入/etc/mtab文件中。
-r 若无法成功卸除,则尝试以只读的方式重新挂入文件系统。
-t<文件系统类型> 仅卸除选项中所指定的文件系统。
-v 执行时显示详细的信息。
-V 显示版本信息。
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
[文件系统] 除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。
示例:
# umount -v /dev/sda1 通过设备名卸载
/dev/sda1 umounted
# umount -v /mnt/mymount/ 通过挂载点卸载
/tmp/diskboot.img umounted