У меня ситуация, связанная с разными версиями 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. Извините, если я плохо пометил вопрос, но не знал, куда его поставить.