在磁盘上找到超级块
Find the superblock on disk
我必须在工作中编写 python 脚本。我的脚本必须打印满足某些条件的所有设备。其中一个条件是超级块。设备必须有超级块。
其他条件:
- 任何分区都没有挂载 - 完成
- 任何分区都不在 raid 中 - 完成
- uuid 不在 fstab 中 - 完成
- arr uuid 在 mdadm.conf - 完成
- 设备有超级块 - ??????
有人知道怎么做吗?我不得不承认我没有。没必要按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 的更多信息:
我必须在工作中编写 python 脚本。我的脚本必须打印满足某些条件的所有设备。其中一个条件是超级块。设备必须有超级块。
其他条件:
- 任何分区都没有挂载 - 完成
- 任何分区都不在 raid 中 - 完成
- uuid 不在 fstab 中 - 完成
- arr uuid 在 mdadm.conf - 完成
- 设备有超级块 - ??????
有人知道怎么做吗?我不得不承认我没有。没必要按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 的更多信息: