我正在为Bash for Linux系统编写脚本.如何以健壮的方式检查磁盘的分区?
我可以使用grep,awk或sed来解析fdisk,sfdisk等的输出,但这似乎不是一门精确的科学.
我还可以检查/ dev中是否存在分区,但是分区也可能存在并且尚未被探测(作为示例,通过partprobe).
你会推荐什么?
解决方法:
我想我找到了一个可靠的方法.在阅读手册页时,我偶然学到了partprobe的更多功能:
-d Don’t update the kernel.
-s Show a summary of devices and their partitions.
一起使用,我可以在不更新内核的情况下扫描磁盘以获取分区,并获得可靠的解析输出.它仍在解析文本,但至少输出不像fdisk或sfdisk那样“面向人”.这也是从磁盘读取的信息,并不依赖于内核对此磁盘的分区状态是最新的.
看一看:
在没有分区表的磁盘上:
# 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则没有).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。