Найти суперблок на диске

Я должен написать скрипт Python в моей работе. Мой скрипт должен распечатывать все устройства, которые удовлетворяют некоторым условиям. Одним из таких условий является суперблок. Устройство должно иметь суперблок.

другие условия:

  1. ни один раздел не смонтирован - СДЕЛАНО
  2. ни одного раздела нет в рейде - СДЕЛАНО
  3. UUID не находится в Fstab - СДЕЛАНО
  4. arr uuid находится в mdadm.conf - СДЕЛАНО
  5. Устройство имеет суперблок -?????

Есть ли кто-нибудь, кто знает, как это сделать? Я должен признаться, что у меня их нет. Нет необходимости управлять им с помощью 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:

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

Другие вопросы по тегам