Я не могу удалить атрибут «только для чтения» с карты памяти 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 Explorer показала мне только каталог EFI, который меня не удивил.
Первое, что я обнаружил в Интернете, - это переключение / блокировка карты, но моя карта вообще не имеет блокировки. Ни сама карта, ни Robson Mini Card Reader, который я использую для чтения.
Потом я попытался вспомнить, как редактировать диски.
Имейте в виду, что я все еще использую Windows 10 в тот момент, потому что мне пришлось бы скопировать мой старый VM-Ware и образ системы с моего внешнего диска, и я не знал, где это было.
Я открыл командную строку, запустил diskpart и перечислил все мои диски через
list disk
Который выводит мой жесткий диск на 931 ГБ, мой твердотельный накопитель на 119 ГБ (где установлена Windows) и карту памяти Micro SD на 29 ГБ:
Datenträger ### Статус Größe Frei Dyn GPT --------------- ------------- ------- ------- --- --- Datenträger 0 Онлайн 119 ГБ 0 B * Datenträger 1 Онлайн 931 ГБ 0 B * Datenträger 2 Онлайн 29 ГБ 29 ГБ
Следуя информации, которую я получил, я знал, что 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):
НАИМЕНОВАНИЕ MAJ: MIN RM РАЗМЕР RO ТИП MOUNTPOINT сда 8:00 30G 0 диск S─sda1 8: 30G 0 часть / SDB 8:16 1 29,2G 1 диск ├─sdb1 8:17 1 1,5G 1 часть / медиа / поза / Ubuntu 16.04.2 LTS amd64 └─sdb2 8:18 1 2,4M 1 часть ср0 11: 0 1024M 0 rom
Но lsblk не был очень точным, поэтому я также использовал команду, которую мы изучали в школе:
fdisk -l
Что было немного точнее:
Диск / dev / sda: 30 ГиБ, 32212254720 байт, 62914560 секторов Единицы: секторы 1 * 512 = 512 байт Размер сектора (логический / физический): 512 байт / 512 байт Размер ввода / вывода (минимальный / оптимальный): 512 байт / 512 байт Тип метки диска: DOS Идентификатор диска: 0xa14a8cb2 Загрузка устройства Начало Конец Секторов Размер Идентификатор Типа / dev / sda1 2048 62914559 62912512 30G 83 Linux Диск / dev / sdb: 29,2 ГБ, 31306285056 байт, 61145088 секторов Единицы: секторы 1 * 512 = 512 байт Размер сектора (логический / физический): 512 байт / 512 байт Размер ввода / вывода (минимальный / оптимальный): 512 байт / 512 байт Тип метки диска: DOS Идентификатор диска: 0x15e2543d Загрузка устройства Начало Конец Секторов Размер Идентификатор Типа / dev / sdb1 * 0 3035519 3035520 1,5G 0 Пусто / 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, на случай, если больше не будет надежды на старую. Но я еще не сдаюсь.
(Извините, что некоторые вещи на немецком языке, но я думаю, что эти вещи по большей части говорят сами за себя.)
источник
Ответы:
Ну, ваш пост был достаточно интересным. Спасибо за это.
Я знаю, что это не тот ответ, который вы ищете. Но, похоже, SD-карта застряла в режиме только для чтения. Вы сделали все, что могли. Это действительно не так сложно.
Он работает так, как если бы на карте был переключатель защиты от записи. Похоже, вы подтвердили, что это не так, но, может быть, просто проверьте еще раз, еще раз? Мысль, которая пришла в голову, была, может быть, вы используете карту mini-SD в адаптере mini-sd-sd. А может быть, вы смотрели на адаптере, а не на самой карте mini-sd? Я не знаю, просто выбросить это там. Если есть адаптер, может сам адаптер вышел из строя? Я не помню, упоминали ли вы, если вы пробовали другой кард-ридер. Может быть, читатель испортился?
Кроме этого, довольно часто происходит сбой чего-то подобного в режиме только для чтения. Итак, моя интуиция говорит мне, что карта испортилась.
Похоже, вы на правильном пути, просто заменив его. Может быть, вы можете заменить плохой по гарантии, если он новый. Дайте нам знать, что вы выясните.
источник
Такие проблемы только для чтения случаются со мной все время, когда я использую iso-образы.
Что я делаю, чтобы исправить такие проблемы:
Обратите внимание, что
<yoursdcard>
это устройство, а не раздел, например,sdc
sudo fdisk /dev/<yoursdcard> -l
или, чтобы получить имя устройства, которое вы также можете использовать.sudo parted /dev/<yoursdcard> -l
ВНИМАНИЕ: Следующая команда уничтожит все данные,
/dev/<yoursdcard>
поэтому убедитесь, что<yoursdcard>
это правильное устройство !!!!sudo dd if=/dev/zero of=/dev/<yoursdcard> bs=1000000 count=50
sudo fdisk /dev/<yoursdcard>
o
для создания новой таблицы разделов MSDOS на SD-карте, затем используйтеn
команду для добавления нового раздела и используйтеw
для записи изменений в SD-карту и выхода из fdisk.sudo mkfs -t <filesystem you want> /dev/<yoursdcard>1
для форматирования вашего разделаЕсли это не сработает:
<yoursdcard>
являетсяsudo su
echo "0" > /sys/block/<yoursdcard>/ro
источник
fdisk
гораздо надежнее,gparted
и вы увидите, правильно ли он определяет вашу SD-карту (см. Шаг 3)Имейте в виду, что карта может быть просто сломана. У них есть вспышка и контроллер на борту. Если карта считает, что у нее есть проблемы, она полностью отключится или перейдет в режим только для чтения, если на ней недостаточно рабочих ячеек флэш-памяти для записи. Иногда контроллер хранит учетную информацию для флеш-чипа, который может быть поврежден, вызывая его запуск в безопасном режиме и ничего не разрешать. Чтобы избавиться от этого типа вещей, вам нужен «настоящий» кард-ридер SD, а не только для устройств хранения данных. «Реальные» интерфейсы SD имеют доступ к контроллеру и могут предоставить вам необходимую информацию.
источник
О да. Образ Ubuntu использует какой-то странный формат, который нарушает большинство утилит форматирования. Я полагаю, что они что-то делают, чтобы изображения работали на DVD. Я это хорошо знаю (читай: мне все еще нужно заставить Ubuntu устанавливать диски, и я ненавижу форматировать их потом), и это очень раздражает.
Используйте Gparted в Ubuntu (ВМ), чтобы удалить все разделы на диске, затем добавьте новый раздел FAT32. Примечание. Я вполне уверен, что GParted использует пароль root, а не обычный, который вы используете для входа в систему. Если вы не знаете свой пароль root, скорее всего, вы его не установили. Запустите «sudo passwd», чтобы установить пароль пользователя root, а затем используйте его, чтобы открыть GParted. Вы также можете использовать «sudo gparted».
Или найдите и установите бесплатную программу SDFormatter4 для Windows (Примечание: работает под WINE и в Ubuntu) и используйте ее для форматирования карты в режиме перезаписи. Это дает больше шансов на работу, насколько мне не нравится проприетарное программное обеспечение.
Оба из них имеют большую удачу при форматировании карт, чем встроенные утилиты.
Конечно, SD-карты и USB-накопители преднамеренно выходят из строя в режиме «только чтение», чтобы дать вам шанс на восстановление данных. Если эта карта удаленно новая, этого не должно произойти, но это возможно. Я также предлагаю карты Samsung или Sandisk, так как карты Kingston часто являются поддельными и быстро выходят из строя. У меня действительно однажды случилась эта самая проблема, и это был фактически сбой карты. Я надеюсь, что это не так для вас.
источник
Хммм. Я должен связать этот пост, потому что я как бы начал здесь и как-то закончил на другом посте.
введите описание ссылки здесь
Сначала убедитесь, что это не кардридер!
Эта проблема вызвана поврежденной файловой системой очень легко. Проблема может быть вызвана многими вещами. Если вы отформатируете его в Linux, не отключая его, или если вы переделите его, он будет смонтирован, или если разделы повреждены, это может произойти. Лучше всего использовать команду Linux
fsck /dev/sdb1
или любое обозначение вашего диска/dev/sdd1
. Может показаться, что/dev/sdb1
файловая система повреждена на microSD. Эту ошибку легко совершить, потому что посмотрите на это ...Мне пришлось размонтировать диск дважды, чтобы размонтировать оба раздела ... и да, это microSD, который должен быть
/dev/sdd
,/dev/sde
или после.Тем не менее, просто запуск
fsck
может не удалить грязный бит, если он думает, что он только для чтения. До этого момента ядро Linux будет по-прежнему использовать старый раздел, а это означает, что вы получите ошибку только для чтения, поскольку у пользователя не может быть никаких разрешений для старого раздела. Иногда загрузка диска позволяет ядру переключаться на новый раздел, например, если вы использовали программу для создания новой таблицы разделов.источник