Ладно, с этим я разобрался.
Я заметил, что первая строка файла содержит любопытную строку:
% head -n 1 my_git_repo | strings
X11 forwarding request failed on channel 0
Эта строка кажется знакомой. Моя конфигурация SSH по умолчанию пытается перенаправить соединения X11, но когда это не удается --, например, при выполнении операций git на серверах git через ssh --, эта строка печатается в stderr:
$ git archive --remote=ssh://git@my.git.server/my_git_repo.git master > my_git_repo.tar
X11 forwarding request failed on channel 0
Я предполагаю, что библиотека, которая создала git-архив, захватила и stdout, и stderr, а не только stdout, что объясняет, как появилась первая строка этого файла.
Таким образом, если я удалю первую строку этого файла, я получу гораздо более разумный вывод изfile (1)
:
$ tail -n +2 my_git_repo > my_git_repo.edit
$ file my_git_repo.edit
my_git_repo.edit: Zip archive data, at least v1.0 to extract
И если я переименую файл в my_git_repo.zip
и попытаюсь просмотреть содержимое файла с помощью unzip -l
, я обнаружу, что он содержит файлы, которые я ожидал,и когда я извлекаю архив с unzip
, я получаю нужные мне файлы.
Я не уверен, откуда libmagic
взял идею, что этот файл был "архивом X1" для начала, но я предполагаю, что это связано с тем, что "X1" является первыми двумя символами поврежденного файла..
В Grub можно редактировать параметры загрузки. После добавления usb-storage.quirks=152d:8561:u
в конец строки с опциями (перед quiet splash --
, в моем случае, отделенной пробелом от других опций ), док-станция для жесткого диска может использоваться и в реальной среде.
В действующей системе вы можете сделать это, если сможете отключить и снова -включить модуль usb_storage
.
Проверьте, позволяет ли ваша конфигурация принудительно выгружать модули. В зависимости от вашего дистрибутива это что-то вроде
grep FORCE_UNLOAD /boot/config-$(uname -r)
Проверьте, что может зависеть от этого модуля
modinfo -F depends usb_storage
Теперь, если вы можете выгрузить модули, установите свои причуды в /sys/module/usb_storage/parameters/quirks
, а также в /etc
для следующей перезагрузки.
Сначала проверьте, есть ли они уже, чтобы не перезаписать их:
cat /sys/module/usb_storage/parameters/quirks
Если настроенных причуд еще нет, то можно продолжать. (Я помещаю идентификаторы ваших устройств в переменную, чтобы другим было проще копировать/вставлять данные с других устройств ).
id="152d:8561"
echo "$id:u" > /sys/module/usb_storage/parameters/quirks
echo "options usb-storage quirks=$id:u" > /etc/modprobe.d/local-disable-uas.conf
Теперь вы сможете перезапустить модуль:
rmmod -f usb_storage
modprobe usb_storage