У меня странная проблема со сжатием tar gz.
Раньше у меня была SD-карта, смонтированная как раздел FAT32. Однако теперь я изменил его так, чтобы внешняя sdcard монтировалась в /data/media/0 и форматировалась в ext4 (или f2fs - без разницы, потому что эта ошибка возникает на обоих).
В старой настройке я мог запустить
tar cvzf
в папке в этом разделе без проблем.
Однако в этой новой настройке, если я запущу ее, я получу
tar cvzf
Segmentation fault.
Я обнаружил, что если я удалю параметр z, все будет нормально. Но полученный tar-файл не сжат gz и, следовательно, не подходит для моих приложений.
Я подтвердил это поведение на двух разных ПЗУ: CarbonRom JB 4.3.1 и CarbonRom KK 4.4.4.
Кто-нибудь знает, что здесь может быть не так? Android не может использовать файлы tar.gz на разделах, отличных от FAT32, или это вызвано какой-то другой проблемой?
Я до сих пор не знаю, в чем причина проблемы, но я нашел решение/обходной путь, который делает то же самое.
Вместо прямого вызова gzip из tar следующим образом:
tar cvzf
Я передаю вывод tar в gzip следующим образом:
tar -cv directory/ | gzip > archive.tar.gz
и ошибки сегментации больше нет.
Дэн Халм
tar
бинарник? Вероятно, библиотека zlib не была скомпилирована должным образом или отсутствует.локхид