13

Я не могу удалить атрибут «только чтение» с карты памяти SD Micro SD 32 ГБ. Я хочу стереть всю карту.

Мне дали Raspberry Pi 3 и карту памяти Micro SD на 32 ГБ и эхо для игры. Карта Micro SD была свежей на заводе, когда я ее получил. Я скачал свежий образ Ubuntu 16.04 и отформатировал карту с помощью Etcher на Windows 10. Когда я закончил, я подключил все, чтобы Raspberry заработал, и заметил, что ничего не произошло. Я начал немного паниковать и подумал про себя: «Хорошая работа, Скрат, ты, дебил.Почему вы не могли просто немного подождать и погуглить на уроке? "

Я погуглил, что могло бы пойти не так и что я должен был сделать, и мне пришлось обнаружить, что на него нельзя просто вставить какой-либо случайный образ Ubuntu. Это должно быть одно из изображений, которые предоставляет создатель (в моем случае Ubuntu Mate или Raspbian).

Попытки исправить с помощью Windows

При попытке переформатировать, щелкнув правой кнопкой мыши и переформатировав через проводник Windows, первое, с чем я столкнулся, было то, что карта была в режиме только для чтения. Попытка доступа к нему в проводнике Windows показала мне только каталог EFI, который меня не удивил.

Первое, что я обнаружил в Интернете, - это переключение / блокировка карты, но моя карта вообще не имеет блокировки. Ни сама карта, ни Robson Mini Card Reader, который я использую для чтения.

Потом я попытался вспомнить, как редактировать диски.
Имейте в виду, что я все еще использую Windows 10 в тот момент, потому что мне пришлось бы скопировать мой старый VM-Ware и образ системы с моего внешнего диска, и я не знал, где это было.

Я открыл командную строку, запустил diskpart и вывел список всех моих дисков через

list disk

Который выводит мой жесткий диск на 931 ГБ, мой твердотельный накопитель на 119 ГБ (где установлена Windows) и карту памяти Micro SD на 29 ГБ:

Datenträger ###  Status         Größe    Frei     Dyn  GPT  
---------------  -------------  -------  -------  ---  ---   
Datenträger 0    Online          119 GB      0 B        *  
Datenträger 1    Online          931 GB      0 B        *  
Datenträger 2    Online           29 GB    29 GB

Следуя полученной мной информации, я знал, что Datenträger 2 или Disk 2 - это карта, которую я хотел отредактировать, выполнив:

select disk 2

Все идет нормально. Затем я хотел удалить атрибут «только для чтения», выполнив:

attributes disk clear readonly

Который также был успешно выполнен.

Но когда я попытался сделать:

clean

Я получил "Сообщение об аппаратной ошибке" (на немецком языке, поэтому я не копирую его здесь, а, по сути, только "Аппаратная ошибка"). Эта ошибка также возникла при попытке создать основной раздел или выполнить другие действия.

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

Я попытался использовать программы: EaseUS Partition Master, Etcher (снова) и SD Card Formatter, но все они потерпели неудачу из-за защищенной карты (только для чтения, защищенной от записи).

Я также попытался с помощью редактирования реестра изменить поведение Windows по отношению к устройствам хранения, создав ключ (которого еще не было):

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

и создание нового ключевого слова (DWORD WriteProtect) и установка его в 0, что означает отсутствие доступа только для чтения.

Попытки исправить с помощью Linux

Это тоже не сработало, и я начал терять нервы с Windows, поэтому я встал с места и начал искать внешний диск, установил VM-Ware и запустил виртуальную машину Ubuntu 16.04, которую я использую в школе.

Запуская ВМ, я уже заметил, что Ubuntu может помочь мне гораздо больше, чем Windows (или, по крайней мере, я так думал, потому что мои навыки в Linux ограничены в этом аспекте). Первое, что я вижу, это связанный значок на рабочем столе с картой под названием «Ubuntu 16.04.2 LTS amd64», в которой содержатся различные вещи, необходимые Ubuntu для работы, как показано на рисунке здесь.

Но это не поможет мне. Итак, я пошел вперед и запустил терминал и написал:

lsblk

