Я заменил карту MicroSD в своем мобильном телефоне (Samsung Galaxy S4 Mini с CyanogenMod 11 с шифрованием) на карту большего размера. Прежде чем извлечь старый файл, я скопировал его содержимое в файл tar:
/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C016%5D/SD card$ tar czvf ~/tmp/sgm4/sdcard.tar.gz *
Затем заменил карту, отформатировал новый и попытался восстановить мои файлы:
/run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C017%5D/SD card$ tar xzvf ~/tmp/sgm4/sdcard.tar.gz
Файлы были восстановлены, но для каждого из них я получил сообщение об ошибке, например:
00001.vcf
tar: 00001.vcf: Cannot utime: Operation not supported
Сообщая, что tar
не может восстановить исходную метку времени файлов. Это подтверждается ls -l
- показывает текущую дату и время.
Обычно я бы об этом не беспокоился, но в Android / data есть файлы, которые принадлежат приложениям, которые могут быть чувствительны к временным меткам.
Есть ли какая-либо опция монтирования или другая магия, которая позволит устанавливать временные метки файлов в смонтированной файловой системе mtp?
Связана ли проблема со мной при использовании шифрования?
Использование lubuntu 15.04.
Обновление
Оказалось, что сама карта MicroSD была отформатирована с использованием файловой системы vfat без какого-либо шифрования. Я вытащил его из телефона, подключил к другому компьютеру (Ubuntu 14.04) и смог распаковать другой архив без каких-либо ошибок. Временные метки распакованных файлов были восстановлены правильно.
Похоже, что неспособность установить временную метку файла является чем-то специфичным для mtp. Кто-нибудь знает, как это преодолеть?
Вы получаете эту ошибку, когда у Вас нет верных полномочий в целевом каталоге, в этом случае/tmp, или если Вы извлекаете к файловой системе не-Linux (vfat или ntfs).
Извлечение или делает архив к местоположению, которым Вы владеете, такие как Ваш корневой каталог.