Linux 磁盘管理fdisk、lsblk、mount 及 resize2fs 命令

在Linux系统中,磁盘管理是系统管理员日常工作中不可或缺的一部分。无论是添加新硬盘、调整分区大小,还是挂载文件系统,都需要用到一系列工具和命令。本文将详细介绍 fdisklsblkmountresize2fs 这四个常用命令,帮助你掌握Linux磁盘管理的核心技能。

fdisk:磁盘分区工具

fdisk 是一个交互式的磁盘分区工具,用于创建、删除、修改和查看磁盘分区表。它支持MBR(主引导记录)格式的分区表。

常用功能

  • 查看磁盘分区信息
  • 创建新分区
  • 删除现有分区
  • 修改分区类型

使用步骤

  • 查看磁盘设备

使用 lsblkfdisk -l 查看当前系统中的磁盘设备。

1
sudo fdisk -l
  • 进入交互模式

对指定磁盘(如 /dev/sdb)进行操作:

1
sudo fdisk /dev/sdb
  • 常见命令

    • p:打印当前分区表。
    • n:创建新分区。
    • d:删除分区。
    • t:更改分区类型。
    • w:保存并退出。
    • q:不保存直接退出。
  • 注意事项

    • 操作前确保数据已备份,避免误操作导致数据丢失。
    • 分区完成后需要使用 partprobe 刷新分区表,或者重启系统。

lsblk:列出块设备信息

lsblk 是一个简单而强大的命令,用于显示系统中所有块设备及其挂载点的信息。

常用选项

  • -f:显示文件系统信息。
  • -m:显示权限信息。
  • -d:仅显示设备,不显示子设备。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看所有块设备及其挂载点
lsblk

# 显示文件系统类型和挂载点
lsblk -f

lsblk
# 结果如
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 1000G 0 disk
└─sdb1 8:17 0 1000G 0 part /data
sda 8:0 0 50G 0 disk
└─sda1 8:1 0 50G 0 part /

输出解释

列名含义
NAME设备名称
MAJ:MIN主次设备号
RM是否可移除(1 表示可移除)
SIZE设备大小
RO是否只读(1 表示只读)
TYPE设备类型(disk、part 等)
MOUNTPOINT挂载点

mount:挂载文件系统

mount 命令用于将文件系统挂载到指定目录(挂载点),使用户能够访问存储设备中的数据。

常用语法

1
sudo mount [选项] 设备名 挂载点

示例

  • 挂载分区

    /dev/sdb1 挂载到 /mnt/data

1
2
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
  • 查看已挂载的文件系统
1
2
3
mount
# 或
df -h
  • 卸载分区

卸载 /mnt/data

1
sudo umount /mnt/data

注意事项

  • 如果提示设备忙,可能是有进程正在使用该设备,可以使用 lsof 查看并终止相关进程。
  • 永久挂载需要编辑 /etc/fstab 文件。

resize2fs:调整文件系统大小

resize2fs 是专门用于调整ext2/ext3/ext4文件系统大小的工具。通常与 fdiskparted 配合使用。

常用语法

1
sudo resize2fs [选项] 设备名 [大小]

示例

  • 扩展文件系统 调整 /dev/sdb1 的文件系统以填满整个分区:
1
sudo resize2fs /dev/sdb1
  • 缩小文件系统/dev/sdb1 缩小到 50GB:
1
sudo resize2fs /dev/sdb1 50G

注意事项

  • 缩小文件系统前,必须先缩小分区大小(使用 fdisk 或其他工具)。
  • 确保文件系统处于未挂载状态或只读状态,否则可能导致数据损坏。

综合案例:添加新硬盘并调整分区大小

场景描述

假设你新增了一块硬盘 /dev/sdb,需要对其进行分区、格式化、挂载,并调整文件系统大小。

操作步骤

  • 查看新硬盘
1
lsblk
  • 创建分区

使用 fdisk 创建一个新分区 /dev/sdb1

1
sudo fdisk /dev/sdb

按照提示输入 n 创建新分区,最后输入 w 保存。

  • 刷新分区表
1
sudo partprobe
  • 格式化分区

格式化为 ext4 文件系统:

1
sudo mkfs.ext4 /dev/sdb1
  • 挂载分区

创建挂载点并挂载:

1
2
sudo mkdir -p /mnt/newdisk
sudo mount /dev/sdb1 /mnt/newdisk
  • 调整文件系统大小

如果需要扩展文件系统:

1
sudo resize2fs /dev/sdb1
  • 设置开机自动挂载

编辑 /etc/fstab 文件,添加如下内容:

1
/dev/sdb1    /mnt/newdisk    ext4    defaults    0    0

总结

通过掌握 fdisklsblkmountresize2fs 这些核心命令,你可以轻松应对Linux系统中的磁盘管理工作。无论是日常运维还是故障排查,这些工具都能为你提供极大的便利。建议在实际操作前充分了解每个命令的功能和风险,确保数据安全。