У меня проблема с сообщением “mmc0: карта никогда не выходила из состояния занятости” для SD-карты, которую Windows без проблем распознаёт и форматирует. Что я могу сделать, чтобы она заработала в Linux?

Вопрос или проблема

Я пошел и купил Steam Deck, и решил приобрести SD-карту – это была штука Hunyeiz из магазина Kodak. После неудачного опыта случайного неправильного форматирования, поспешной ввода консольных команд, которые мне подсказали на Reddit в попытке отформатировать её вручную, и многократных попыток переформатировать, я оказался в захватывающем ожидании, когда ни консоль, ни моя линуксовая система на компьютере не распознают карту, помещенную в систему.

Проверка dmesg показывало сообщение
mmc0: card never left busy state.

Теперь я понимаю, что когда такое происходит, карту следует выбросить – она больше никому не нужна. Но когда я вставляю её в свою Windows-партцию, она издает мелодию и предлагает отформатировать её. Форматирование для Windows работает, и ей присваивается красивое имя диска и метка, и она открывается в проводнике. Это не изменило того, как любую из Линукс-систем с ней обращается – обе показывают мне то же самое сообщение.

Что я могу сделать, чтобы она заработала на Linux? Могу ли я что-то сделать? Мне не так уж нужна SD-карта для Windows (хотя если все совсем плохо, я подумаю о возврате – я предполагаю, что большинство камер и т.д. будут использовать её нормально?)

Я перечислю шаги, которые я предпринял, чтобы довести карту до этого состояния, если это поможет.

  1. Я вставил карту, зашел в настройки Steam Deck, кликнул на вкладку хранилище и увидел, что моя карта зарегистрирована. Она предложила мне отформатировать диск. Я нажал на эту кнопку. Появился экран загрузки.
  2. Спустя некоторое время, экран загрузки исчез. SD-карта также не распознавалась на этой вкладке. Я перезагрузил свой девайс.
  3. Перезагрузка девайса заняла очень много времени. Я не знал, что вызывало это, поэтому после некоторых поисков в Google решил принудительно выключить его, удерживая кнопку питания в течение 6 секунд.
  4. SD-карта по-прежнему не отображалась. Я в панике переключился в режим рабочего стола, где она была указана, но при нажатии на неё возникало сообщение об ошибке: Error mounting /dev/mmcblk0p1 at (какой-то путь): wrong fa type, bad option, bad superblock on /dev/mmcblk0p1, missing codepage or helper program, or other error. Это казалось плохим знаком. На этом этапе я начал волноваться, что сломал SD-карту, перезагрузив её слишком рано.
  5. Поиск в интернете подсказывал мне попробовать запустить fsck на /dev/mmcblk0p1. Я запустил его на /dev/mmcblk0 и получил сообщение об ошибке, которую не помню. Кажется, он пытался примонтировать её, но не смог.
  6. На этом этапе я нашел быстрый способ сбросить диск – запустив dd if=/dev/zero of=/dev/mmcblk0. Мне сказали, что я могу запустить его на минуту или около того, а затем отменить. Я так и сделал.
  7. Перезагрузив устройство снова, я увидел, что SD-карта снова стала видимой на странице хранилища Steam Deck. Думая, что моя проблема в том, что я перезагрузил слишком рано, я снова запустил форматирование. Она снова сделала то же самое, что и в прошлый раз – SD-карта исчезла из списка хранилища Steam.
  8. Затем я снова переключился в режим рабочего стола. SD-карта снова была видна в списке дисков, но при нажатии на неё возникла та же ошибка, что и раньше – Error mounting /dev/mmcblk0p1 at (какой-то путь): wrong fa type, bad option, bad superblock on /dev/mmcblk0p1, missing codepage or helper program, or other error. Это было раздражающе – я предположил, что система форматирования Steam Deck вызывает это.
  9. В поисках в интернете я нашел один случайный пост на Reddit, который рекомендовал ввести sudo fsck.ext4 /dev/mmcblk0p1 и ответить “да” на все подсказки. Я так и сделал. Он сообщил, что успешно отформатировал диск и упомянул замену журнала на диске.
  10. Теперь SD-карта даже больше не отображалась даже в разделе монтирования в режиме рабочего стола. Я снова перезагрузил. Она по-прежнему не отображалась. Я проверил dmesg, и тогда я понял, что он давал мне сообщение mmc0: card never left busy state.
  11. Я собирался сдаться, но затем вставил SD-карту в свою Windows-партцию и обнаружил, что она работает прекрасно. Я подумал, может быть, форматирование в Windows, а затем повторная вставка в девайс поможет, но ничего не изменилось – Steam Deck и моя линуксовая парция даже не признают её существование.

