在Linux系统中,磁盘管理是系统管理中非常重要的一个方面,尤其在服务器或大型生产环境中。理解磁盘的管理工具与常见操作,可以帮助管理员确保系统正常运行并最大化磁盘资源的利用效率。本文将为你介绍Linux磁盘管理的核心概念与常见命令,并提供一些实用操作指南。

磁盘设备表示

在Linux系统中,所有的硬盘设备通常会被挂载到/dev目录下,常见的设备文件表示方式如下:

  • SATA/SCSI/USB硬盘/dev/sdX,其中X为磁盘的标识符(如/dev/sda表示第一块磁盘,/dev/sdb表示第二块磁盘)。

  • 分区:硬盘的每个分区也有自己的标识符,如/dev/sda1表示第一块硬盘的第一个分区,/dev/sda2表示第二个分区。

查看磁盘信息

要了解系统中磁盘的基本信息,可以使用以下命令:

lsblk命令

列出块设备,显示设备名称、大小、挂载点等信息。

lsblk命令语法

lsblk [选项] [<设备> ...]

参数说明

lsblk命令使用示例

案例一:查看所有块设备及其挂载情况

lsblk

执行上述命令会输出如下图的结果:

案例一:以列表形式显示设备信息,并包含文件系统类型

lsblk -lfm

返回结果如下所示

df命令

该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df命令语法

df [参数] [目录或文件名]

参数说明

参数说明
-a列出所有的文件系统,包括系统特有的/proc等文件系统。
-k以KBytes为单位,返回各文件系统容量
-m以MBytes为单位,返回各文件系统容量。
-h以GBytes、MBytes、KBytes为单位,返回各文件系统容量。
-H以M=1000K取代M=1024K的进位方式显示各文件系统容量。
-T显示文件系统类型。
-i显示inode信息。

df命令使用示例

  • 示例一:显示磁盘使用情况。

执行如下命令,显示磁盘使用情况。

df -h

执行上述命令返回结果如下所示。

df -h

  • 示例二:以inode模式来显示磁盘使用情况。
df -i

执行上述命令返回结果如下所示:

df -i

du命令

查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间。

df命令语法

du [参数] [文件或目录名称]

参数说明

参数说明
-a列出所有的文件与目录容量。
-h以G、M、K为单位,返回容量。
-s列出总量。
-S列出不包括子目录下的总量。
-k以KBytes为单位,返回容量。
-m以MBytes为单位,返回容量。

du命令使用示例

  • 示例一:列出当前目录下的所有文件夹的容量。

执行如下命令,列出当前目录下的所有文件夹的容量。

du -h

返回结果如下所示

  • 示例二:列出当前目录下的所有文件夹和文件的容量。

执行如下命令,列出当前目录下的所有文件夹和文件的容量。

du -ah

返回结果如下所示

du -ah

fidsk命令

查看磁盘的分区表。通常用于查看磁盘分区的详细信息。

fdisk命令语法

fdisk [-l] 装置名称

参数说明

参数说明
-l输出后面装置名称的所有的分区内容。若仅有 fdisk -l时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

fdisk命令使用示例

  • 示例一:列出系统所有装置的分区信息。

执行如下命令,列出系统所有装置的分区信息。

fdisk  -l 

返回结果如下所示。

磁盘分区

磁盘分区是磁盘管理中非常基础的部分。可以通过以下步骤进行分区操作:

  • 使用fdisk工具分区
    1. 打开分区工具:
fdisk /dev/sda

进入后,可以使用以下命令:

  • p:查看当前磁盘的分区情况。

  • n:创建新分区。

  • d:删除分区。

  • w:写入更改并退出。

  • 使用parted工具分区

相较于fdiskparted可以更好地支持大于2TB的磁盘。

parted /dev/sda

文件系统创建

创建分区后,必须为其创建文件系统。常见的文件系统类型有ext4xfs等。以下命令展示如何为新分区创建文件系统:

  • 创建ext4文件系统
sudo mkfs.ext4 /dev/sda1
  • 创建xfs文件系统
sudo mkfs.xfs /dev/sda1

挂载与卸载

创建文件系统后,你需要将其挂载到系统中的某个目录才能使用。

  • 挂载磁盘

挂载时,选择一个空目录作为挂载点。例如将/dev/sda1挂载到/mnt/disk1目录下:

sudo mount /dev/sda1 /mnt/disk1
  • 自动挂载

编辑/etc/fstab文件,使磁盘在系统启动时自动挂载。示例条目:

/dev/sda1  /mnt/disk1  ext4  defaults  0  2
  • 卸载磁盘

卸载挂载的磁盘:

sudo umount /mnt/disk1

磁盘扩容与缩小

当磁盘使用空间不够时,可能需要调整分区大小。以下工具用于调整分区大小:

调整ext4文件系统大小

  • 扩展分区:
sudo resize2fs /dev/sda1
  • 缩小分区:
sudo resize2fs /dev/sda1 SIZE

调整LVM分区大小

LVM是一个灵活的磁盘管理工具。使用LVM可以更轻松地扩展或缩小磁盘卷。以下为基本操作:

  • 扩展逻辑卷:
sudo lvextend -L +10G /dev/mapper/vg0-lv0
sudo resize2fs /dev/mapper/vg0-lv0
  • 缩小逻辑卷:
sudo resize2fs /dev/mapper/vg0-lv0 SIZE
sudo lvreduce -L -10G /dev/mapper/vg0-lv0

磁盘故障排查

磁盘使用一段时间后,可能会出现一些错误或者坏块。你可以使用fsck工具来检测并修复文件系统。

使用fsck工具检测和修复磁盘

sudo fsck /dev/sda1

总结

Linux系统的磁盘管理包括磁盘的查看、分区、文件系统的创建与管理、磁盘挂载、LVM管理等。掌握这些常见的操作工具和命令,可以帮助你高效地管理磁盘资源,保障系统的稳定运行。

推荐阅读