partprobe 与 partx 的详细比较

partprobepartx 的详细比较

partprobepartx 都是 Linux 系统中用于告知内核分区表变更的工具,但它们的使用场景、功能和行为存在差异。以下是这两者的详细比较。

1. 作用

  • partprobe

    • partprobe 用于通知内核分区表已更改。
    • 它是 GNU parted 软件包的一部分,通过扫描磁盘来确保内核更新其内部的分区表,使分区变更生效(如新增、删除、调整分区大小等)。
    • 使用场景 :当你对磁盘分区进行修改后(如使用 fdiskparted 工具),可以使用 partprobe 使这些更改立即生效,而无需重启系统。
  • partx

    • partx 属于 util-linux 软件包,用于在内核中添加、删除或列出分区,但它并不会直接修改磁盘上的分区表。
    • 它既可以作用于块设备 ,也可以作用于分区表文件
    • 使用场景:在不修改磁盘分区表的前提下,管理内核中的分区信息(如新增分区、删除分区或列出分区)。

2. 常用命令

  • partprobe

    • 重新读取磁盘的分区表:

      bash 复制代码
      sudo partprobe /dev/sdX

      这会让内核重新读取指定设备(如 /dev/sda)的分区表。

  • partx

    • 列出分区

      bash 复制代码
      sudo partx --show /dev/sdX

      列出指定设备上的所有分区。

    • 将分区添加到内核

      bash 复制代码
      sudo partx --add /dev/sdX

      将磁盘上的分区添加到内核的分区表中,但不会修改磁盘上的实际分区表。

    • 从内核中删除分区

      bash 复制代码
      sudo partx --delete /dev/sdX

      从内核的分区表中删除指定分区,而不影响磁盘上的分区数据。

    • 处理分区表文件 : 你还可以使用 partx 从分区表文件(如磁盘镜像)中读取分区信息:

      bash 复制代码
      sudo partx --show /path/to/disk-image.img

3. 行为差异

  • partprobe

    • partprobe 直接触发内核重新扫描磁盘的分区表。如果分区表已经被修改(例如使用 fdiskparted),partprobe 会强制内核更新其分区信息。
    • 限制:如果某些分区正在被使用(如已挂载),内核可能无法更新分区表,此时可能需要重启系统才能使更改生效。
  • partx

    • partx 仅在内核层面操作,并不会修改磁盘上的分区表。它只管理内核对分区的视图。
    • partx 尤其适合在无需修改磁盘分区表的情况下动态地在内核中添加或删除分区。

4. 主要区别

功能 partprobe partx
所属软件包 parted 软件包的一部分 util-linux 软件包的一部分
主要用途 重新读取磁盘上的分区表并通知内核 管理内核中的分区信息(添加、删除、列出)
是否修改磁盘上的分区表? 否(仅通知内核) 否(只修改内核的分区视图)
支持分区表文件操作?
可以在内核中添加/删除分区?
典型使用场景 在修改分区后使内核更新分区表 列出、添加或删除内核中的分区,而不影响磁盘

5. 什么时候使用哪一个?

  • 使用 partprobe :当你对磁盘分区进行物理修改后(如通过 fdiskparted 添加、删除或调整分区),想让内核立即生效时使用 partprobe,而不需要重启系统。

  • 使用 partx :当你需要在内核中管理分区(如动态添加或删除分区),但不希望修改实际的磁盘分区表时使用 partx。它也适用于处理分区表文件(如磁盘镜像)。

总结

  • partprobe 是用于重新通知内核,磁盘上的分区表已被更改,让内核同步更新分区信息。
  • partx 是用于在不修改磁盘分区表的情况下,列出、添加或删除内核中的分区。

partprobe 更适合在你实际修改磁盘分区表后使用,而 partx 则适合在需要对内核中的分区表进行动态管理时使用。

相关推荐
寂柒1 小时前
信号量——基于环形队列的生产消费模型
linux·ubuntu
林姜泽樾5 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe5 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子5 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
Highcharts.js6 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts
c++之路7 小时前
Linux网络协议与编程基础:TCP/IP协议族全解析
linux·网络协议·tcp/ip
Charlie__ZS8 小时前
Ubuntu 22.04新建用户,并赋予管理权限
linux·os·ubuntn
keep intensify8 小时前
康复训练 5
linux·c++
OxyTheCrack9 小时前
【C++】详细拆解std::mutex的底层原理
linux·开发语言·c++·笔记
sa100279 小时前
淘宝商品详情 API 接口开发实战:item_detail 调用、参数与 Python 示例
linux·数据库·python