Micro SD перекривається на "заблокований" та "стан лише для читання" - як це виправити? [дублікат]


0

У мене є карта Micro SD (/ dev / sdb), яка "заблокована" в якомусь стані "лише для читання". Коли я намагаюся відформатувати його за допомогою Gparted або іншого графічного програмного забезпечення, він повідомляє "Не можу мати розділи, що перекриваються". Подивившись через Інтернет та на цей сайт, я знайшов можливе рішення за допомогою команд:

sudo fdisk -l -u /dev/sdb
sudo sfdisk -d /dev/sdb > sdb-backup.txt

Потім змініть .txt файл на дійсний, який фіксує розділи, що перекриваються, і застосуйте команду:

sudo sfdisk /dev/sdb < sdb-backup.txt

Після цього я не мав успіху у виправленні своєї Micro SD карти. Ось результати: Перша перша спроба виправити Micro SD карту:

sudo fdisk -l -u /dev/sdb
Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 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: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty


sudo sfdisk /dev/sdb < sdb-backup.txt
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 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: 0x00000000

Old situation:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x00000000.
Created a new partition 1 of type 'Linux' and of size 12,2 MiB.
/dev/sdb2: Created a new partition 3 of type 'Empty' and of size 512 B.
/dev/sdb4: 
New situation:

Device     Boot Start   End Sectors  Size Id Type
/dev/sdb1          16 24896   24881 12,2M 83 Linux
/dev/sdb3       24897 24897       1  512B  0 Empty

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Syncing disks.

=> Оскільки я не мав успіху у виправленні Micro SD карти, то я спробував другу спробу. Друга друга спроба виправити Micro SD карту:

sudo fdisk -l -u /dev/sdb
Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 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: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

sudo sfdisk /dev/sdb < sdb-backup.txt
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 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: 0x00000000

Old situation:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x00000000.
Created a new partition 1 of type 'Linux' and of size 6,5 GiB.
/dev/sdb2: Created a new partition 3 of type 'Linux' and of size 965,3 MiB.
/dev/sdb4: 
New situation:

Device     Boot    Start      End  Sectors   Size Id Type
/dev/sdb1             16 13546943 13546928   6,5G 83 Linux
/dev/sdb3       13546945 15523839  1976895 965,3M 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

=> У мене знову не було успіху.

Запитання: Я хотів би знати: Чи є ще щось, що використовує FDISK або інший інструмент (графічний або командний), я можу спробувати відновити свою SD-карту, або я повинен вважати, що вона знищена та придбати іншу?

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

PS2: Я не знаю, чи є тут правильний простір, але у відповідь на користувача, який запропонував публікацію. Що я можу зробити, якщо моя флешка захищена від запису або лише для читання? щоб вирішити мою ситуацію, хоча публікація дуже добре пояснена подібною ситуацією лише для читання, вона не містить рішення моєї проблеми з моєю MicroSDCard. Я хочу пояснити, що моя SD-карта є MicroSD і не містить зовнішнього штифта, щоб блокувати її стан запису. Я не технічний в обчисленні, щоб довести, що він не містить відповіді на мою ситуацію, але, прочитавши вищезгаданий пост, я не знайшов жодного способу та рішення, щоб продовжувати вирішувати свою проблему. Якщо ви хочете допомогти мені, просто запитайте, яку додаткову інформацію вам потрібно про мою MicroSDcard або інформацію про командний рядок, яку я публікую для тих, хто зацікавлений у наданні допомоги.

===================== PS3: РІШЕННЯ ДО МОЇ ПРОБЛЕМИ ======================

Досі (4 січня 2017 р.) НЕ МАЄ рішення, щоб виправити мою карту MicroSD. Я намагався використати пропозиції, розміщені bwDraco та AFH, але я не мав успіху відновити функціонал MicroSD.

Як щодо проблеми та рішення моєї картки MicroSD? Добре зачекаю ще трохи, щоб побачити, чи хтось пропонує тут інше рішення. Я все ще можу працювати над його відновленням, якщо іншим людям є що-небудь більше запропонувати як варіант відновлення його функціональності.

У будь-якому разі я буду розглядати можливість придбати ще одну SD-карту. Як сказав bwDraco, [можливо], "карта зламана. Карти пам'яті виходять з ладу так тривожно, але принаймні заміни не дорогі". "Час від часу виходить з ладу, і це не обов'язково вини".

На щастя, я не мав важливих даних про MicroSD перед цим пошкодженням, тому нічого важливого на цьому не втратив. У будь-якому випадку, це погано втратити накопичувальний пристрій, мені це не подобається, але принаймні це лише втрата MicroSD, це не представляє великої втрати.

Крім того, я хотів би подякувати всім, хто намагався допомогти!

===================================================== ===============


Якщо припустити, що вам не потрібні будь-які дані, ви можете спробувати витерти вміст з sudo dd if=/dev/null of=/sdb bs=64mподібним. Потім ви зможете відформатувати його як скретч-диск. Насправді вам, мабуть, потрібно перезаписати лише таблицю розділів, але все це не завадить стерти все. Просто переконайтеся, що ви двічі перевірте, чи ви перезаписали правильний пристрій!
AFH

