Не могу создать таблицу разделов на микро SD-карте
Я пытаюсь переформатировать микро 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 ответа
Существует известная ошибка в Linux Kernel 4.4-rc4 и более поздних версиях (она сохраняется и сегодня). Вы можете прочитать об этой ошибке и возможном обходном пути на kernel.org.
По сути, он выходит из строя, чтобы отключить опциональные запросы функций, которые фактически приводят к зависанию аппаратного обеспечения устройства чтения карт:
Временное решение
- Выгрузите модули SDHC с
rmmod sdhci sdhci_pci sdhci_acpi
- Перезагрузите модули с параметрами, чтобы отключить дополнительные функции с
modprobe sdhci debug_quirks2="0x10000"
- Загрузите модуль sdhci_pci снова с
modprobe sdhci_pci
Попробуйте еще раз с вашей SD-картой. Хотя для инициализации может потребоваться несколько секунд (потому что запросы все еще истекают, но мы игнорируем это сейчас).
Если это работает для вас, перейдите к постоянному решению
Постоянный обходной путь
Обратите внимание, что это все еще обходной путь, и в будущем может произойти сбой. Вы должны отключить обходной путь для будущих версий ядра, чтобы увидеть, была ли исправлена ошибка.
- Создайте файл конфигурации modprobe в /etc/modprobe.d (или там, где ваш дистрибутив хранит файлы конфигурации) и запишите туда параметры модуля. Имя не имеет значения, если оно заканчивается на .conf.
echo 'options sdhci debug_quirks2="0x10000"' > /etc/modprobe.d/dell_sdhci.conf
Опции будут загружены при загрузке в будущем. Если это не так, вы можете попытаться взломать временное исправление в сценарии запуска, как очень грязное, но возможное решение.
Эта SD-карта неисправна или повреждена, или электрические контакты неисправны. Попробуйте еще раз после очистки. Если это все еще не удается, то пришло время для новой SD-карты.