Linux 磁盘管理
前言
Linux磁盘管理好坏直接关系到整个系统的性能问题。
列出文件系统的整体磁盘使用量
df
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
将系统内所有的文件系统列出来
在 Linux 系统中,如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来
案列 2
将容量结果以易读的容量格式显示出来
实例 3
将系统内的所有特殊文件格式及名称都列出来
实例 4
将 /etc 底下的可用的磁盘容量以易读的容量格式显示
检查磁盘空间使用量
du
du命令参数功能:是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
案列 1
只列出当前目录下的所有文件夹容量(包括隐藏文件夹):
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
案列 2
将文件的容量也列出来
案列 3
检查根目录底下每个目录所占用的容量
通配符 * 来代表每个目录。
与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。
列出所有可用块设备的信息
lsblk
lsblk命令参数功能:列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。 yum install util-linux-ng来安装该包。
语法
选项
案例1
lsblk命令默认情况下将以树状列出所有块设备。打开终端,并输入以下命令:
7个栏目名称如下:
NAME:这是块设备名。
MAJ:MIN:本栏显示主要和次要设备号。
RM:本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE:本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO:该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE:本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
MOUNTPOINT:本栏指出设备挂载的挂载点。
默认选项不会列出所有空设备。要查看这些空设备,请使用以下命令:
lsblk命令也可以用于列出一个特定设备的拥有关系,同时也可以列出组和模式。可以通过以下命令来获取这些信息:
该命令也可以只获取指定设备的信息。这可以通过在提供给lsblk命令的选项后指定设备名来实现。例如,你可能对了解以字节显示你的磁盘驱动器大小比较感兴趣,那么你可以通过运行以下命令来实现:
你也可以组合几个选项来获取指定的输出。例如,你也许想要以列表格式列出设备,而不是默认的树状格式。你可能也对移除不同栏目名称的标题感兴趣。可以将两个不同的选项组合,以获得期望的输出,命令如下:
要获取SCSI设备的列表,你只能使用-S选项。该选项是大写字母S,不能和-s选项混淆,该选项是用来以颠倒的顺序打印依赖的。
lsblk列出SCSI设备,而-s是逆序选项(将设备和分区的组织关系逆转过来显示),其将给出如下输出。输入命令:
案例2
查看多块磁盘拓扑信息
磁盘分区
fdisk
fdisk 是 Linux 的磁盘分区表操作工具。
语法:
选项与参数:
-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
案例 1
列出所有分区信息
案例 2
找出系统中的根目录所在磁盘,并查阅该硬盘内的相关信息
输入 m 后,就会看到底下这些命令介绍
离开 fdisk 时按下 q,那么所有的动作都不会生效!相反的, 按下w就是动作生效的意思。
注意:不保存退出按 q ,保存退出 w ,如上操作有改动或有删除分区,w保存会初始化磁盘,重新分区会清除磁盘上的数据
使用 p 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。
parted
parted命令是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具,与fdisk不同,它支持调整分区的大小。作为一种设计用于Linux的工具,它没有构建成处理与fdisk关联的多种分区类型,但是,它可以处理最常见的分区格式,包括:ext2、ext3、fat16、fat32、NTFS、ReiserFS、JFS、XFS、UFS、HFS以及Linux交换分区。
语法
选项
参数
设备:指定要分区的硬盘所对应的设备文件;
命令:要执行的parted命令。
安装
案例 1
从串行技术出现以来,越来越多用户选择使用大容量的SATA硬盘创建磁盘阵列;特别是MD1000/MD3000,很轻易就突破2T的LUN,故在此给大家一些指引。
红帽企业 Linux 4 Update 4供对大于 2 terabytes(TB)的磁盘设备的支持。
请参考以下操作步骤:
如果必要,不要忘记更新/etc/fstab。
案例 2
1、选择分区硬盘
首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdd: ((parted)表示在parted中输入的命令,其他为自动打印的信息)
2、创建分区
选择了/dev/hdd作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):
3、完成分区操作
创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置
4、验证分区信息
分好区后可以使用print命令打印分区信息,下面是一个print的样例
5、删除分区示例
如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果
6、完整示例
按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例
7、格式化操作
完成以后我们可以使用quit命令退出parted并使用系统的mkfs命令对分区进行格式化了。
磁盘格式化
mkfs
磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令。
语法:
选项与参数:
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
案例 1
查看 mkfs 支持的文件格式

按下两个[tab],会发现 mkfs 支持的文件格式如上所示。
案例 2
将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:
扩容文件系统
resize2fs
resize2fs命令被用来增大或者收缩未加载的“ext2/ext3”文件系统的大小。如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线resize。,linux kernel 2.6支持在mount状态下扩容但仅限于ext3文件系统。
语法
选项
参数
设备文件名:增大要调整大小的文件系统所对应的设备文件名;
大小:文件系统的新大小。
案例
对于 EXT 文件系统,请执行 resize2fs 命令扩容文件系统。
以 /dev/vdb 为例, EXT 文件系统执行以下命令:
xfs_growfs
XFS是一个开源的(GPL)日志文件系统,最初由硅谷图形(SGI)开发,现在大多数的Linux发行版都支持。事实上,XFS已被最新的CentOS/RHEL 7采用,成为其默认的文件系统。在其众多的特性中,包含了“在线调整大小”这一特性,使得现存的XFS文件系统在已经挂载的情况下可以进行扩展。然而,对于XFS文件系统的缩减却还没有支持。
要扩展一个现存的XFS文件系统,你可以使用命令行工具xfs_growfs,这在大多数Linux发行版上都默认可用。由于XFS支持在线调整大小,目标文件系统可以挂载,也可以不挂载。
案例
对于 XFS 文件系统,请执行 xfs_growfs 命令扩容文件系统。
以 /dev/vdb 为例, XFS 文件系统执行以下命令:
磁盘检验
fsck
fsck(file system check)用来检查和维护不一致的文件系统。
若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
语法:
选项与参数:
-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 命令:

案例 2
强制检测 /dev/hdc6 分区:
如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。
磁盘挂载与卸除
Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。
mount
磁盘挂载语法:
案例 1
用默认的方式,将刚刚创建的 /dev/hdc6 挂载到 /mnt/hdc6 上面!
umount
磁盘卸载命令 umount 语法:
选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。
卸载/dev/hdc6
开机挂载文件/etc/fstab
执行以下命令,使用 VI 编辑器打开 /etc/fstab 文件。
案例1
弹性云硬盘的软链接自动挂载为例:
查看方式:
以使用磁盘分区的 UUID 自动挂载为例:
查看方式:
以使用设备名称自动挂载为例
按 Esc,输入 :wq,按 Enter
保存设置并退出编辑器。
执行以下命令,检查 /etc/fstab 文件是否写入成功。
如果运行通过则说明文件写入成功,新建的文件系统会在操作系统启动时自动挂载。
最后更新于
这有帮助吗?