Я использовал версию Rho "0.0.34" и версию 2.8. Существует проблема с исходным кодом rho на Python. В файле /usr/lib/python2.7/site-packages/rho/host_discovery.py
на строке № 53. Должно быть CHANGED
вместо SUCCESS
.
Глядя на код, можно увидеть разницу в том, как libparted и libblkid определяют версию ext. Версия не записана в суперблоке, и оба инструмента используют поддерживаемые функции для различения версий.
Для ext3 без журнала оба инструмента будут сообщать о ext2, что имеет смысл, поскольку разница между ними заключается в основном только в поддержке журнала.
Для ext4 libblkid проверяет специальные функции ext4, такие как поддержка больших файлов или типов файлов, и, если они присутствуют, сообщает об устройстве как ext4. Libparted выполняет аналогичные проверки, но только при наличии журнала, поэтому он будет сообщать о каждой файловой системе ext без журнала как о ext2. Я бы сказал, что это ошибка, но я думаю, это зависит.
Код сканирования суперблока Libblkid ext доступен здесь обратите внимание, что probe_ext3
проверяет поддержку журнала, а probe_ext4
нет.
Библиотечный код ext доступен здесь и в _ext2_generic_probe
он проверяет наличие ext4 только тогда, когда проверка ext3 проходит успешно, поэтому он никогда не будет пытаться обнаружить ext4 на устройствах без журнала.