Который подтвердил, что карта видна (SDB):

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   30G  0 disk 
└─sda1   8:1    0   30G  0 part /
sdb      8:16   1 29,2G  1 disk 
├─sdb1   8:17   1  1,5G  1 part /media/pose/Ubuntu 16.04.2 LTS amd64
└─sdb2   8:18   1  2,4M  1 part 
sr0     11:0    1 1024M  0 rom  

Но lsblk не был очень точным, поэтому я также использовал команду, которую мы изучали в школе:

fdisk -l

Что было немного точнее:

Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa14a8cb2

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1        2048 62914559 62912512  30G 83 Linux


Disk /dev/sdb: 29,2 GiB, 31306285056 bytes, 61145088 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x15e2543d

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1  *        0 3035519 3035520  1,5G  0 Empty
/dev/sdb2       14432   19295    4864  2,4M ef EFI (FAT-12/16/32)

И я был в эйфории, потому что думал, что наконец-то взломал этот проклятый код Давинчи или что-то в этом роде, поэтому я побежал

gparted

Которая сразу открылась с сообщением об ошибке:

Дескриптор драйвера говорит, что размер физического блока составляет 2048 байт, но Linux говорит, что это 512 байт.

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

Раздел (ы) 1 в /dev /sdb написан, но мы не смогли сообщить ядру об изменениях, возможно, потому что они / они используются. В результате старый раздел (ы) останется в использовании. Вы должны перезагрузиться сейчас, прежде чем делать дальнейшие изменения.

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

Когда я перешел на /dev /sdb, это очень быстро запутало. Как вы можете видеть здесь, все довольно странно, потому что теперь sdb почему-то считается моим SSD вместо карты, но образ с карты все еще монтируется. В этот момент я был слишком раздражен, чтобы продолжать что-либо предпринимать, опасаясь случайного повреждения своего ноутбука.

Кстати, я также попытался дать себе разрешения на доступ к диску и попытаться использовать команду dd , но с тем же сообщением об ошибке (Доступ запрещен, только для чтения или что-то, я не совсем уверен, но что-то в этом направление).

Я уже заказал еще одну 32 ГБ карту Micro SD от Amazon, на случай, если больше нет надежды на старую. Но я еще не сдаюсь.

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

5 ответов5

4

Ну, ваш пост был достаточно интересным. Спасибо за это.

Я знаю, что это не тот ответ, который вы ищете. Но, похоже, SD-карта застряла в режиме только для чтения. Вы сделали все, что могли. Это действительно не так сложно.

Он работает так, как если бы на карте был переключатель защиты от записи. Похоже, вы подтвердили, что нет, но, может быть, просто еще раз проверьте еще раз? Мысль, которая пришла в голову, была, может быть, вы используете карту mini-SD в адаптере mini-sd-sd. А может быть, вы смотрели на адаптере, а не на самой карте mini-sd? Я не знаю, просто выбросить это там. Если есть адаптер, может, сам адаптер вышел из строя? Я не помню, упоминали ли вы, если вы пробовали другой кард-ридер. Может, читатель испортился?

Кроме этого, довольно часто происходит сбой чего-то подобного в режиме только для чтения. Итак, моя интуиция говорит мне, что карта испортилась.

Похоже, вы на правильном пути, просто заменив его. Может быть, вы можете заменить плохой по гарантии, если он новый. Дайте нам знать, что вы выясните.

3

Такие проблемы только для чтения случаются со мной все время, когда я использую iso-образы.

Что я делаю, чтобы исправить такие проблемы:

Обратите внимание, что <yoursdcard> - это устройство, а не раздел, например, sdc

  1. Загрузите какой-нибудь linux
  2. Откройте терминал
  3. Узнайте, на каком устройстве установлена ваша SD-карта, и проверьте его с помощью sudo fdisk /dev/<yoursdcard> -l или чтобы получить имя устройства, вы также можете использовать sudo parted /dev/<yoursdcard> -l

