USB отключить защиту от записи

У меня есть USB, который защищен от записи:

dmesg | tail

[10098.126089] sd 7:0:0:0: [sdb] Write Protect is on
[10098.126098] sd 7:0:0:0: [sdb] Mode Sense: 23 00 80 00
[10098.126779] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.126788] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.131418] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.131425] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.133335]  sdb: sdb1
[10098.135509] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.135515] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.135521] sd 7:0:0:0: [sdb] Attached SCSI removable disk

Как отключить защиту от записи?

Что я пробовал

  1. Проверял, есть ли у него аппаратный переключатель - нет
  2. Пытался отформатировать его на windows и на Linux (через терминал тоже)
  3. Пытался fdisk | chmod
  4. Попытался исправить это с помощью нескольких инструментов из программного центра Ubuntu
  5. Использовал Google и видел около 10000 обсуждений по этой проблеме, но они так и не были решены

Дополнительная информация

fsck -n /dev/sdb1

fsck from util-linux 2.19.1
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
  65:01/00
  Not automatically fixing this.
Free cluster summary wrong (968250 vs. really 911911)
  Auto-correcting.
Leaving file system unchanged.
/dev/sdb1: 50 files, 93653/1005564 clusters

fdisk -l

   Device  boot.   Start        End      Blocks   Id  System
/dev/sdb1            32     8060927     4030448    b  W95 FAT32

umount /dev/sdb1

mkfs -t vfat /dev/sdb1

mkfs.vfat 3.0.9 (31 Jan 2010)
mkfs.vfat: unable to open /dev/sdb1

8 ответов

Решение

Чтобы отключить защиту от записи дискового устройства, мы используем низкоуровневую системную утилиту hdparm, например:

sudo hdparm -r0 /dev/sdb

где мы предполагаем, что /dev/sdb устройство физического диска, над которым мы работаем Если устройство имеет разделы, которые монтируются только для чтения, вы должны перемонтировать их для чтения-записи, чтобы записать в них данные.

Надеюсь, это поможет.

После изучения вашего вопроса выясняется, что это не слишком редкая проблема с некоторыми марками USB-накопителей (некоторые более старые модели Samsung, модели Kingston), которые по сути просто "дурачатся" по неизвестной причине. Люди пытались открыть их и перепрыгнуть через два провода (может быть, из-за ненадежного переключателя?) Безрезультатно. Если у вас все еще есть этот диск, и он все еще в гарантии, я верну его и получу замену.

Я не хочу сообщать вам плохие новости =\, но в этой ситуации вам не повезло, поскольку все, что я прочитал, указывает на сбой оборудования.

Редактировать 27.05.2016: У меня недавно возникла проблема с флешкой В моем случае это был Corsair Flash Voyager 128 ГБ, который начал сильно замедляться. Хотя здесь не было признаков, отмеченных здесь, время от времени он не устанавливался и показывался как устройство "Silicon Power". Это было результатом накопления накопителем большого количества поврежденных секторов и перехода в режим диагностики / программирования. Поскольку это один из моих самых популярных ответов, и он также относится к категории "неисправных флешек", я решил включить его сюда для справки.

Ни один из приведенных ответов не является правильным.

Чтобы реально заставить его работать, вы можете переопределить обнаружение USB-диска, объявив его доступным только для чтения, с помощью параметра USB-причуд. Вот как это работает.

1) Подключите USB-устройство и выполните lsusb, пример:

$ lsusb
Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 

2) Обратите внимание на эти два кода между двоеточием (называемый idVendor а также idProduct). Отключите USB-устройство.

3) Удалить usb_storage модуль ядра (при условии, что он скомпилирован как модуль)

$ sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage

4) Теперь мы вернем модуль в режим настройки "причуд", чтобы отменить обнаружение флага "только для записи" устройства.

Из исходных текстов / drivers / usb / storage / usb.C# L572, взятых из v4.19, вы можете увидеть, что настройка режима quirks, которую мы ищем, w, Вот как мы перезагрузим модуль ядра:

$ sudo modprobe usb_storage quirks=0781:5583:w

Замените числа между двоеточиями теми, которые вы видели в шаге (1) сверху.

5) снова подключите USB-накопитель. Теперь мы можем подтвердить с помощью dmesg, что это сработало:

До:

И после:

Также после ввода команды монтирования вы увидите:

/dev/sdb1 on /usb type ext4 (rw,relatime)

А теперь иди и убери свои вещи с диска немедленно, он не работает.

С помощью fdisk -l найдите диск, то есть: /dev/sdc1

сейчас

umount /dev/sdc1

Наконец переформатируем флешку

sudo mkfs -t vfat /dev/sdc1

Я нашел это быстро и легко. Обязательно размонтируйте диск перед попыткой форматирования.

Ответ Ангела хорош, но фактические команды были не так просты для меня. Вот что сработало: подключите карту (у меня SD-карта с ручным переключателем защиты от записи, но переключатель выключен, и он доступен для записи на компьютере с Windows). Ubuntu автоматически смонтировал его на /media/andrew/6AB0-1FD91, и dmesg показал, что раздел был /dev/sdb1.

Размонтируйте его и сделайте доступным для записи

sudo umount /dev/sdb1
sudo hdparm -r0 /dev/sdb

Создайте новую точку монтирования и смонтируйте ее там (мой userID из /etc/passwd равен 1000)

sudo mkdir /media/andrew/temp
sudo mount -o uid=1000 /dev/sdb1 /media/andrew/temp

он по-прежнему будет жаловаться, что доступен только для чтения. Я не знаю, почему мне пришлось менять этот флаг до и после монтажа, но это единственный способ, который сработал для меня. Установите его для записи снова и перемонтируйте в том же месте

sudo hdparm -r0 /dev/sdb1
sudo mount -o remount,rw /dev/sdb1

Теперь я могу записать на диск как мой обычный пользователь. Я очень осторожен с ним на случай, если он действительно потерпит неудачу, но эти команды позволили мне закончить то, что я делал.

Это происходит, когда файл ISO был записан на usb с помощью команды DD или любого из «стандартных» инструментов.

Если он создан таким образом, нет никакого способа сделать его доступным для записи.

Это можно сделать, записав ISO-образ с помощью какого-нибудь инструмента, такого как unetbootin (linux) или Roofus (Windows).

Ну, это немного облом.

Я попробовал все здесь и в других местах, и ничего не получалось.

Отформатировал его на ноутбуке Windows друга - теперь работает нормально. FFS!

Вздох....(интересно сейчас, смогу ли я вместо этого исправить это в моей Win 7 VM на моем рабочем столе Mint?).

Вставьте карту памяти и начните gparted. Выберите его с помощью кнопки в правом верхнем углу. Это должно быть очевидно, если вы проверяете свою карту памяти (размер - хорошая подсказка). Выберите Раздел -> Размонтировать.

Выберите "Устройство" вверху, затем "Создать таблицу разделов" и выберите значение по умолчанию, которое является msdos.

Теперь вы сможете создать новый раздел и отформатировать его в F32. Если вы не можете, это, вероятно, перебор.

НТН

Другие вопросы по тегам