Захист від запису повороту на USB відключено


92

У мене є 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

7
Я не можу відформатувати його через захист від запису.
noob

2
@micha - що це за USB-пристрій - очевидно, ви перевірили, чи має апаратний комутатор? будь-які помилки, якщо ви намагаєтесь його встановити? sudo mount /dev/sdb1 -v?
fossfreedom

1
micha, досить справедливо. Ви намагалися запустити efsck або використали Ubuntu Disk Utility для перевірки стану здоров'я флеш-диска? Якщо він працював нормально, а раптом перестав працювати, може статися апаратне забезпечення.
kingmilo

1
@kingmilo e2fsck:Bad magic number in super-block while trying to open /dev/sdb1 SuperBlock is not readable.
noob

1
@micha - дуже добре, все ще не означає, що він несправний, хоча, на жаль. Як правило, пристрої зберігання можуть працювати нормально, коли вони справді несправні, просто на іншому етапі несправності. Я думаю, що при всій активності з цього питання вам слід попросити невеликі пожертви на заміну накопичувача, було б простіше 😜
kingmilo

Відповіді:


81

Щоб вимкнути захист від запису дискового пристрою, ми використовуємо системну утиліту hdparm низького рівня таким чином:

sudo hdparm -r0 /dev/sdb

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

Сподіваюся, що це допомагає.


Ви - мій герой. Де я можу дізнатися, що сталося після цієї магічної магічної команди?
Маркос Моденесі

3
Ви можете знайти пояснення, ввівши цю команду тут> explainshell.com
bagustris

75
це показує, readonly = 0 (off)але все ще я не в змозі писати чи форматувати.
shyammakwana.me

1
@OP У мене було те саме, що і у вас, а саме: картка sdxc встановлена ​​лише для читання, незалежно від комп'ютера; hdparm -rпоказує "1 - увімкнено", потім після розблокування з r0: "0 - вимкнено", але все одно змонтуйте лише для читання. Але, монтуючи мою SD-карту SanDisk в інший адаптер, я зможу її встановити rw. Виявляється, два моїх адаптери microSD-SD мають зламаний штифт між двома роз'ємами. І ці двоє зможуть працювати лише для читання, що я роблю. Куддос до @Angel_Genchev, він відповідає, що має найбільшу команду в цьому.
tuk0z

2
@lliseil Більш ніж ймовірно, що клавіша захисту захищеної від запису читача натискається на вставлену в неї карту, як правило, на вкладці на карті, але перемикач (не вкладка) може зігнутися і застрягнути. ви можете виправити зчитувач sdcard, відрізавши штифти перемикача захисту, ті, що здійснюють фізичний контакт із вкладкою блокування на картці. Коли перемикач у зчитувачі відкритий, захист від запису вимикається, коли він закритий (натисканням на вкладку на картці) увімкнено захист від запису. Виймання одного або обох металевих ручок вимикачів назавжди відключить захист від запису на зчитувачі.
Hydranix

31

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

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

Редагувати 27.05.2016: Нещодавно у мене виникла проблема, коли на мене спалахнула флешка. У моєму випадку це Corsair Flash Voyager 128GB, який почав досить різко сповільнюватись. Хоча вона не виявляла симптомів, зазначених тут, вона періодично не монтується і не відображається як пристрій "Силіконова потужність". Це було результатом накопичення великої кількості поганих секторів та переходу в режим діагностики / програмування. Оскільки це одна з моїх найпопулярніших відповідей, і це також відноситься до категорії "несправних флеш-накопичувачів", я подумав, що включу його сюди для довідки.


5
@admins: я хочу знати, чи дозволяється такий тип відповідей чи ні :)
Tachyons

7
@AboobackerMk Якщо це відповідь, то це відповідь. :)
jrg

4
@Tachyons "чи дозволяється такий тип відповідей чи ні?" що з людьми, що перебувають на стак-біржі, постійно намагаються дискредитувати питання чи відповіді інших людей? Ця відповідь, очевидно, є достовірною відповіддю; з тієї причини, яку сказав jrg.
GoProCameraByGoPro

