partprobe 与 partx 的详细比较

partprobe 与 partx 的详细比较

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

1. 作用

  • partprobe:

    • partprobe 用于通知内核分区表已更改。
    • 它是 GNU parted 软件包的一部分,通过扫描磁盘来确保内核更新其内部的分区表,使分区变更生效(如新增、删除、调整分区大小等)。
    • 使用场景 :当你对磁盘分区进行修改后(如使用 fdisk 或 parted 工具),可以使用 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 直接触发内核重新扫描磁盘的分区表。如果分区表已经被修改(例如使用 fdisk 或 parted),partprobe 会强制内核更新其分区信息。
    • 限制:如果某些分区正在被使用(如已挂载),内核可能无法更新分区表,此时可能需要重启系统才能使更改生效。
  • partx:

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

4. 主要区别

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

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

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

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

总结

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

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

相关推荐
the3clipse9 小时前
MacOS、Linux 与 Windows 视频编解码对比:AV1、HEVC、ProRes 与硬件加速优劣势
linux·windows·macos·hevc·av1·视频解码·硬件解码
s6516654969 小时前
bootsect.s,setup.s,head.s的主要功能和对系统状态的影响、作用
linux
夜雪一千9 小时前
Python URL解码详解:单层、双重URL解码实战与踩坑指南
linux·服务器·python
咯哦哦哦哦9 小时前
配置VNC sever 6.11.0版本 linux(激活码)
linux·运维·服务器
傲世仙尊9 小时前
序列化与自定义协议-把结构体拆成字节流再拼回来
linux·服务器·网络·arm开发
꯭自꯭闭꯭9 小时前
DM主备集群以及读写分离集群搭建
linux·运维·数据库
倔强的石头1069 小时前
【Linux指南】动静态库系列(九):动态库如何进入进程地址空间:从磁盘 .so 到共享内存映射
java·linux·服务器
脚踏实地,坚持不懈!9 小时前
Linux 内核源码解析:从 secondary_startup_64 到 pick_eevdf 的完整调用栈分析
android·linux·arm开发
xbzb9 小时前
Linux iSCSI 存储部署与 CHAP 认证完全指南
linux·服务器·iscsi·chap·共享硬盘
IT大白鼠10 小时前
彭大帅的AI运维助手——自然语言管理 Linux 集群与网络设备——第 5 篇 · 多模态与虚拟化AI 能「看」图:多模态与虚拟化管理
linux·运维·人工智能