Найти суперблок на диске
Я должен написать скрипт Python в моей работе. Мой скрипт должен распечатывать все устройства, которые удовлетворяют некоторым условиям. Одним из таких условий является суперблок. Устройство должно иметь суперблок.
другие условия:
- ни один раздел не смонтирован - СДЕЛАНО
- ни одного раздела нет в рейде - СДЕЛАНО
- UUID не находится в Fstab - СДЕЛАНО
- arr uuid находится в mdadm.conf - СДЕЛАНО
- Устройство имеет суперблок -?????
Есть ли кто-нибудь, кто знает, как это сделать? Я должен признаться, что у меня их нет. Нет необходимости управлять им с помощью Python. Есть ЛЮБОЙ способ как это проверить?:)
Большое спасибо.
1 ответ
Решение
Вы можете получить вывод dumpe2fs device_name
для существования "суперблока при".
Вот пример моей системы 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: