У меня есть карта 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. Вот результаты:1-я первая попытка исправить карту 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: я не знаю, является ли здесь правильное место для этого, но в ответ на пользователя, который предложил пост, что я могу сделать, если мой USB-накопитель защищен от записи или только для чтения? чтобы решить мою ситуацию, хотя пост очень хорошо объяснил аналогичную ситуацию только для чтения, он не содержит решения моей проблемы с моей MicroSDCard. Я хочу объяснить, что моя SD-карта является MicroSD и не содержит внешнего вывода для блокировки ее состояния записи. Я не разбираюсь в компьютерах, чтобы доказать, что в них нет ответа на мою ситуацию, но после прочтения вышеупомянутого поста я не нашел никакого способа или решения, чтобы продолжить решать мою проблему. Если вы хотите мне помочь, просто спросите, какая дополнительная информация вам нужна о моей MicroSDcard или информации о линии команд, которую я публикую для тех, кто заинтересован в помощи.

===================== PS3: РЕШЕНИЕ ДЛЯ МОЕЙ ПРОБЛЕМЫ =====================

Ну, до сих пор (4 января 2017 г.) НЕТ РЕШЕНИЯ исправить мою карту MicroSD. Я пытался использовать предложения, которые опубликовали bwDraco и AFH, но мне не удалось восстановить мои функции MicroSD.

Как насчет моей проблемы с картой MicroSD и ее решения? Что ж, я подожду еще немного, чтобы посмотреть, не предложит ли кто-то еще другое решение. Я все еще могу поработать над его восстановлением, если другие люди могут предложить что-то еще в качестве варианта восстановления его функциональности.

В любом случае я рассмотрю возможность покупки другой SD-карты. Как сказал bwDraco, "возможно", карта сломана. Карты памяти часто вызывают такие сбои, но, по крайней мере, замены не стоят дорого. «Время от времени происходит сбой, и это не обязательно ваша ошибка».

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

Кроме того, я хотел бы поблагодарить всех, кто пытался помочь!

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

1 ответ1

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 чтобы удалить посторонний файл. Если это не удается, вам может понадобиться загрузиться с live CD, чтобы удалить файл с системного диска. Посмотрите этот вопрос Ask Ubuntu для получения дополнительной информации о том, как обращаться с полноценной корневой файловой системой.


После удаления постороннего файла перезагрузитесь в исходную систему Linux и попробуйте выполнить следующую команду:

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

Если это не удается с чем-то вроде Input/output error , карта неисправна и требует замены. В противном случае вы сможете переформатировать карту и использовать ее в обычном режиме.

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