1

Я пытаюсь переформатировать микро SD-карту, которая ранее была в Raspberry Pi (и перестал работать). Однако, когда я подключаю его к своему основному компьютеру (arch) и пытаюсь его разбить, я не могу, потому что gparted говорит, что у него нет таблицы разделов. Когда я пытаюсь исправить это, добавив таблицу разделов (GPT), я получаю ошибки ниже. Как я могу исправить мою карту USB?

Я также включил вывод dmesg при подключении, если это поможет. У меня нет доступа к любой другой ОС, поэтому я не могу просто попробовать что-то в Windows.

Вывод gparted при попытке поставить таблицу разделов на карту:

/dev/mmcblk0: unrecognised disk label
Input/output error during write on /dev/mmcblk0
Error fsyncing/closing /dev/mmcblk0: Input/output error

вывод dmesg, когда карта подключена:

[99702.919024] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedure, falling back to fixed sampling clock
[99702.919048] mmc0: new ultra high speed SDR104 SDHC card at address 59b4
[99702.920575] mmcblk0: mmc0:59b4 00000 7.35 GiB 
[99702.930961] mmc0: Controller never released inhibit bit(s).
[99712.952421] mmc0: Timeout waiting for hardware interrupt.
[99712.952498] mmcblk0: error -110 sending status command, retrying
[99712.954084] mmcblk0: unknown error -5 sending read/write command, card status 0x900
[99714.412427] sdhci: Timeout waiting for Buffer Read Ready interrupt during tuning procedure, falling back to fixed sampling clock
[99714.412447] mmc0: tried to reset card
[99714.422507] mmc0: Controller never released inhibit bit(s).
[99724.445769] mmc0: Timeout waiting for hardware interrupt.
[99724.445834] mmcblk0: error -110 sending status command, retrying
[99724.448129] mmcblk0: unknown error -5 sending read/write command, card status 0x900
[99724.448136] blk_update_request: I/O error, dev mmcblk0, sector 0
[99724.448140] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[99724.448668] ldm_validate_partition_table(): Disk read failed.
[99724.448673]  mmcblk0: unable to read partition table

2 ответа2

1

Существует известная ошибка в Linux Kernel 4.4-rc4 и более поздних версиях (она сохраняется и сегодня). Вы можете прочитать об этой ошибке и возможном обходном пути на kernel.org.

По сути, он выходит из строя, чтобы отключить опциональные запросы функций, которые фактически приводят к зависанию оборудования кард-ридера:


Временное решение

  1. Выгрузите модули SDHC с

rmmod sdhci sdhci_pci sdhci_acpi

  1. Перезагрузите модули с параметрами, чтобы отключить дополнительные функции с

modprobe sdhci debug_quirks2="0x10000"

  1. Загрузите модуль sdhci_pci снова с помощью modprobe sdhci_pci

Попробуйте еще раз с вашей SD-картой. Хотя для инициализации может потребоваться несколько секунд (потому что время запросов все еще истекло, но мы игнорируем это сейчас).

Если это работает для вас, переходите к постоянному решению


Постоянный обходной путь

Пожалуйста, обратите внимание, что это все еще обходной путь и может потерпеть неудачу в будущем. Вы должны отключить обходной путь для будущих версий ядра, чтобы увидеть, была ли исправлена ошибка.

  1. Создайте файл конфигурации modprobe в /etc/modprobe.d (или там, где ваш дистрибутив хранит файлы конфигурации) и запишите туда параметры модуля. Имя не имеет значения, если оно заканчивается на .conf.

echo 'options sdhci debug_quirks2="0x10000"' > /etc/modprobe.d/dell_sdhci.conf

Опции будут загружены при загрузке в будущем. Если это не так, вы можете попытаться взломать временное исправление в сценарии запуска, как очень грязное, но возможное решение.

-1

Эта SD-карта неисправна или повреждена, или электрические контакты неисправны. Попробуйте еще раз после очистки их. Если это все еще не удается, то пришло время для новой SD-карты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .