私は書き込み保護されている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
書き込み保護をオフにするにはどうすればよいですか?
私が試したもの
fdisk
を試しました| chmod
追加情報
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
ディスクデバイスの書き込み保護をオフにするには、次のように低レベルシステムユーティリティhdparmを使用します。
Sudo hdparm -r0 /dev/sdb
ここで、/dev/sdb
は作業中の物理ディスクデバイスであると想定しています。デバイスに読み取り専用としてマウントされているパーティションがある場合、それらにデータを書き込むには、読み取り/書き込みとして再マウントする必要があります。
お役に立てば幸いです。
質問を調査した結果、これは特定のブランドのUSBフラッシュドライブ(一部の古いサムスン、キングストンモデル)であまり一般的ではない問題であり、既知の理由なしに本質的に「がらくた」になるようです。人々はそれらを開いて、2つのリード(おそらく不安定なスイッチから?)をジャンプしようとしていませんでした。このドライブがまだあり、保証期間内であれば、返品して交換品を入手します。
私はあなたに悪い知らせを伝えたくないのですが、私が読んだすべてのことはハードウェア障害を指摘しているので、この状況では運が悪いようです。
編集05/27/2016:最近、フラッシュドライブが飛び出しているという問題を個人的に経験しました。私の場合、これはCorsair Flash Voyager 128GBであり、私にとってはかなりの速度低下が始まりました。ここに記載されている症状は表示されませんでしたが、マウントされず、「シリコンパワー」デバイスとして表示されることがありました。これは、ドライブが大量の不良セクタを蓄積し、診断/プログラミングモードに落ちた結果でした。これは私の人気のある回答の1つであり、これも「故障したフラッシュドライブ」のカテゴリに分類されるため、参照用にここに含めると考えました。
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
新しいマウントポイントを作成してそこにマウントします(/ 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
これで、通常のユーザーとしてディスクに書き込むことができます。実際にエラーが発生した場合に備えて、非常に注意を払っていますが、これらのコマンドを使用すると、自分がやっていることを完了することができました。
これまでに提供されたこれらの答えはどれも正しいものではありません。
実際に機能させるために、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モード設定を使用してモジュールを元に戻し、デバイスの書き込み専用フラグの検出をオーバーライドします。
source/drivers/usb/storage/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)
今すぐそのディスクからあなたのものを取り出してください、それは失敗しています。
まあ、これはちょっと残念です。
ここと他のすべてを試しましたが、nothingは機能していました。
友人のWindowsラップトップでフォーマットしましたが、現在は正常に動作します。 FFS!
ため息....(代わりに、私のMintデスクトップのWin 7 VMで修正できたのではないかと考えていますか?)。