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 则适合在需要对内核中的分区表进行动态管理时使用。

相关推荐
戴为沐10 小时前
Linux内存扩容指南
linux
zylyehuo20 小时前
Linux 彻底且安全地删除文件
linux
用户805533698031 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297911 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo3 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10154 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao5 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3106 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