侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux partprobe命令教程:如何刷新分区表不重启系统(附实例详解和注意事项)

Linux partprobe命令介绍

partprobe 是一个由GNU Parted软件包提供的实用程序,用于通知操作系统内核重新检测指定磁盘分区的大小和布局。当你创建、删除或修改硬盘分区后,partprobe 可以强制内核读取分区表而无需重启系统。

Linux partprobe命令适用的Linux版本

partprobe 命令通常适用于大多数Linux发行版,包括但不限于Ubuntu, Fedora, Debian, CentOS 和 Arch Linux。不过,CentOS 7和CentOS 8在安装工具上略有不同,具体安装命令如下:

CentOS 7

[linux@bashcommandnotfound.cn ~]$ sudo yum install parted

CentOS 8

[linux@bashcommandnotfound.cn ~]$ sudo dnf install parted

在其他基于Debian的系统上,可以使用以下命令安装:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install parted

Linux partprobe命令的基本语法

语法格式如下:

partprobe [options] [devices...]

Linuxpartprobe命令的常用选项或参数说明

选项说明
-d, --dry-run仅显示将要执行的操作,但实际上不执行
-s, --summary显示分区表的摘要
-h, --help显示帮助信息并退出
-v, --version显示版本信息并退出

Linux partprobe命令实例详解

实例1:刷新所有磁盘的分区表

如果你不确定哪个磁盘的分区表需要刷新,可以运行partprobe不带任何参数,这将刷新所有磁盘的分区表。

[linux@bashcommandnotfound.cn ~]$ sudo partprobe

实例2:刷新特定磁盘的分区表

当您只想刷新特定磁盘的分区表时,可以指定磁盘设备。

[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda

实例3:查看将要执行的操作(模拟运行)

在实际刷新分区表之前,你可能想知道partprobe将执行哪些操作,可以使用--dry-run选项。

[linux@bashcommandnotfound.cn ~]$ sudo partprobe --dry-run

实例4:显示分区表摘要

有时候你可能想要快速查看分区表的摘要信息,可以使用--summary选项。

[linux@bashcommandnotfound.cn ~]$ sudo partprobe --summary

实例5:刷新特定分区

如果你只修改了一个磁盘上的特定分区,比如 /dev/sda1,你可以只刷新这个分区:

[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda1

这条命令将仅刷新 /dev/sda1 这个分区。

实例6:在脚本中检测partprobe是否成功

在自动化脚本中,你可能需要检测 partprobe 是否成功执行。可以通过检查退出状态码来实现:

[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda
[linux@bashcommandnotfound.cn ~]$ if [ $? -eq 0 ]; then echo "Partprobe succeeded"; else echo "Partprobe failed"; fi

如果 partprobe 成功执行,退出状态码 ($?) 将为0,否则非0。

实例7:在创建新分区后使用partprobe

当你使用 fdiskgdisk 创建新分区后,你可以使用 partprobe 使新分区立即可用:

# 假设你已经创建了 /dev/sda3
[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda

这样你就不需要重启系统来访问新创建的 /dev/sda3 分区。

实例8:查看partprobe版本

有时候了解 partprobe 的版本很重要,尤其是在调试或报告错误时:

[linux@bashcommandnotfound.cn ~]$ partprobe --version

实例9:在使用partprobe前卸载分区

在刷新分区之前,确保分区未被挂载或正在使用。如果需要,可以先卸载它:

[linux@bashcommandnotfound.cn ~]$ sudo umount /dev/sda1
[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda

首先卸载 /dev/sda1 然后执行 partprobe

实例10:结合lsblk使用partprobe查看更新结果

在使用 partprobe 更新分区表后,可以使用 lsblk 查看更新结果:

[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda
[linux@bashcommandnotfound.cn ~]$ lsblk /dev/sda

lsblk 命令将列出 /dev/sda 的所有分区,包括新刷新的分区。

实例11:使用partprobe和mkfs创建和格式化新分区

如果你创建了一个新分区并且想要格式化它,可以在 partprobe 之后立即使用 mkfs

[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda
[linux@bashcommandnotfound.cn ~]$ sudo mkfs.ext4 /dev/sda3

这将格式化 /dev/sda3 分区为 ext4 文件系统。

实例12:使用partprobe后检查dmesg

有时候,更新分区表后,内核会输出一些消息。使用 dmesg 可以查看这些消息:

[linux@bashcommandnotfound.cn ~]$ sudo partprobe /dev/sda
[linux@bashcommandnotfound.cn ~]$ dmesg | tail

这将显示最新的内核消息,其中可能包含分区更新的相关信息。

Linux partprobe命令的注意事项

  • 使用partprobe时需要具有root权限,因为它可能会修改内核的分区表。
  • 如果执行partprobe后发现命令不可用,可能是因为系统中未安装parted包,你需要按照上面的指引进行安装。
  • 在使用partprobe之前,请确保没有任何程序正在使用你要操作的分区,否则这可能会导致数据丢失。
  • 如果收到bash: partprobe: command not found的错误提示,意味着你需要安装parted包来获取partprobe命令。
  • 在生产环境中使用partprobe时应格外小心,因为它可能会影响正在运行的系统和服务。
0

评论区