如果您有SD存儲卡,pendrive或所需的任何USB存儲盤 寫保護,在本文中,我們將逐步告訴您如何輕鬆地做到這一點。 某些驅動程序允許使用一些防寫保護,稱為“寫保護位»根據它是在1還是0上處於活動狀態,它將允許寫入該單元或不寫入該單元。 此位不應與CPU的標誌寄存器的WP混淆,後者通過在類似UNIX的系統上創建派生過程來防止覆蓋,從而防止主存儲器寫入數據。 也沒有我們在某些SD卡或存儲介質中找到的典型保護標籤。 在這種情況下,我們指的是在輔助存儲介質中實現的保護。
而控制器的 儲存介質 USB或SD存儲卡或任何手段檢測到該位處於活動狀態,驅動程序將阻止內核下達寫命令,因此它只能讀取內容。 當我們存儲不想被修改的數據時,這是非常實用的,以防止錯誤寫入或刪除。 但是,如果其中一種受保護的介質落入我們的手中,而我們卻不知道該位的存在,我們可能會浪費時間以為我們的設備已損壞,或者抬起或放下一些Pendrive或SD卡必須使用的小標籤。保護他們沒有任何結果(鎖定/解鎖)...
掛載只讀或只讀介質:
儘管這並不是我們所希望的寫保護位,但我們也可以發現已經有一種介質 自動或手動安裝為只讀,因此我們將無法在其中編寫代碼。 在某些情況下,這可能會非常煩人,並阻止我們修改或存儲內容。 好吧,解決這個問題的方法非常簡單。
例如,如果在/ etc / fstab文件中,設備配置為使用選項自動安裝 ro(只讀) 或者如果我們已經使用命令安裝了它:
sudo mount -o ro /dev/sda /mnt
在這種情況下,我們只能讀取/ dev / sda設備,在這種情況下,它已安裝在/ mnt掛載點上。 這樣我們就可以再次寫:
sudo mount -o remount,rw /dev/sda /mnt
如果這種方法對您不起作用,這是因為我們所談論的事情正在發揮作用,這就是為什麼我們必須使用下面提供的工具的原因。
什麼是hdparm?
命令 hdparm是一個低級工具 它用作使用libata庫以及舊IDE介質的各種Linux內核驅動程序與SATA / PATA / SAS存儲介質之間的接口。 請記住,許多USB存儲介質控制器(包括SD卡之類的讀卡器)也使用這種類型的控制器進行操作,因此也與它們兼容。
Su 基本語法 是:
hdparm [選項] [設備]
和禮物 很多選擇 儘管我不建議您在不知道做得好的情況下使用它們,但是由於它是低級工具,因此可能會嚴重損壞設備,例如,如果我們操縱某些關鍵選項(例如-B),則不建議使用它們。 但我會告訴您,在它的選項中有一些非常有趣,例如:
- 得到 組態 磁盤的:
sudo hdparm /dev/sdd
- 顯示 鑑定 磁盤的:
sudo hdparm -i /dev/sdd
- 檢查緩衝區和緩存的讀取時間:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
永遠記得使用 特權,也就是說,以root用戶身份運行它們,或在其前面放置sudo,否則它們將無法工作...
使用hdparm刪除並設置內存保護位:
知道hdparm工具後,我們可以使用-r選項,通過它可以檢查該位的狀態 用一個簡單的命令。 為此,我們只需要知道存儲設備的物理名稱即可。 例如,如果調用了/ dev / sdd,在這種情況下,我們可以使用:
sudo hdparm -r /dev/sdd
該位的值將顯示在屏幕上。 如果其值為1,則表示該模式處於活動狀態 只讀 或只讀,或換句話說,寫保護方法處於活動狀態,您將無法向內存中寫入任何內容。 要取消激活或修改該位,只需執行以下操作:
sudo hdparm -r0 /dev/sdd
現在,如果我們執行第一個命令並使用該狀態,我們將看到它已返回到0,因此只讀模式已關閉或取消激活。 如果您想將其恢復為活動狀態,請使用 -r1而不是-r0 並準備好。 例如:
sudo hdparm -r1 /dev/sdd
就是這麼簡單 啟用或禁用此位。 它沒有太多的神秘之處,但是對於那些不知道在取消保護其存儲介質方面可能會令人頭疼的人。
希望它對您有所幫助,現在您知道如何製作寫保護的筆式驅動器,別忘了 留下您的評論s ...
您好!
首先,感謝您的註釋! 它們總是非常有用的。
我是Debian 9用戶。
在這種情況下,我有一個無法解決的問題。 我有一支“感染”的筆,具有無法刪除的寫保護。 我已經認為它是物理上的,因為我已經誠實地嘗試了所有操作(Windows或底層磁盤的低級格式化,修改分區等),什麼也沒做。
我以為我要解決這個問題,當按照您的步驟進行操作時,我發現筆式驅動器的寫保護處於“開”狀態,但是一旦將其更改為“關”,我仍然無法刪除或修改其上的任何內容。
可能是哪個? 還有其他解決方法嗎? (我不介意丟失我裡面的信息)
預先感謝您的幫助。
埃爾南
好的! 我不知道他們是告訴您解決方案還是最終解決了您的問題,但是我和您一樣。
你能告訴我嗎?
非常感謝。
很好的解釋
您好,我有一個系統無法識別的USB,如果您可以幫助我,我會向您發送信息,謝謝
dmesg的
[83384.348839] USB 1-1:使用ehci-pci的新高速USB設備編號8
[83384.506219] USB 1-1:找到新的USB設備,idVendor = 0c76,idProduct = 0005,bcdDevice = 1.00
[83384.506225] USB 1-1:新的USB設備字符串:Mfr = 1,產品= 2,序列號= 0
[83384.506228] USB 1-1:產品:USB大容量存儲
[83384.506231] USB 1-1:製造商:GENERIC
[83384.506848] usb-storage 1-1:1.0:檢測到USB Mass Storage設備
[83384.508235] scsi主機5:USB存儲1-1:1.0
[83385.524951] scsi 5:0:0:0:Direct-Access GENERIC USB Mass Storage 1.00 PQ:0 ANSI:2
[83385.556757] SD 5:0:0:0:附加的SCSI通用SG3類型0
[83385.561706] SD 5:0:0:0:XNUMX:[SDC]附加的SCSI可移動磁盤
根@本地主機:〜#fdisk -l
磁盤/ dev / sda:698.7 GiB,750156374016字節,1465149168扇區
單位:1 * 512 = 512字節的扇區
扇區大小(邏輯/物理):512字節/ 4096字節
I / O大小(最小/最佳):4096字節/ 4096字節
Disklabel類型:gpt
Disk identifier: 995F9474-C5F1-4EE9-8FD7-13EA790423DC
設備起始端扇區大小類型
/ dev / sda1 2048 1050623 1048576 512M EFI系統
/ dev / sda2 1050624 49879039 48828416 23.3G Linux文件系統
/ dev / sda3 49879040 69410815 19531776 9.3G Linux文件系統
/ dev / sda4 69410816 76107775 6696960 3.2G Linux交換
/ dev / sda5 76107776 80013311 3905536 1.9G Linux文件系統
/ dev / sda6 80013312 1465147391 1385134080 660.5G Linux文件系統
根@本地主機:〜#fdisk -l / dev / sdc
fdisk:無法打開/ dev / sdc:找不到介質
根@本地主機:〜#hdparm / dev / sdc
/ dev / sdc:
SG_IO:錯誤/丟失的感知數據,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 XNUMX XNUMX
多計數= 0(關閉)
只讀= 0(關閉)
預讀= 256(開啟)
根@本地主機:〜#hdparm -C / dev / sdc
/ dev / sdc:
驅動器狀態為:待機
根@本地主機:〜#hdparm -I / dev / sdc
/ dev / sdc:
SG_IO:錯誤/丟失的感知數據,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 XNUMX XNUMX
ATA設備,帶有不可移動的介質
標準:
可能使用的:1
組態:
邏輯最大電流
氣缸0 0
頭0 0
扇區/磁道0 0
-
邏輯/物理扇區大小:512字節
M = 1024 * 1024的設備大小:0 MBytes
M = 1000 * 1000的設備大小:0 MBytes
緩存/緩衝區大小=未知
功能:
IORDY不太可能
無法執行雙字IO
讀/寫多扇區傳輸:不支持
DMA:不支持
IOP:pio0
感謝您的幫助,現在我能夠知道我的USB是否反對寫入,並且我已驗證它是否不反對寫入,因此這已經是一種低級格式化解決方案,我必須補充一點,該病毒使USB在一分鐘內斷開連接,或者兩個它允許採取行動,沒有留下時間,所以因為我已經知道我給它分配了什麼名稱,所以在終端中我以root用戶身份將其命名為“ sdc”。
#dd if = / dev / zero | pv | dd = / dev / sdc bs = 1M在這裡,您稍等片刻
#dd if = / dev / zero | pv | dd = / dev / sdc bs = 446 count = 1您取出並再次放入給定的USB
#mkfs.vfat -F 32 -n“ anaconda” / dev / sdc,您已完成
對羥基苯甲酸酯! 我與此主題有關的許多伏特數將給出一個簡單的解釋。 謝謝Moi。
偉大的。 謝謝你。
最後,對我來說確實有用的東西,謝謝。
您好,我有16 GB ADATA類別10 microsd內存
我執行了該過程,它似乎可以正常工作,但是重新插入並重新檢查狀態會將其恢復為只讀狀態。
我試圖格式化它,但是它不起作用。 我可以看到的是我的文件。
還有其他解決問題的工具或方法嗎?
簡單,簡潔,完善的所有解釋和示例,已經非常有用。
您好,我是Kali Linux的最新版本的用戶,我已經嘗試了十億種技術(很誇張地說很抱歉),但是它們都沒有在Linux和Windows中提供給我
就我而言,debian,必須卸下可移動內存…。
太好了,謝謝
我已經設法按照他們的指示恢復了一些促銷摘要
您好,它可以工作,但是用戶的文件夾有所不同,最好弄清楚它,但是我有一個錯誤,在命令中它告訴我修改了它,但是當我想在文件夾中放置一個文件夾或其他任何東西時,它會告訴您對我來說,它是受寫保護的。 如果您能幫助我解決問題,那就太好了。 問候
接受命令並將其顯示為不受保護,則它為r = 0,但是當我要格式化時,它告訴我受保護。 謝謝
你好,美好的一天。 有了這個,我還沒有嘗試過,但在 Windows 中,我什麼都沒做。 我的 Pendrive 是寫保護的,即使使用 sudo hdparm -r / dev / sdd 它也會給出值 1,但是使用 sudo hdparm -r0 / dev / sdd 它也無法刪除寫保護。 來自委內瑞拉的感謝和問候。
我的 Linux 版本是 openSUSE Tumbleweed 15.3
過去的信息清晰可靠。 Levei 小時測試了一些解決方案,這裡介紹的這對於受閱讀和阻止 gravação 的問題來說是決定性的。
出色的貢獻,一切都如你所說......謝謝
非常感謝,非常有用,這在usb中經常發生,解決方法簡單快捷。
非常感謝您的貢獻。
就我而言,Ubuntu 23.4 接受所有命令但不解鎖保護位。
任何想法?
lorenzo@lorenzo-B85M-D3H:~$ 須藤 hdparm -r /dev/sdc
[sudo] 勞倫斯的密碼:
/ dev / sdc:
只讀 = 1(開啟)
lorenzo@lorenzo-B85M-D3H:~$ 須藤 hdparm -r0 /dev/sdc
/ dev / sdc:
將只讀設置為 0(關閉)
只讀 = 1(開啟)
洛倫佐@洛倫佐-B85M-D3H:~$
謝謝