Неможливо видалити атрибут лише для читання Micro SD-карти після зображення Ubuntu


16

Я не можу видалити атрибут лише для читання з Micro SD карт Kingston 32 Гб. Я хочу витерти всю карту.

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

Я поглянув на те, що, можливо, пішло не так і що я повинен був зробити, і повинен був виявити, що ви не можете просто поставити на нього жодне випадкове зображення Ubuntu. Це має бути одним із зображень, які надає творець (у моєму випадку Ubuntu Mate чи Raspbian).

Спроби виправлення з Windows

Коли я намагався переформатувати, клацнувши правою кнопкою миші та переформатувавшись через Провідник Windows, перше, що я зіткнувся з тим, що карта була в режимі лише для читання. Спроба отримати доступ до нього в Windows Explorer лише показала мені каталог EFI, яким я не здивувався.

Перше, що я знайшов в Інтернеті - це перемикач / блокування картки, але на моїй картці взагалі немає блокування. Ні саму карту, ні Robson Mini Reader карт, які я використовую для читання.

Згодом я спробував згадати, як редагувати диски.
Майте на увазі, що я все ще використовую Windows 10 на той момент, тому що мені довелося б скопіювати старий VM-Ware і системне зображення з мого зовнішнього накопичувача, і я не знав, де це було.

Я відкрив командний рядок, запустив diskpart і перерахував усі свої диски через

list disk

Який вихід мій жорсткий диск 931 ГБ, мій SSD на 119 ГБ (де встановлено Windows) та Micro SD-карту потужністю 29 ГБ:

Datenträger ### Статус Größe Frei Dyn GPT  
--------------- ------------- ------- ------- --- ---   
Datenträger 0 Онлайн 119 ГБ 0 В *  
Datenträger 1 Онлайн 931 GB 0 B *  
Datenträger 2 Інтернет 29 ГБ 29 ГБ

Виконуючи отриману інформацію, я знав, що Datenträger 2 aka 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, яку я використовую для школи.

Запускаючи VM, я вже помітив, що Ubuntu зміг допомогти мені набагато більше, ніж Windows (або, принаймні, я так вважав, оскільки мої навички Linux в цьому аспекті обмежені). Перше, що я бачу, - це пов'язаний значок на робочому столі з картою під назвою "Ubuntu 16.04.2 LTS amd64", в ній містяться різні речі, які Ubuntu потребує для роботи, видно на зображенні тут .

Але це мені не допоможе. Тож я пішов вперед, запустив термінал і написав:

lsblk

Що підтвердило, що картка видно (sdb):

ІМЕЙ МАЙ: МІН RM РОЗМІР РОЗВИТОК ТИПУ RO
sda 8: 0 0 30G 0 диск 
└─sda1 8: 1 0 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,4М 1 частина 
sr0 11: 0 1 1024M 0 ром  

Але lsblk був не дуже точним, тому я також використав команду, яку ми вивчили в школі:

fdisk -l

Що було дещо точніше:

Диск / dev / sda: 30 GiB, 32212254720 байт, 62914560 секторів
Одиниці: сектори 1 * 512 = 512 байт
Розмір сектора (логічний / фізичний): 512 байт / 512 байт
Розмір вводу / виводу (мінімальний / оптимальний): 512 байт / 512 байт
Тип Disklabel: dos
Ідентифікатор диска: 0xa14a8cb2

Запуск завантажувача пристрою Кінці секторів Розмір Id Тип
/ dev / sda1 2048 62914559 62912512 30G 83 Linux


Диск / dev / sdb: 29,2 GiB, 31306285056 байт, 61145088 секторів
Одиниці: сектори 1 * 512 = 512 байт
Розмір сектора (логічний / фізичний): 512 байт / 512 байт
Розмір вводу / виводу (мінімальний / оптимальний): 512 байт / 512 байт
Тип Disklabel: dos
Ідентифікатор диска: 0x15e2543d

Запуск завантажувача пристрою Кінці секторів Розмір Id Тип
/ 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 on / dev / sdb написано, але ми не змогли повідомити ядро ​​про зміну, ймовірно, тому, що воно / вони використовуються. Як результат, старі розділи залишаться у використанні. Вам слід перезавантажити зараз, перш ніж вносити подальші зміни.

Тож я зробив те, що мені сказало повідомлення, і перезавантажив. Але і це не принесло користі, тому що знову вискочили ті самі дві помилки. Я ігнорував їх і цього разу, і старе добрий справжній викривлене вікно, яке я знав із школи.

Як тільки я перейшов на / dev / sdb, це стало швидко заплутаним. Як ви бачите тут , тут речі досить дивні, тому що тепер sdb якимось чином вважається моїм SSD замість картки, але зображення з карти все ще монтується. У цей момент я був надто розлючений, щоб продовжувати робити що-небудь далі, боячись випадково викрутити мій ноутбук.

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

Я вже замовив ще одну карту Micro SD від 32 Гб від Amazon, на випадок, якщо більше не буде надії на стару. Але я поки не здаюся.

