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
ミカ、結構。efsckを実行したり、Ubuntuのディスクユーティリティを使用してフラッシュディスクのヘルスステータスを確認したことがありますか?正常に動作していて、突然動作しなくなった場合は、ハードウェアが誤動作している可能性があります。
キングミロ

1
@kingmilo e2fsckBad 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-オフ」でロック解除した後、とにかく読み取り専用でマウントします。しかし、SanDisk sdカードを別のアダプターにマウントし、それをrwマウントします。2つのmicroSD-to-SDアダプターの2つのコネクター間でピンが壊れていることがわかりました。そして、これら2つは、私が何をするにしても読み取り専用でマウントします。彼が答えた@Angel_GenchevへのKuddosは、その中で最もコマンドを持っています。
tuk0z

2
@lliseilリーダーの書き込み保護スイッチは、挿入されたカード、通常はカードのタブによって押されている可能性が高くなりますが、スイッチ(タブではなく)が曲がってスタックする可能性があります。SDカードリーダーは、カードのロックタブと物理的に接触する書き込み保護スイッチピンを切断することで修正できます。リーダーのスイッチが開いている場合、書き込み保護はオフになり、閉じている場合(カードのタブを押すことにより)、書き込み保護はオンになります。スイッチの金属アームの一方または両方を取り外すと、リーダーの書き込み保護が永久に無効になります。
Hydranix 16

31

質問を調査した結果、これは特定のブランドのUSBフラッシュドライブ(一部の古いサムスン、キングストンモデル)であまり一般的ではない問題であり、既知の理由なしに本質的に「がらくた」になるようです。人々はそれらを開いて、2つのリード(おそらく不安定なスイッチから)をジャンプしようとしていませんでした。このドライブがまだあり、保証期間内であれば、返品して交換品を入手します。

私はあなたに悪い知らせを伝えるのは嫌いですが、私が読んだすべてのことはハードウェア障害を指摘しているので、この状況では運が悪いようです。

編集05/27/2016:最近、フラッシュドライブが飛び出しているという問題を個人的に経験しました。私の場合、これはCorsair Flash Voyager 128GBで、私にとってはかなりの速度低下を始めました。ここに記載されている症状は表示されませんでしたが、マウントされず、「シリコンパワー」デバイスとして表示されることがありました。これは、ドライブが大量の不良セクタを蓄積し、診断/プログラミングモードに落ちた結果でした。これは私の人気のある回答の1つであり、これも「故障したフラッシュドライブ」のカテゴリに分類されるため、参照用にここに含めると考えました。


5
@admins:iこのタイプの回答が許可されているかどうかを知りたい:)
Tachyons

7
@AboobackerMkそれが答えなら、それは答えです。:)
jrg

4
@Tachyons「このタイプの回答が許可されるかどうか」他の人の質問や回答の信用を常に傷つけようとしているスタックエクスチェンジの人々とは何ですか?この答えは明らかに有効な答えです。理由はjrgが言った。
GoProCameraByGoPro

@GoProCameraByGoProは3年前のコメントですが、私の懸念は答えの質ではありませんでした。とjrgはすでに私の質問に返信しました:-)
Tachyons

@Tachyons私はここでスタックエクスチェンジに関する疑問を疑う呼びかけをします。データがあれば、それを行う人々の人口統計の傾向を見て、おそらくそれを単に無視することができますが、今のところ、私は彼らに会いながら質問をしなければなりません。
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の代わりに1つの大きなパーティションにするために-Iを使用しなければならなかった、代わりに/ dev / sdc。
mchid

他のすべての方法(hdparm -r0, blockdev --setrw, remount,rw)を試しましたが、これ以外の問題は解決しませんでした!
イマンミルザデー

1
それは言うmkfs.vfat: unable to open /dev/sdc: Read-only file system
-Shayan

14

エンジェルの答えは良いですが、実際のコマンドは私にとってそれほど簡単ではありませんでした。これがうまくいったことです:カードを差し込みます(私のものは手動書き込み保護スイッチが付いたSDカードですが、スイッチはオフで、Windowsマシンで書き込み可能です)。Ubuntuは/ media / andrew / 6AB0-1FD91に自動的にマウントし、dmesgはパーティションが/ dev / sdb1であることを示しました。

アンマウントし、書き込み可能にします

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

新しいマウントポイントを作成し、そこにマウントします(/ etc / passwdのユーザーIDは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は読み取り専用でマウントしますが、カメラは喜んで書き込みます)。数か月後、ファイルが破損しているため、これは機能しますが、注意してください!
アンドリューロリアン

私はあなたのstpesを取得しようとしました... Windowsでファイルシステムが安全に閉じられませんでした。修正。
アシッシュカルペ

1
それは私のために働いた、そして上記の他のどれも
ピエール

1
これは多くの解決策を試した後に機能しました。ありがとう@andrewlorien
ABK

6

これまでに提供されたこれらの答えはどれも正しいものではありません。

実際に動作させるために、USB quirks設定で読み取り専用を通知するUSB​​ディスクの検出を無効にすることができます。仕組みは次のとおりです。

1)USBデバイスを接続しlsusb、次の例を実行します。

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

2)コロンの間のこれらの2つのコード(idVendorおよびと呼ばれる)に注意してくださいidProduct。USBデバイスを取り外します。

3)usb_storageカーネルモジュールを削除します(モジュールとしてコンパイルされていると仮定)

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

4)次に、quirksモード設定を使用してモジュールを元に戻し、デバイスの書き込み専用フラグの検出をオーバーライドします。

ソース/ドライバー/ USB /ストレージ/ usb.cの#L572 v4.19から取られたあなたは、私たちが探しているQuirksモードの設定があることがわかります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!

ため息....(代わりに、MintデスクトップのWin 7 VMで修正できるのではないかと考えていますか?)。


-1

メモリスティックを挿入し、gpartedを起動します。右上のボタンを使用して選択します。メモリスティックを調べている場合は、サイズがわかりやすいはずです。パーティション->アンマウントを選択します。

上部の[デバイス]を選択し、[パーティションテーブルの作成]を選択して、デフォルトのmsdosを使用します。

これで、新しいパーティションを作成してf32をフォーマットできるようになります。できない場合は、おそらくバストです。

HTH


6
書き込み保護のため、パーティションは編集できません。
noobの
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.