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

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 и видел около 10 000 обсуждений этой проблемы, но они так и не были решены.

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

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

решение1

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

sudo apt-get install hdparm    
sudo hdparm -r0 /dev/sdb

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

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

решение2

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

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

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

Обновление 2: Что касается Corsair Flash Voyager, я отправил свой на RMA, но мой второй тоже вышел из строя таким же образом. Проблема на самом деле оказалась механической. Скользящий механизм, похоже, оказывает небольшое давление на печатную плату. Обычно это не вызвало бы проблем в течение обычного срока службы устройства. Но в этой конкретной модели, похоже, были слабые паяные соединения, которые давление от скользящего действия усугубляло, что приводило к окислению в треснувшем соединении и в конечном итоге к отказу. Вместо того, чтобы делать еще один RMA, я взял дело в свои руки. Я открыл корпус, срезал часть пластикового корпуса, чтобы дать печатной плате немного места для маневра, а затем переплавил чип NAND, чтобы восстановить сломанные паяные соединения. Он отлично работает и по сей день!

решение3

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

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

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

    $ lsusb
    Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 
    
  2. Обратите внимание на эти два кода после IDи между двоеточием (они называются idVendorи idProduct). Отсоедините USB-устройство.

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

    $ sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage
    
  4. Теперь мы вернем модуль в исходное состояние, используя настройку режима совместимости, чтобы переопределить обнаружение флага «только запись» устройства.

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

    $ sudo modprobe usb_storage quirks=0781:5583:w
    

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

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

    До: сломанный только запись

    И после: работающий чтение/запись

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

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

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

решение4

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

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

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

Создайте новую точку монтирования и смонтируйте ее там (мой идентификатор пользователя из /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

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

Связанный контент