Проверить разделы с помощью sfdisk в python - PullRequest
0 голосов
/ 27 мая 2020

У меня ситуация, связанная с разными версиями sfdisk.

Мне нужно обновить приложение (python 2.7), которое использует sfdisk, с util- linux 2.20.1 (Ubuntu 14 ) to util- linux 2.34 (Ubuntu 20) В этой программе создается таблица разделов, после чего проверяется правильность системы разделов. Как вы можете видеть выше, выходные данные версий сильно меняются и делают текущий код несовместимым с новой версией sfdisk. Пример:

Ubuntu 14:

dd@laptop: ~ $ sudo sfdisk -V / dev / sdb

Предупреждение: нет основного раздел отмечен как загрузочный (активный)

Это не имеет значения для LILO, но DOS MBR не загрузит этот диск.

/ dev / sdb: OK

Ubuntu 20:

dd@laptop: ~ $ sudo sfdisk -V / dev / sdb

/ dev / sda:

Осталось 2382844 нераспределенных 512-байтовых секторов.

Проблема в том, что я не могу контролировать таблицу разделов. Приложение отлично работает на * util- linux 2.20.1 (Ubuntu 14), но не работает на util- linux 2.34 (Ubuntu 20), потому что мы используем комментарий «ОК» для проверки таблицы разделов .

Код приложения:

ret = check_call(['sudo','sfdisk','-q','-f',device], stdin=open(partition_table_file,'r'),stdout=devnull,stderr=devnull)
...
some code
...
ret = check_output(['sudo','sfdisk','-V','-L',device],stderr=STDOUT)
if ret.find(args.usb_dev+': OK') < 0:
   abort('Error: transferred partition table is corrupt:\n'+ret)
   return False

Может ли кто-нибудь предложить мне какое-либо альтернативное решение? Используя sfdisk, python или другую альтернативу?

Спасибо за ваше время.

PS. Извините, если я плохо пометил вопрос, но не знал, куда его поставить.

...