在磁盘上找到超级块

Find the superblock on disk

我必须在工作中编写 python 脚本。我的脚本必须打印满足某些条件的所有设备。其中一个条件是超级块。设备必须有超级块。

其他条件:

  1. 任何分区都没有挂载 - 完成
  2. 任何分区都不在 raid 中 - 完成
  3. uuid 不在 fstab 中 - 完成
  4. arr uuid 在 mdadm.conf - 完成
  5. 设备有超级块 - ??????

有人知道怎么做吗?我不得不承认我没有。没必要按python来管理。有什么方法可以检查吗? :)

非常感谢。

您可以 grep dumpe2fs device_name 的输出以查找 "superblock at".

的存在

这是我的 Centos 5 linux 系统上的示例:

>>> import shlex, subprocess
>>> filesystems = ['/dev/mapper/VolGroup00-LogVol00', '/dev/vda1', 'tmpfs']
>>> for fs in filesystems:
...     command = '/sbin/dumpe2fs ' + fs
...     p = subprocess.Popen(shlex.split(command),stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
...     output = p.communicate()[0]
...     if 'superblock at' in output:
...             print "{fs} has superblock".format(fs=fs)
...     else:
...             print "No superblock found for {fs}".format(fs=fs)
...
/dev/mapper/VolGroup00-LogVol00 has superblock
/dev/vda1 has superblock
No superblock found for tmpfs

有关 dumpe2fs 的更多信息:

http://linux.die.net/man/8/dumpe2fs