gpt4 book ai didi

linux - 如何检查磁盘分区以在 Linux 中的脚本中使用?

转载 作者:IT王子 更新时间:2023-10-29 01:16:06 24 4
gpt4 key购买 nike

我正在用 Bash 为 Linux 系统编写一些脚本。我如何以稳健的方式检查磁盘的分区?

我可以使用 grepawksed 来解析 fdisk 的输出sfdisk 等,但这似乎不是一门精确的科学。

我还可以检查 /dev 中是否有分区,但也有可能分区存在但尚未被探测(通过 partprobe,如一个例子)。

你会推荐什么?

最佳答案

我想我想出了一个可靠的方法。我在阅读手册页时无意中了解了 partprobe 的更多功能:

-d     Don’t update the kernel.
-s Show a summary of devices and their partitions.

结合使用,我可以在不更新内核的情况下扫描磁盘分区,并获得可靠的输出进行解析。它仍在解析文本,但至少输出不像 fdisksfdisk 那样“以人为本”。这也是从磁盘读取的信息,不依赖于内核是否是该磁盘分区状态的最新信息。

看看:

在没有分区表的磁盘上:

# partprobe -d -s /dev/sdb
(no output)

在有分区表但没有分区的磁盘上:

# partprobe -d -s /dev/sdb
/dev/sdb: msdos partitions

在具有分区表和一个分区的磁盘上:

# partprobe -d -s /dev/sdb
/dev/sdb: msdos partitions 1

在具有分区表和多个分区的磁盘上:

# partprobe -d -s /dev/sda
/dev/sda: msdos partitions 1 2 3 4 <5 6 7>

重要的是要注意,无论现有的分区表或分区如何,每个退出状态都是 0。此外,我还注意到这些选项不能组合在一起(partprobe -d -s/dev/sdb 有效,而 partprobe -ds/dev/sdb 无效)。

关于linux - 如何检查磁盘分区以在 Linux 中的脚本中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26873289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com