Не удается удалить атрибут карты памяти SD только для чтения после образа Ubuntu


16

Я не могу удалить атрибут «только для чтения» с карты памяти 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-картой (в следующий раз перезагрузите компьютер без подключения). Ваше второе изображение очень интересное ... Если я правильно понимаю, то есть изнутри виртуальной машины? ВМ, которая имеет только диск 30 ГБ и SD-карту 29,2 ГБ?
Атти

Да, изнутри ВМ. Я сделал перезагрузку без подключения, поэтому я не знаю, если это было так. В / dev / sda это выделенная область памяти, которую вы можете выделить своей виртуальной машине при установке, которая должна быть 30 ГБ. Но каким-то образом все смешалось с этой проклятой картой.
LordScrat

Ответы:


6

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

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

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

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

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


Я думаю, что это хороший ответ, но на самом деле это не ответ, а комментарий и надежда. :)
Xavierjazz

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

2
Ну, это похвально с вашей стороны. Но ничего, что вы делаете с программным обеспечением, не приведет к разрушению оборудования. Иногда дела идут плохо.
Appleoddity

4

Такие проблемы только для чтения случаются со мной все время, когда я использую 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

Я хотел бы попробовать это, но, как вы можете видеть на моей второй картинке, Ubuntu вроде путает / dev / sdb, который должен быть моим Micro SD, как мой SSD (или наоборот, но это неправильно, вот что я знаю) и я действительно не хочу удалить это случайно, делаю я.
LordScrat

Конечно, вы не хотите, но fdiskгораздо надежнее, gpartedи вы увидите, правильно ли он определяет вашу SD-карту (см. Шаг 3)
testeaxeax

1
Вы можете использовать псевдонимы de / dev / disk / by-id, которые создаются автоматически. У них есть производитель и соединительная шина, так что вы точно знаете, какое это устройство.
Джон Китс

3

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


1

О да. Образ 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, не отключая его, или если вы переделите его, он будет смонтирован, или если разделы повреждены, это может произойти. Лучше всего использовать команду Linuxfsck /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 будет по-прежнему использовать старый раздел, а это означает, что вы получите ошибку только для чтения, поскольку у пользователя не может быть никаких разрешений для старого раздела. Иногда загрузка диска позволяет ядру переключаться на новый раздел, например, если вы использовали программу для создания новой таблицы разделов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.