Привіт, AFH кожного, хто може допомогти. / Sdb - правильний пристрій у моєму випадку. Мені не потрібно відновлювати будь-які дані на пристрої. Мені просто подобається спробувати відновити його для роботи знову, щоб записувати та копіювати дані, як це було раніше, спочатку у форматі FAT 32 за замовчуванням / тканини, а потім відформатувати їх для мого індивідуального використання. Я спробував команду sudo dd, якщо = / dev / null of = / sdb bs = 64m ви запропонували та отримали термінальну відповідь: dd: недійсний номер: '64m' Будь-яке уявлення про те, що це означає?
Ден

Привіт Тецуджин та інші, хто це читав. Повідомлення, яке ви запропонували [Що я можу зробити, якщо мій USB-накопичувач захищений від запису чи лише для читання?], Хоча це дуже добре пояснено, подібна ситуація не містить вирішення проблеми з моєю MicroSDCard. Я хочу пояснити, що моя SD-карта є MicroSD і не містить зовнішнього штифта, щоб блокувати її стан запису. Якщо він заблокований - це, мабуть, щось внутрішнє. Я готовий надати більше інформації людям, які хочуть допомогти. Просто запитайте, яку додаткову інформацію вам потрібно про мою Microsdcard або інформацію про лінію команд, яку я публікую для тих, хто цікавиться. Все одно, дякую.
Ден

1
Спробуйте sudo dd if=/dev/zero of=/sdb bs=64M(вибачте за if=параметр: /dev/nullповертає негайний EOF) - деякі реалізації дозволяють різним класифікаторам для кратних байтів. Або bs=зовсім пропустіть параметр: він буде працювати, але повільніше.
АФХ

1
Привіт AFH (або будь-хто, хто може допомогти). Після застосування sudo dd if=/dev/zero of=/sdb bs=64Mзапропонованого вами коду, і термінал працював деякий час, він показав мені відповідь dd: error writing '/sdb': No space left on device 453+0 records in 452+0 records out 30384529408 bytes (30 GB, 28 GiB) copied, 278,123 s, 109 MB/sЩо мені робити зараз? Пояснюючи, будь ласка, спробуйте зробити найбільш детальне пояснення, оскільки я не знаю обчислень. Вони так, як ти намагаєшся мене направляти, просто чудово. Який наступний крок?
Дан

Відповіді:


0

З одного з ваших коментарів (відредагованих для форматування):

Після застосування sudo dd if=/dev/zero of=/sdb bs=64Mкоду, який ви запропонували, і термінал працював деякий час, він показав мені відповідь:

dd: error writing '/sdb': No space left on device
453+0 records in
452+0 records out
30384529408 bytes (30 GB, 28 GiB) copied, 278,123 s, 109 MB/s

Що мені робити зараз?

Це мало бути of=/dev/sdb, ні of=/sdb. Ця команда заповнює системний диск, який може вийти з ладу. Запустіть, sudo rm /sdbщоб видалити сторонній файл. Якщо це не вдалося, можливо, вам доведеться завантажитися на живий компакт-диск, щоб видалити файл із системного диска. Дивіться це запитання Ubuntu для отримання додаткової інформації про те, як працювати з повною кореневою файловою системою.


Після того, як ви видалили сторонній файл, перезавантажтесь у початковій системі Linux та спробуйте виконати таку команду:

sudo dd if=/dev/zero of=/dev/sdb bs=64M count=16

Якщо це не вдається з чимось подібним Input/output error, карта погана і її потрібно замінити. В іншому випадку ви повинні мати можливість переформатувати карту та нормально її використовувати.


Я слідував за вашими вказівками, тепер маю знову доступ до моєї системи Linux. Дякую! Про MicroSD я намагався, sudo dd if=/dev/zero of=/dev/sdb bs=64M count=16і термінал все ще працює близько 40 хв., І не дайте мені жодної відповіді, просто той "чорний значок / смуга, як цей (|), і це вказує, що він все ще працює. Якщо я спробуйте отримати доступ до пристрою через графічний інтерфейс, в якому система говорить "Неможливо встановити / dev / sdb Volume. Операція вже очікується", можливо, через команду термінала. Що мені робити? ?
Ден

Це здається не зовсім нормальним - для запису 1 Гб даних не повинно піти 40 хвилин. Натисніть Ctrl + C, щоб зупинити операцію. Який вихід ви отримуєте?
bwDraco

Якщо я введіть клавішу Ctrl (клавіатура) + C на терміналі, обидва за допомогою правої або лівої клавіш управління на клавіатурі я отримав відповідь символу ^ C. Що я роблю неправильно? Вибачте, я новачок і не знаю багато про термінал .... будьте терплячі.
Ден

dd, схоже, зависло (воно, як правило, виходить відразу, коли ви натискаєте Ctrl + C). Картка, швидше за все, несправна і її потрібно замінити. Вийміть карту із системи, і dd має зупинитися з помилкою. Якщо він не вийде, вам може знадобитися примусово перезавантажити машину.
bwDraco

Коли ви кажете, що "dd, схоже, зависло. Картка, швидше за все, несправна і її потрібно замінити". ти маєш на увазі, мабуть, нічого іншого робити не потрібно, і що карта певно пошкоджена? Це означає, що я втратив цю карту MicroSD 8 Гб?
Дан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.