(Вибачте, що деякі речі є німецькою мовою, але я думаю, що ці речі здебільшого роз'яснюються.)


Диски, ймовірно, змінили порядок, оскільки ви перезавантажили підключену SD-карту (наступний раз перезавантажте без підключення). Ваше друге зображення може бути цікавим ... Якщо я правильно розумію, це зсередини VM? ВМ, у якого є лише диск на 30 Гбіт і SD-карту 29,2 ГбіБ?
Attie

Так, зсередини ВМ. Я перезавантажувався без підключення, але я не знаю, чи це було все. У / dev / sda - це приписаний простір пам’яті, який ви можете надавати своєму віртуальному комп'ютеру при його встановленні, який повинен бути 30 Гбіт. Але якимось чином це переплуталося з підключеною цією проклятою картою.
LordScrat

Відповіді:


6

Що ж, ваш пост, безумовно, був досить розважальним. Дякую за це.

Я знаю, що це не відповідь, яку ви шукаєте. Але, схоже, SD-карта застрягла в режимі лише для читання. Ви зробили все, що можете. Це насправді не так складно.

Це діє так, як це було б, якби на картці був перемикач захисту від запису. Здається, ви підтвердили, що цього не зробили, але, можливо, ще раз перевірте, ще раз? Думка, яка прийшла в голову, - можливо, ви використовуєте міні-SD-карту в mini-sd-адаптері для sd. І, можливо, ви подивилися на адаптер, але не саму міні-sd карту? Я не знаю, просто викинувши це туди. Якщо є адаптер, можливо, сам адаптер пішов погано? Я не пам'ятаю, чи згадували ви, чи пробували ви іншого читача карт. Може, читач пішов погано?

Крім цього, досить часто зустрічається невдача, щоб щось подібне не вийшло з ладу в режимі читання. Отже, моя кишка говорить мені, що карта пішла погано.

Схоже, ви на правильному шляху, просто замінюючи його. Можливо, ви можете отримати погану заміну під гарантією, оскільки вона нова. Дайте нам знати, що ви з'ясували.


1
Я думаю, що це хороша відповідь, але це насправді не відповідь, а коментар та надія. :)
Xavierjazz

Так, я скажу своєму начальникові, що картки більше не можна писати, і просто відправити її назад в Амазонку (він отримав її як у четвер до останньої, тому я вважаю, що це не проблема) і повернути його гроші. Я підійду до розбору своїми власними грошима, отже, ймовірно, я винен у встановленні на ньому неправильного Ubuntu і, можливо, його блокування. Гадаю, у мене буде на 16 баксів менше, щоб витратити ха-ха. Дякую за ваш коментар. Я ціную кожен отриманий коментар.
LordScrat

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 на вашій sdcard, потім скористайтеся nкомандою, щоб додати новий розділ та використати wдля запису змін на вашу sdcard та вийти з 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ви могли б побачити, чи виявляє він правильну Вашу sdcard чи ні. (Див. Крок 3)
testeaxeax

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

3

Майте на увазі, що картка може бути зламана. У них є якийсь спалах і контролер на борту. Якщо картка вважає, що у неї проблеми, вона повністю відключиться в режимі офлайн або перейде лише для читання, якщо у неї недостатньо робочих флеш-комірок для запису. Іноді контролер зберігає облікову інформацію для флеш-мікросхеми, яка може пошкодитися, викликаючи її запуск у безпечному режимі і нічого не дозволяючи. Щоб оминути цей тип матеріалів, вам потрібен «справжній» зчитувач SD-карт, а не зчитувач лише для масового зберігання. "Реальні" інтерфейси SD мають доступ до контролера і можуть дати вам необхідну інформацію.


1

Ага, так. Зображення Ubuntu використовує якийсь дивний формат, який порушує більшість утиліт форматування. Я думаю, це щось таке, щоб зображення працювали на DVD-дисках. Я це добре знаю (читайте: мені постійно потрібно змусити Ubuntu встановлювати диски, і я ненавиджу їх форматування згодом), і це дуже дратує.

Використовуйте Gparted в Ubuntu (VM), щоб видалити всі розділи на диску, а потім додайте новий розділ FAT32. Примітка. Я майже впевнений, що GParted використовує кореневий пароль, а не той звичайний, який ви використовуєте для входу. Якщо ви не знаєте свого кореневого пароля, швидше за все, ви його не встановили. Запустіть "sudo passwd", щоб встановити кореневий пароль, а потім використовуйте його, щоб відкрити GParted. Ви також можете використовувати "sudo gparted".

Або знайдіть і встановіть у Windows безкоштовну програму SDFormatter4 (Примітка. Також працює під 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 все ще буде використовувати старий розділ, а це означає, що ви отримуєте помилку лише для читання, оскільки користувач не може мати дозволи для старого розділу. Іноді завантажувальний диск дозволить ядру перейти на новий розділ, наприклад, якщо ви використовували програму для створення нової таблиці розділів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.