Nếu bạn có thẻ nhớ SD, ổ đĩa hoặc bất kỳ đĩa lưu trữ USB nào bạn muốn viết bảo vệ, trong bài viết này, chúng tôi sẽ cho bạn biết từng bước và cách thực hiện một cách dễ dàng. Và có một chút bảo vệ chống ghi mà một số trình điều khiển nhất định cho phép, được gọi là «ghi bit bảo vệ»Tùy thuộc vào việc nó đang hoạt động ở 1 hay 0, nó sẽ cho phép ghi vào đơn vị hay không. Không nên nhầm lẫn bit này với WP của thanh ghi cờ của CPU, ngăn chặn việc ghi đè bằng cách tạo quá trình phân nhánh trên các hệ thống giống UNIX, do đó bảo vệ bộ nhớ chính khỏi việc ghi dữ liệu. Cũng không phải tab bảo vệ điển hình mà chúng tôi tìm thấy trong một số thẻ SD hoặc phương tiện lưu trữ. Trong trường hợp này, chúng tôi đang đề cập đến một biện pháp bảo vệ được triển khai trong phương tiện lưu trữ thứ cấp.
Trong khi bộ điều khiển của phương tiện lưu trữ USB hoặc thẻ nhớ SD, hoặc bất cứ phương tiện nào, phát hiện ra rằng bit này đang hoạt động, trình điều khiển sẽ ngăn hạt nhân ra lệnh ghi và do đó nó sẽ chỉ có thể đọc nội dung. Nó chắc chắn rất thiết thực khi chúng tôi lưu trữ dữ liệu mà chúng tôi không muốn sửa đổi, ngăn chặn việc ghi hoặc xóa do nhầm lẫn. Nhưng nếu một trong những phương tiện được bảo vệ này rơi vào tay chúng tôi và chúng tôi không biết về sự tồn tại của bit này, chúng tôi có thể lãng phí hàng giờ để nghĩ rằng thiết bị của chúng tôi bị hỏng hoặc nâng và hạ tab mà một số mặt dây chuyền hoặc thẻ SD phải bảo vệ chúng mà không có bất kỳ kết quả nào. (Khóa / Mở khóa) ...
Gắn kết phương tiện chỉ đọc hoặc chỉ ghi:
Mặc dù nó không phải là chính xác những gì chúng tôi đang tìm kiếm với Bit bảo vệ ghi, chúng tôi cũng có thể thấy rằng một phương tiện đã được được gắn tự động hoặc thủ công để chỉ đọc, vì vậy chúng tôi sẽ không có khả năng viết trong đó. Điều gì đó mà trong một số trường hợp có thể rất khó chịu và ngăn chúng tôi sửa đổi hoặc lưu trữ mọi thứ. Chà, giải pháp cho điều này rất đơn giản.
Ví dụ: nếu trong tệp / etc / fstab, thiết bị được cấu hình để gắn kết tự động với tùy chọn ro (chỉ đọc) hoặc nếu chúng tôi đã gắn nó bằng lệnh:
sudo mount -o ro /dev/sda /mnt
Trong trường hợp này, chúng tôi chỉ có thể đọc thiết bị / dev / sda trong trường hợp này, thiết bị đã được gắn trên điểm gắn kết / mnt. Để chúng tôi có thể viết lại cho nó:
sudo mount -o remount,rw /dev/sda /mnt
Trong trường hợp phương pháp này không hiệu quả với bạn, thì đó sẽ là bởi vì phần chúng ta đã nói đến là hành động, và đó là lý do tại sao chúng ta sẽ phải sử dụng công cụ mà chúng tôi trình bày dưới đây.
Hdparm là gì?
Lệnh hdparm là một công cụ cấp thấp hoạt động như một giao diện giữa các trình điều khiển nhân Linux khác nhau và phương tiện lưu trữ SATA / PATA / SAS bằng cách sử dụng thư viện libata, cũng như cho phương tiện IDE cũ. Hãy nhớ rằng nhiều bộ điều khiển phương tiện lưu trữ USB, bao gồm đầu đọc thẻ như thẻ SD, cũng sử dụng loại bộ điều khiển này để hoạt động, do đó nó cũng tương thích với chúng.
Su cú pháp cơ bản là:
hdparm [tùy chọn] [thiết bị]
Và quà Nhiều lựa chọn làm việc với cái nào, mặc dù tôi không khuyên bạn nên sử dụng chúng nếu bạn không biết mình làm tốt những gì, vì là một công cụ cấp thấp, bạn có thể làm hỏng thiết bị của mình một cách nghiêm trọng, ví dụ như nếu chúng tôi thao tác một số tùy chọn quan trọng như -B . Nhưng tôi sẽ nói với bạn rằng trong số các tùy chọn của nó có một số tùy chọn khá thú vị như:
- Nhận cấu hình của đĩa:
sudo hdparm /dev/sdd
- Hiển thị nhận dạng của đĩa:
sudo hdparm -i /dev/sdd
- Kiểm tra thời gian đọc bộ đệm và bộ nhớ cache:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
Luôn nhớ sử dụng những đặc quyền, nghĩa là, chạy chúng với tư cách người dùng root hoặc đặt sudo trước mặt chúng, nếu không chúng sẽ không hoạt động ...
Xóa và đặt bit bảo vệ bộ nhớ với hdparm:
Khi công cụ hdparm được biết đến, chúng ta có thể sử dụng tùy chọn -r để kiểm tra trạng thái của bit này với một lệnh đơn giản. Để làm điều này, chúng tôi chỉ cần biết tên vật lý của thiết bị lưu trữ của chúng tôi. Ví dụ, nếu / dev / sdd được gọi, trong trường hợp đó, chúng ta có thể sử dụng:
sudo hdparm -r /dev/sdd
Và giá trị của bit nói trên sẽ được hiển thị trên màn hình. Nếu giá trị của nó là 1 có nghĩa là chế độ đang hoạt động chỉ đọc hoặc chỉ đọc, hay nói cách khác, phương thức chống ghi đang hoạt động và bạn sẽ không thể ghi bất cứ thứ gì vào bộ nhớ. Để hủy kích hoạt nó hoặc sửa đổi bit, bạn chỉ cần làm như sau:
sudo hdparm -r0 /dev/sdd
Và bây giờ nếu chúng ta thực hiện lệnh đầu tiên và sử dụng trạng thái, chúng ta sẽ thấy rằng nó đã trở về 0, do đó chế độ chỉ đọc bị tắt hoặc ngừng hoạt động. Trong trường hợp bạn muốn đưa nó về trạng thái hoạt động, hãy sử dụng tùy chọn -r1 thay vì -r0 và sẵn sàng. Ví dụ:
sudo hdparm -r1 /dev/sdd
Đơn giản là bật hoặc tắt bit này. Nó không quá bí ẩn nhưng đối với những người không biết điều này có thể sẽ rất đau đầu khi phải bảo vệ phương tiện lưu trữ của họ.
Tôi hy vọng nó đã giúp ích cho bạn và bây giờ bạn đã biết cách tạo một ổ đĩa chống ghi, đừng quên để lại bình luận của bạnsio
Hello!
Trước hết, cảm ơn vì những ghi chú! Chúng luôn rất hữu ích.
Tôi là người dùng Debian 9.
Trong trường hợp cụ thể này, tôi có một vấn đề mà tôi không thể giải quyết. Tôi có một cây bút "bị nhiễm" tính năng chống viết mà tôi KHÔNG THỂ Gỡ bỏ. Tôi đã nghĩ rằng đó là vật lý bởi vì tôi đã thực sự thử mọi thứ (định dạng cấp thấp trong Windows hoặc đĩa cứu hộ, sửa đổi phân vùng, v.v.) và không có gì.
Tôi nghĩ rằng tôi sắp giải quyết được nó, khi làm theo các bước của bạn, tôi thấy rằng tính năng chống ghi của ổ bút đã được "bật", nhưng khi tôi thay đổi nó thành "tắt" tôi vẫn không thể xóa hoặc sửa đổi bất kỳ điều gì trên đó.
Có thể là? Có cách nào khác để giải quyết vấn đề này không? (Tôi không ngại mất thông tin tôi có bên trong)
Cảm ơn rất nhiều về sự trợ giúp của bạn.
Thoát vị
Tốt! Tôi không biết họ đã nói cho bạn giải pháp hay cuối cùng thì bạn đã giải quyết được nó, nhưng tôi cũng ở trường hợp như bạn.
Bạn có thể tư vấn cho mình được không?
Cám ơn rất nhiều.
lời giải thích hay
Chào bạn, mình có cái USB hệ thống không nhận, bạn gửi thông tin giúp mình với nhé cảm ơn
dmesg
[83384.348839] usb 1-1: thiết bị USB tốc độ cao mới số 8 sử dụng ehci-pci
[83384.506219] usb 1-1: Đã tìm thấy thiết bị USB mới, idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
[83384.506225] usb 1-1: Chuỗi thiết bị USB mới: Mfr = 1, Product = 2, SerialNumber = 0
[83384.506228] usb 1-1: Sản phẩm: USB Mass Storage
[83384.506231] usb 1-1: Hãng sản xuất: GENERIC
[83384.506848] USB-Storage 1-1: 1.0: Đã phát hiện thấy thiết bị USB Mass Storage
[83384.508235] scsi host5: USB-Storage 1-1: 1.0
[83385.524951] scsi 5: 0: 0: 0: Truy cập trực tiếp Bộ lưu trữ USB THẾ HỆ TRỰC TIẾP 1.00 PQ: 0 ANSI: 2
[83385.556757] sd 5: 0: 0: 0: Đã đính kèm scsi chung loại sg3 0
[83385.561706] sd 5: 0: 0: 0: [sdc] Đĩa di động SCSI đính kèm
root @ localhost: ~ # fdisk -l
Disk / dev / sda: 698.7 GiB, 750156374016 byte, 1465149168 sector
Các đơn vị: các thành phần của 1 * 512 = 512 byte
Kích thước ngành (logic / vật lý): 512 byte / 4096 bytes
Kích thước I / O (tối thiểu / tối ưu): 4096 byte / 4096 byte
Loại đĩa: gpt
Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC
Thiết bị Bắt đầu Kết thúc Loại Kích thước
/ dev / sda1 2048 1050623 1048576 512M Hệ thống EFI
/ dev / sda2 1050624 49879039 48828416 23.3G Hệ thống tệp Linux
/ dev / sda3 49879040 69410815 19531776 Hệ thống tệp Linux 9.3G
/ dev / sda4 69410816 76107775 6696960 3.2G hoán đổi Linux
/ dev / sda5 76107776 80013311 3905536 Hệ thống tệp 1.9G Linux
/ dev / sda6 80013312 1465147391 1385134080 660.5G Hệ thống tệp Linux
root @ localhost: ~ # fdisk -l / dev / sdc
fdisk: không thể mở / dev / sdc: Không tìm thấy phương tiện nào
root @ localhost: ~ # hdparm / dev / sdc
/ dev / sdc:
SG_IO: dữ liệu giác quan bị lỗi / thiếu, sb []: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
multcount = 0 (tắt)
readonly = 0 (tắt)
readahead = 256 (bật)
root @ localhost: ~ # hdparm -C / dev / sdc
/ dev / sdc:
trạng thái ổ đĩa là: chờ
root @ localhost: ~ # hdparm -I / dev / sdc
/ dev / sdc:
SG_IO: dữ liệu giác quan bị lỗi / thiếu, sb []: f0 00 02 00 00 00 00 0b 00 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Thiết bị ATA, với phương tiện không thể tháo rời
Tiêu chuẩn:
Có thể được sử dụng: 1
Cấu hình:
Dòng điện tối đa logic
xi lanh 0 0
đầu 0 0
sector / track 0 0
-
Kích thước khu vực logic / vật lý: 512 byte
kích thước thiết bị với M = 1024 * 1024: 0 MBytes
kích thước thiết bị với M = 1000 * 1000: 0 MBytes
bộ nhớ cache / kích thước bộ đệm = không xác định
Khả năng:
IORDY không có khả năng
Không thể thực hiện IO từ kép
Chuyển nhiều lĩnh vực R / W: không được hỗ trợ
DMA: không được hỗ trợ
IOP: pio0
cảm ơn sự giúp đỡ của bạn, bây giờ tôi đã có thể biết liệu usb của tôi có chống lại việc ghi hay không và tôi đã xác minh rằng nó không chống lại việc ghi vì vậy đây đã là một giải pháp định dạng cấp thấp, tôi phải nói thêm rằng vi-rút đã làm cho usb ngắt kết nối trong một phút hoặc hai và không Nó được phép hoạt động, nó không để lại thời gian vì vậy vì tôi đã biết tôi đã gán nó với tên gì, đó là "sdc" trong thiết bị đầu cuối, tôi đặt mọi thứ với tư cách là người dùng gốc.
# dd nếu = / dev / zero | pv | dd của = / dev / sdc bs = 1 triệu ở đây bạn đợi một lát
# dd nếu = / dev / zero | pv | dd của = / dev / sdc bs = 446 count = 1 bạn lấy ra và gắn lại usb bạn cho
# mkfs.vfat -F 32 -n "anaconda" / dev / sdc và bạn đã hoàn tất
Parabens! Một số quyển kinh mà tôi đặt ra với chủ đề này là để đưa ra một lời giải thích. Cảm ơn Moi.
Tuyệt quá. Cảm ơn rất nhiều.
Cuối cùng một cái gì đó thực sự làm việc cho tôi, cảm ơn.
Xin chào, tôi có một bộ nhớ microd 16 GB ADATA loại 10
Tôi đã làm thủ tục và nó có vẻ hoạt động, nhưng việc chèn lại nó và kiểm tra lại trạng thái sẽ đưa nó trở lại chế độ chỉ đọc.
Tôi đã cố gắng định dạng nó nhưng nó không hoạt động. Những gì tôi có thể thấy là các tập tin của tôi.
bất kỳ công cụ hoặc cách nào khác để giải quyết vấn đề ?.
dễ dàng và ngắn gọn, hoàn thiện tất cả các giải thích và ví dụ, nó rất hữu ích.
Xin chào, tôi là người dùng Kali Linux trong phiên bản mới nhất của nó, tôi đã thử cả tỷ kỹ thuật (xin lỗi vì đã phóng đại) nhưng không có kỹ thuật nào mang lại cho tôi cả trong Linux lẫn Windows
trong trường hợp của tôi, debian, bộ nhớ di động phải được ngắt kết nối….
tuyệt vời, cảm ơn
Tôi đã quản lý để khôi phục một số trích xuất quảng cáo với hướng dẫn của họ
Xin chào, nó hoạt động nhưng thư mục của người dùng khác nhau, rất tốt để làm rõ nó, nhưng tôi có một lỗi, trong lệnh nó hiển thị cho tôi rằng tôi sửa đổi nó, nhưng khi tôi muốn đặt một thư mục hoặc bất cứ thứ gì trên ổ đĩa thì nó báo tôi rằng nó được bảo vệ chống ghi. Nếu bạn có thể giúp tôi giải quyết nó, điều đó thật tuyệt. Lời chào hỏi
chấp nhận lệnh và hiển thị nó là không được bảo vệ, nó là r = 0, nhưng khi tôi muốn định dạng, nó cho tôi biết đã được bảo vệ. Cảm ơn bạn
Xin chào một ngày mới tốt lành. Với điều này, tôi đã không thử nhưng trong Windows, tôi đã làm mọi thứ và không có gì. Mặt dây chuyền của tôi được bảo vệ ghi, ngay cả với sudo hdparm -r / dev / sdd, nó cho giá trị 1, nhưng với sudo hdparm -r0 / dev / sdd, nó cũng không thể loại bỏ bảo vệ ghi. Cảm ơn và lời chào từ Venezuela.
Phiên bản Linux của tôi là openSUSE Tumbleweed 15.3
Thông tin quá khứ rõ ràng và đáng tin cậy. Levei giờ kiểm tra một số giải pháp và điều này, được trình bày ở đây, là giải pháp cuối cùng cho vấn đề liên quan đến việc đọc và chặn gravação.
Đóng góp xuất sắc, mọi thứ đã diễn ra như bạn đã đề cập ... cảm ơn bạn
Cảm ơn bạn rất nhiều, rất hữu ích, điều này thường xảy ra rất nhiều trong usb, cách giải quyết rất dễ dàng và nhanh chóng.
Cảm ơn bạn rất nhiều vì sự đóng góp.
Trong trường hợp của tôi, Ubuntu 23.4 chấp nhận tất cả các lệnh nhưng không mở khóa bit bảo vệ.
Bất cứ ý tưởng?
lorenzo@lorenzo-B85M-D3H:~$ Sudo hdparm -r /dev/sdc
[sudo] mật khẩu cho Lawrence:
/ dev / sdc:
chỉ đọc = 1 (bật)
lorenzo@lorenzo-B85M-D3H:~$ Sudo hdparm -r0 /dev/sdc
/ dev / sdc:
đặt chỉ đọc thành 0 (tắt)
chỉ đọc = 1 (bật)
lorenzo@lorenzo-B85M-D3H:~$
Cảm ơn