В любом случае – спасибо за чтение! Есть ли что-то, что я могу сделать? Если бы это была аппаратная проблема, я не понимаю, почему она работает нормально на другой операционной системе. Похоже, я просто сломал SD-карту, но я снова хочу верить, что смогу это исправить (она была дорогой).

Ответ или решение

Как решить проблему "mmc0: card never left busy state" с SD-картой в Linux

Введение
Вы столкнулись с распространенной проблемой, связанной с SD-картами в Linux, когда система сообщает ошибку "mmc0: card never left busy state". Ваша SD-карта, несмотря на успешное распознавание и форматирование в Windows, не работает в вашей среде Linux, включая Steam Deck и ваш компьютер. Давайте рассмотрим, что можно сделать для решения этой проблемы.

Описание проблемы

Вы описали несколько шагов, которые привели к нынешнему состоянию вашей SD-карты. Ключевые моменты включают:

  • Ошибка после форматирования: SD-карта не отображается после попытки форматирования на Steam Deck.
  • Ошибки монтирования: Полученные ошибки при попытке доступа к устройству (wrong ftype, bad option or missing codepage).
  • Состояние "busy": Появление ошибки "mmc0: card never left busy state" в dmesg при подключении карты в Linux.

Эти ошибки могут указывать на повреждение файловой системы, неправильное разделение или аппаратные проблемы.

Шаги по устранению неполадок

  1. Проверка состояния карты с помощью dmesg
    После подключения SD-карты откройте терминал и выполните команду:

    dmesg | tail -n 20

    Это даст вам последние сообщения ядра, которые могут указать на конкретные проблемы с картой.

  2. Использование fdisk для проверки разделов
    Запустите fdisk для просмотра текущих разделов на карте:

    sudo fdisk -l /dev/mmcblk0

    Вы можете увидеть, какие разделы находятся на карте. Если разделы отсутствуют или отображаются неправильно, это может быть признаком повреждения.

  3. Попробуйте полное затирание карты
    Выполнение команды dd, которую вы использовали, может помочь, но важно использовать её правильно:

    sudo dd if=/dev/zero of=/dev/mmcblk0 bs=4M status=progress

    Обратите внимание: это удалит все данные на SD-карте. Убедитесь, что вы выбрали правильное устройство!

  4. Создание новой таблицы разделов
    После затирания карты попробуйте снова создать таблицу разделов, используя fdisk или gparted, и создайте новую файловую систему:

    sudo fdisk /dev/mmcblk0

    Это позволит вам создать новый раздел, который будет совместим с Linux.

  5. Форматирование карты в Linux
    После создания нового раздела выполните форматирование:

    sudo mkfs.ext4 /dev/mmcblk0p1

    Замените ext4 на желаемую файловую систему (например, vfat для совместимости с Windows).

  6. Проверка на наличие ошибок с fsck
    После форматирования запустите:

    sudo fsck /dev/mmcblk0p1

    Это проверит раздел на наличие ошибок и исправит их.

  7. Переподключение карты
    Выньте и снова вставьте SD-карту, затем проверьте, видит ли Linux устройство:

    lsblk

Заключение

Если все эти шаги не помогли решить проблему, возможно, стоит рассмотреть возможность замены SD-карты или возврат к производителю. Кроме того, если карта продолжает работать в Windows, это может указывать на аппаратную проблему с совместимостью карты и Linux. Удачи вам в решении этой проблемы, и надеюсь, ваши усилия будут вознаграждены.

Оцените материал
Добавить комментарий

Капча загружается...