Tắt USB bảo vệ ghi


92

Tôi có một USB được bảo vệ ghi:

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

Làm thế nào tôi có thể tắt bảo vệ ghi?

Những gì tôi đã thử

  1. Đã kiểm tra nếu nó có công tắc phần cứng - không
  2. Đã thử định dạng nó trên windows và trên Linux (thông qua thiết bị đầu cuối)
  3. Đã thử fdisk|chmod
  4. Đã cố gắng khắc phục điều này với một số công cụ từ trung tâm phần mềm Ubuntu
  5. Google đã sử dụng và đã thấy khoảng 10.000 cuộc thảo luận về vấn đề này nhưng chúng chưa bao giờ được giải quyết

Thông tin thêm

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
Tôi không thể định dạng nó vì bảo vệ ghi.
noob

2
@micha - Đây là loại thiết bị USB nào - rõ ràng bạn đã kiểm tra xem nó có công tắc phần cứng không? Bất kỳ lỗi nào nếu bạn cố gắn nó? sudo mount /dev/sdb1 -v?
fossfreedom

1
micha, đủ công bằng. Bạn đã thử chạy efsck hoặc sử dụng Tiện ích đĩa của Ubuntu để kiểm tra tình trạng sức khỏe của đĩa flash chưa? Nếu nó hoạt động tốt và đột nhiên ngừng hoạt động thì có thể có sự cố phần cứng.
kingmilo

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

1
@micha - rất tốt, vẫn không có nghĩa là nó không bị lỗi mặc dù không may. Thông thường các thiết bị lưu trữ dường như hoạt động bình thường khi thực tế chúng bị lỗi, chỉ ở một giai đoạn lỗi khác. Tôi nghĩ với tất cả các hoạt động cho câu hỏi này, bạn nên yêu cầu quyên góp nhỏ để thay thế ổ đĩa, sẽ dễ dàng hơn 😜
kingmilo

Câu trả lời:


81

Để tắt chức năng bảo vệ ghi của thiết bị đĩa, chúng tôi sử dụng tiện ích hệ thống cấp thấp hdparm như thế này:

sudo hdparm -r0 /dev/sdb

nơi chúng tôi cho rằng đó /dev/sdblà thiết bị đĩa Vật lý mà chúng tôi đang làm việc. Nếu thiết bị có các phân vùng được gắn ở dạng chỉ đọc, bạn nên gắn lại chúng dưới dạng đọc-ghi để ghi dữ liệu cho chúng.

Mong rằng sẽ giúp.


Bạn là người hùng của tôi. Tôi có thể học những gì đã xảy ra sau lệnh ma thuật ma thuật này?
Marcos Modenesi

3
Bạn có thể tìm ra lời giải thích bằng cách gõ lệnh đó đây> explainshell.com
bagustris

75
nó hiển thị readonly = 0 (off)nhưng tôi vẫn không thể viết hoặc định dạng.
shyammakwana.me

1
@OP Tôi cũng giống như bạn, đó là: thẻ sdxc gắn chỉ đọc bất cứ thứ gì trên máy tính; hdparm -rhiển thị "1 - bật" sau đó sau khi mở khóa bằng r0: "0 - tắt" nhưng vẫn gắn kết chỉ đọc. Nhưng gắn thẻ sd SanDisk của tôi vào một bộ chuyển đổi khác và tôi sẽ gắn nó vào rw. Hóa ra hai bộ điều hợp microSD-SD của tôi có một chân bị hỏng giữa hai đầu nối. Và hai cái này sẽ gắn kết chỉ đọc bất cứ thứ gì tôi làm. Kuddos gửi tới @Angel_Genchev, anh trả lời có nhiều lệnh nhất trong đó.
tuk0z

2
@lliseil Nhiều khả năng công tắc bảo vệ ghi của người đọc đang bị nhấn bởi thẻ được lắp vào thẻ, thông thường bởi tab trên thẻ nhưng công tắc (không phải tab) có thể bị cong và kẹt. bạn có thể sửa đầu đọc sdcard bằng cách cắt các chân công tắc chống ghi, những chân tiếp xúc vật lý với tab khóa trên thẻ. Khi công tắc trong đầu đọc mở, chức năng chống ghi bị tắt, khi nó được đóng (bằng cách nhấn vào tab trên thẻ) bảo vệ ghi được bật. Loại bỏ một hoặc cả hai công tắc cánh tay kim loại sẽ vô hiệu hóa vĩnh viễn tính năng chống ghi trên đầu đọc.
Hydranix

31

