当对分区进行创建、修改等操作后,如何让Linux系统及时识别这些变化呢?本文将详细介绍partprobe命令,它能在不重启系统的情况下,让内核快速读取分区表的更改信息,方便又高效。

一、partprobe是什么

partprobe是一个在Linux系统里非常实用的命令行工具。简单来说,当我们对磁盘的分区表进行了一些修改,比如新建了分区、调整了分区大小,不想重启系统就能让内核知道这些变化,这时候partprobe就派上用场了,它能强制内核重新读取指定磁盘的分区表,这样系统就能及时识别新的分区设置。

二、partprobe的安装方法

在不同的Linux发行版中,安装partprobe的方式有所不同。

(一)Debian和Ubuntu系统

在Debian和Ubuntu系统下,安装partprobe需要先更新软件源,确保获取到最新的软件包信息,然后再安装parted软件包,因为partprobeparted工具集的一部分。具体命令如下:

# 更新软件源,获取最新的软件包信息 sudo apt update # 安装parted软件包,从而获取partprobe工具 sudo apt install parted 

(二)RHEL、CentOS和Fedora系统

对于RHEL、CentOS和Fedora系统,安装方式根据系统版本有所区别。CentOS/RHEL 7系统使用yum命令进行安装,而Fedora和RHEL 8及以上版本则使用dnf命令安装。

# CentOS/RHEL 7系统使用yum安装parted软件包 sudo yum install parted # Fedora, RHEL 8+系统使用dnf安装parted软件包 sudo dnf install parted 

三、partprobe的使用方法

学会安装后,接下来看看如何使用partprobe

(一)通知内核分区表更改

想要让内核知道分区表有变化,最直接的方法就是使用下面的命令,它会扫描系统里所有的块设备,一旦发现有分区表的更改,就会马上通知内核。

sudo partprobe 

(二)指定磁盘进行操作

如果只想针对某一个特定的磁盘更新分区表信息,可以在partprobe命令后面加上磁盘设备名,比如/dev/sdX(这里的X代表实际的磁盘标识,像ab等)。

sudo partprobe /dev/sdX 

(三)检查内核是否识别分区

更新完分区表后,我们还需要确认内核是不是真的识别了新的分区。可以使用下面几个命令来检查:

  • lsblk:这个命令会以一种比较直观的树形结构展示系统中所有的块设备信息,包括磁盘、分区等,能让我们快速看到分区的情况。
  • fdisk -l:它会列出所有磁盘的分区表信息,详细展示每个分区的大小、类型等参数。
  • cat /proc/partitions:这个命令能查看/proc/partitions文件的内容,该文件记录了内核当前识别到的所有分区的相关信息。

四、何时需要使用partprobe

在实际的Linux系统管理中,有很多场景都需要用到partprobe

(一)创建或修改分区后

当我们使用fdiskgdisk或者parted这些工具来创建新分区,或者修改已有分区的大小、类型等属性时,为了让系统及时识别这些更改,就需要在操作完成后运行partprobe命令。比如,用fdisk工具在/dev/sdX磁盘上新建了一个分区,紧接着就要执行下面的命令,让内核重新读取分区表,识别新分区。

sudo partprobe /dev/sdX 

(二)在parted中使用mklabel之后

parted工具里,如果使用了mklabel命令来创建或更改分区表的标签类型(例如从MBR改为GPT),同样需要运行partprobe,才能让系统识别新的分区表设置。具体操作如下:

# 使用parted在指定磁盘上设置分区表标签为GPT sudo parted /dev/sdX mklabel gpt # 通知内核更新分区表信息 sudo partprobe /dev/sdX 

(三)当fdisk -l显示旧分区时

有时候,执行fdisk -l命令发现显示的还是旧的分区信息,这说明内核可能没有及时更新分区表。这时候,可以尝试使用partx -u命令来替代partprobe。例如:

sudo partx -u /dev/sdX 

(四)注意事项:分区正在使用时的处理

需要注意的是,如果某个分区正在被系统使用,比如挂载在某个目录下,这时候运行partprobe可能会失败。遇到这种情况,要先卸载正在使用的分区,然后再运行partprobe。例如:

# 卸载指定的分区,假设分区为/dev/sdX1 sudo umount /dev/sdX1 # 运行partprobe更新分区表信息 sudo partprobe /dev/sdX 

掌握partprobe命令的使用,能帮助我们更高效地管理Linux系统中的磁盘分区。希望本文的内容能让大家对partprobe有更深入的理解和运用。