ВНИМАНИЕ: Следующая команда уничтожит все данные на /dev/<yoursdcard> поэтому убедитесь, что <yoursdcard> является правильным устройством !!!!

  1. Выполните sudo dd if=/dev/zero of=/dev/<yoursdcard> bs=1000000 count=50
  2. Выполните sudo fdisk /dev/<yoursdcard>
  3. Теперь используйте команду o чтобы создать новую таблицу разделов MSDOS на SD-карте, затем используйте команду n чтобы добавить новый раздел, и используйте w чтобы записать изменения в SD-карту и выйти из fdisk.
  4. Теперь используйте sudo mkfs -t <filesystem you want> /dev/<yoursdcard>1 для форматирования вашего раздела
  5. Теперь ваш SDCard должен снова работать

Если это не сработает:

  1. Открытый терминал
  2. Узнайте, что это за устройство <yoursdcard>
  3. Выполнить sudo su
  4. Выполнить echo "0" > /sys/block/<yoursdcard>/ro
2

Имейте в виду, что карта может быть просто сломана. У них есть вспышка и контроллер на борту. Если карта считает, что у нее возникли проблемы, она полностью отключится или перейдет в режим только для чтения, если на ней недостаточно рабочих ячеек флэш-памяти для записи. Иногда контроллер хранит учетную информацию для флеш-чипа, который может быть поврежден, в результате чего он запускается в безопасном режиме и ничего не разрешает. Чтобы избавиться от этого типа вещей, вам нужен «настоящий» кард-ридер SD, а не считыватель только для Mass Storage. «Реальные» интерфейсы SD имеют доступ к контроллеру и могут предоставить вам необходимую информацию.

0

О да. Образ Ubuntu использует какой-то странный формат, который нарушает большинство утилит форматирования. Я полагаю, что они что-то делают, чтобы изображения работали на DVD. Я это хорошо знаю (читай: мне по-прежнему нужно заставлять Ubuntu устанавливать диски, и я ненавижу форматировать их потом), и это очень раздражает.

Используйте Gparted в Ubuntu (ВМ), чтобы удалить все разделы на диске, затем добавьте новый раздел FAT32. Примечание: я почти уверен, что GParted использует пароль root, а не тот, который вы используете для входа в систему. Если вы не знаете свой пароль root, скорее всего, вы его не установили. Запустите "sudo passwd", чтобы установить пароль пользователя root, а затем используйте его, чтобы открыть GParted. Вы также можете использовать "sudo gparted".

Или найдите и установите бесплатную программу SDFormatter4 для Windows (Примечание: работает под WINE и в Ubuntu) и используйте ее для форматирования карты в режиме перезаписи. Это дает больше шансов на работу, насколько мне не нравится проприетарное программное обеспечение.

Оба из них имеют большую удачу при форматировании карт, чем встроенные утилиты.

Конечно, SD-карты и USB-накопители преднамеренно выходят из строя в режиме «только чтение», чтобы дать вам возможность восстановить данные. Если эта карта удаленно новая, этого не должно произойти, но это возможно. Я также предлагаю карты Samsung или Sandisk, так как карты Kingston часто являются поддельными и быстро выходят из строя. У меня действительно однажды случилась эта проблема, и это был на самом деле сбой карты. Я надеюсь, что это не так для вас.

-1

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

введите описание ссылки здесь

Сначала убедитесь, что это не кардридер!

Эта проблема вызвана поврежденной файловой системой очень легко. Проблема может быть вызвана многими вещами. Если вы отформатируете его в Linux без размонтирования, или если вы переделите его, он будет смонтирован, или если разделы повреждены, это может произойти. Лучше всего использовать команду Linux fsck /dev/sdb1 или любое другое обозначение вашего диска /dev/sdd1 . Это может выглядеть как /dev/sdb1 если файловая система повреждена на microSD. Эту ошибку легко совершить, потому что посмотрите на это ...

root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc1: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech#

Мне пришлось размонтировать диск дважды, чтобы размонтировать оба раздела ... и да, это microSD, который должен быть /dev/sdd , /dev/sde или после.

Тем не менее, просто запуск fsck может не удалить грязный бит, если он считает, что он доступен только для чтения. До этого момента ядро Linux будет по-прежнему использовать старый раздел, а это означает, что вы получите ошибку только для чтения, потому что у пользователя нет возможности получить разрешения для старого раздела. Иногда загрузка диска позволяет ядру переключаться на новый раздел, например, если вы использовали программу для создания новой таблицы разделов.

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