Sau khi nghiên cứu câu hỏi của bạn, có vẻ như đây là một vấn đề không quá hiếm gặp với một số nhãn hiệu ổ đĩa flash USB (một số Samsung cũ, một mẫu Kingston) về cơ bản sẽ chỉ "tào lao" mà không rõ lý do. Mọi người đã cố gắng mở chúng và nhảy hai khách hàng tiềm năng (có thể từ một công tắc không ổn định?) Đến vô ích. Nếu bạn vẫn còn ổ đĩa này và nó vẫn còn bảo hành, tôi sẽ trả lại và lấy một cái thay thế.

Tôi ghét phải báo tin xấu cho bạn = \ nhưng có vẻ như bạn không gặp may trong tình huống này vì mọi thứ tôi đã đọc đều chỉ ra lỗi phần cứng.

Chỉnh sửa 27/05/2016: Gần đây tôi đã gặp phải một sự cố với ổ đĩa flash. Trong trường hợp của tôi, đây là chiếc Corsair Flash Voyager 128GB bắt đầu giảm tốc độ khá mạnh đối với tôi. Mặc dù nó không hiển thị các triệu chứng được ghi nhận ở đây, đôi khi nó sẽ không gắn kết và hiển thị dưới dạng thiết bị "Silicon Power". Đây là kết quả của ổ đĩa đã tích lũy một lượng lớn các thành phần xấu và rơi vào chế độ chẩn đoán / lập trình. Vì đây là một trong những câu trả lời phổ biến hơn của tôi và điều này cũng thuộc danh mục "lỗi ổ đĩa flash", tôi cho rằng tôi nên đưa nó vào đây để tham khảo.


5
@admins: tôi muốn biết loại câu trả lời này có được phép hay không :)
Tachyons

7
@AboobackerMk Nếu đó là câu trả lời, thì đó là câu trả lời. :)
jrg

4
@Tachyons "liệu loại câu trả lời này có được phép hay không?" Điều gì với những người trên stackexchange luôn cố gắng làm mất uy tín câu hỏi hoặc câu trả lời của người khác? Câu trả lời này rõ ràng là một câu trả lời hợp lệ; vì lý do jrg nói.
GoProCameraByGoPro

@GoProCameraByGoPro là bình luận 3 năm tuổi, mối quan tâm của tôi không phải là về chất lượng của câu trả lời. và jrg đã trả lời câu hỏi của tôi :-)
Tachyons

@Tachyons Tôi đang thực hiện phần của mình để gọi sự giả vờ ở đây trên stackexchange thành câu hỏi. Nếu tôi có dữ liệu tôi sẽ xem xét xu hướng nhân khẩu học của những người làm điều đó và tôi có thể bỏ qua nó, nhưng bây giờ tôi sẽ phải hỏi họ những câu hỏi khi tôi nhìn thấy họ.
GoProCameraByGoPro

21

sử dụng fdisk -lxác định vị trí ổ đĩa, tức là: / dev / sdc1

hiện nay

umount /dev/sdc1

Cuối cùng, định dạng lại ổ đĩa flash

sudo mkfs -t vfat /dev/sdc1

Tôi tìm thấy điều này nhanh chóng và dễ dàng. Hãy chắc chắn để UNMOUNT ổ đĩa trước khi cố gắng định dạng.


2
sudo mkfs -t vfat / dev / sdc1> hầu hết các blog đều nói điều này, nhưng mọi người nói nó không hoạt động, hãy xem nó có hoạt động không.
Một số không

8
không đếm được ... nhưngmkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob

nó hoạt động với tôi, chỉ cần sử dụng -I để biến nó thành một phân vùng lớn và thay vì / dev / sdc1, / dev / sdc thay thế.
mchid

Tôi đã thử tất cả các cách khác ( hdparm -r0, blockdev --setrw, remount,rw) nhưng không có gì giải quyết vấn đề của tôi ngoại trừ điều này!
Iman Mirzadeh

1
Nó nóimkfs.vfat: unable to open /dev/sdc: Read-only file system
Shaya

14

Câu trả lời của thiên thần là tốt, nhưng các lệnh thực tế không dễ dàng đối với tôi. Đây là những gì đã hoạt động: Cắm thẻ (của tôi là thẻ SD có công tắc chống ghi thủ công trên nó, nhưng công tắc đã tắt và có thể ghi trên máy Windows). Ubuntu tự động gắn nó vào / media / andrew / 6AB0-1FD91 và dmesg hiển thị phân vùng là / dev / sdb1.

Tháo nó ra, và làm cho nó có thể ghi

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

Tạo một điểm gắn kết mới và gắn kết nó ở đó (ID người dùng của tôi từ / etc / passwd là 1000)

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