@GoProCameraByGoPro, який є 3-річним коментарем, моя стурбованість не стосувалася якості відповіді. and jrg вже відповів на моє запитання :-)
Tachyons

@Tachyons Я виконую свою роль, щоб викликати припущення тут на stackexchange під сумнів. Якби у мене були дані, я би дивився на демографічну тенденцію людей, які це роблять, і, ймовірно, я міг би просто проігнорувати це, але поки що мені доведеться задавати їм питання, як я їх бачу.
GoProCameraByGoPro

21

використовуючи fdisk -lлокальний диск, тобто: / dev / sdc1

зараз

umount /dev/sdc1

Нарешті, переформатуйте флешку

sudo mkfs -t vfat /dev/sdc1

Я знайшов це швидко і просто. Переконайтесь, що НЕМАЄТЬСЯ диск, перш ніж спробувати форматувати.


2
sudo mkfs -t vfat / dev / sdc1> Більшість блогів говорять про це, але люди кажуть, що це не працює, хай подивиться, чи працює він.
Одна нуль

8
відключено ... алеmkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob

він працював для мене, просто довелося використовувати -Я, щоб зробити його одним великим розділом, а замість / dev / sdc1, / dev / sdc.
mchid

Я спробував усі інші способи ( hdparm -r0, blockdev --setrw, remount,rw), але нічого не вирішило мою проблему, окрім цього!
Іман Мірзаде

1
Там сказаноmkfs.vfat: unable to open /dev/sdc: Read-only file system
Шаян

14

Відповідь Ангела хороша, але фактичні команди для мене були не такі прості. Це те, що спрацювало: підключіть карту (у мене - це 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

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


ПРИМІТКА: моя карта фактично вийшла з ладу (Ubuntu монтує її лише для читання, але моя камера з радістю записує її). Через пару місяців це пошкоджує файли - тож поки це буде працювати, будьте обережні!
andrew lorien

Я спробував ваші стрічки отримати .... # sudo mount -o uid = 1000 / dev / sdc1 / mnt / Можна відкривати лише '/ dev / sdc1' як лише для читання. Диск містить нечисту файлову систему (0, 0). Файлова система не була безпечно закрита в Windows. Закріплення.
Ашиш Карпе

1
що працювало для мене, і ніхто інший вище ...
П'єр,

1
Це спрацювало після спробу багатьох рішень. Завдяки @andrewlorien
АВК

6

Жоден із цих наданих відповідей не є правильним.

Щоб насправді він працював, ви можете перекрити виявлення 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) Тепер ми повернемо модуль, використовуючи налаштування режиму примх, щоб замінити виявлення прапора лише для запису пристрою.

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

$ sudo modprobe usb_storage quirks=0781:5583:w

Замініть числа між двокрапками на ті, які ви бачили на кроці (1) зверху.

5) підключіть USB-накопичувач назад. Тепер ми можемо підтвердити за допомогою dmesg, що це спрацювало:

Перед: лише зламане письмо

І після: робоче читання / запис

Також після видачі команди mount ви побачите:

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

Тепер негайно вийміть свої речі з цього диска, він не вдається.


Дуже дякую за цю відповідь. У мене виникла проблема з компактною флеш-карткою в USB-зчитувачі, яка виявилася захищеною від запису, і це єдине знайдене нами рішення, яке виправляє її. Що дивно - це те, що інші картки CF працюють нормально.
njh

1

Ну, це трішки кумедний.

Я спробував усе тут і в іншому місці, і нічого не вийшло.

Відформатований на другому ноутбуці Windows - зараз працює чудово. FFS!

Зітхніть .... (цікаво, чи не вдалось би мені це виправити у своєму Win 7 VM на моєму робочому столі Mint?).


-1

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

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

Тепер ви маєте змогу створити новий розділ та відформатувати його f32. Якщо ви не можете, це, ймовірно, бюст.

HTH


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