nó vẫn sẽ phàn nàn rằng nó chỉ đọc. Tôi không biết tại sao tôi phải thay đổi cờ này trước VÀ sau khi gắn, nhưng đó là cách duy nhất nó hoạt động với tôi. Đặt nó thành có thể ghi lại một lần nữa và kể lại nó ở cùng một nơi

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

Bây giờ tôi có thể ghi vào đĩa như người dùng bình thường của tôi. Tôi rất cẩn thận với nó trong trường hợp nó thực sự thất bại, nhưng những lệnh đó cho phép tôi hoàn thành những gì tôi đang làm.


LƯU Ý: thẻ của tôi thực sự bị lỗi (Ubuntu gắn nó chỉ đọc, nhưng máy ảnh của tôi vui vẻ ghi vào thẻ). Một vài tháng sau, nó làm hỏng các tệp - vì vậy trong khi điều này sẽ hoạt động, hãy cẩn thận!
rút lorien

Tôi đã thử các stpes của bạn nhận được .... # sudo mount -o uid = 1000 / dev / sdc1 / mnt / Chỉ có thể mở '/ dev / sdc1' dưới dạng chỉ đọc Đĩa chứa hệ thống tệp không sạch (0, 0). Hệ thống tập tin không được đóng an toàn trên Windows. Sửa chữa.
Ashish Karpe

1
điều đó làm việc cho tôi, và không ai khác ở trên ...
Pierre

1
Điều này làm việc sau khi thử nhiều giải pháp. Cảm ơn @andrewlorien
Abk

6

Không có câu trả lời nào được cung cấp cho đến nay là chính xác.

Để thực sự làm cho nó hoạt động, bạn có thể ghi đè phát hiện đĩa USB thông báo chỉ đọc với cài đặt quirks USB. Đây là cách nó hoạt động.

1) Cắm thiết bị USB và thực hiện một lsusbví dụ:

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

2) Lưu ý hai mã đó giữa dấu hai chấm (được gọi là idVendoridProduct). Rút phích cắm thiết bị USB.

3) Gỡ bỏ usb_storagemô-đun hạt nhân (giả sử nó được biên dịch dưới dạng mô-đun)

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

4) Bây giờ chúng tôi sẽ đưa mô-đun trở lại bằng cách sử dụng cài đặt chế độ quirks để ghi đè phát hiện cờ chỉ ghi của thiết bị.

Từ nguồn / trình điều khiển / usb / lưu trữ / usb.c # L572 được lấy từ v4.19, bạn có thể thấy rằng cài đặt chế độ quirks mà chúng tôi đang tìm kiếm là w. Dưới đây là cách chúng tôi tải lại mô-đun hạt nhân:

$ sudo modprobe usb_storage quirks=0781:5583:w

Thay thế các số giữa các dấu hai chấm bằng số mà bạn đã thấy ở bước (1) từ phía trên.

5) cắm lại thiết bị lưu trữ usb. Bây giờ chúng tôi có thể xác nhận với dmesg rằng điều này đã hoạt động:

Trước: viết hỏng

Và sau: làm việc đọc / viết

Ngoài ra sau khi ban hành lệnh mount bạn sẽ thấy:

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

Bây giờ hãy lấy công cụ của bạn ra khỏi đĩa đó ngay lập tức, nó thất bại.


Cảm ơn bạn rất nhiều vì câu trả lời này. Tôi gặp vấn đề với thẻ Compact Flash trong đầu đọc USB có vẻ như được bảo vệ chống ghi và đây là giải pháp duy nhất tôi tìm thấy để khắc phục nó. Điều kỳ lạ là các thẻ CF khác đang hoạt động tốt.
njh

1

Vâng, đây là một chút của một bummer.

Tôi đã thử mọi thứ ở đây & nơi khác & không có gì hiệu quả.

Định dạng nó trên máy tính xách tay Windows của một người bạn-- hiện đang hoạt động tốt. FFS!

Thở dài .... (bây giờ tôi tự hỏi liệu tôi có thể sửa nó trong Win 7 VM trên máy tính để bàn Mint không?).


-1

Chèn thẻ nhớ và bắt đầu gparted. Chọn nó thông qua nút ở trên cùng bên phải. Nên rõ ràng nếu bạn đang kiểm tra thẻ nhớ của mình (Kích thước là một đầu mối tốt). Chọn phân vùng -> ngắt kết nối.

Chọn 'Thiết bị' ở trên cùng, sau đó 'Tạo Bảng phân vùng' và lấy mặc định là msdos.

Bây giờ bạn có thể tạo một phân vùng mới và định dạng nó f32. Nếu bạn không thể, nó có thể phá sản.

HTH


6
Các phân vùng không thể chỉnh sửa vì bảo vệ ghi.
Noob
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.