หากคุณมีการ์ดหน่วยความจำ SD, pendrive หรือดิสก์เก็บข้อมูล USB ที่คุณต้องการ เขียนป้องกันในบทความนี้เราจะบอกคุณทีละขั้นตอนและวิธีง่ายๆในการทำ และมีการป้องกันการเขียนเล็กน้อยที่ไดรเวอร์บางตัวอนุญาตซึ่งเรียกว่า«เขียนบิตการป้องกัน»ขึ้นอยู่กับว่ามีการใช้งานที่ 1 หรือ 0 จะอนุญาตให้เขียนลงในหน่วยหรือไม่ บิตนี้ไม่ควรสับสนกับ WP ของแฟล็กรีจิสเตอร์ของซีพียูซึ่งป้องกันการเขียนทับโดยการสร้างกระบวนการฟอร์กบนระบบที่เหมือน UNIX ดังนั้นจึงปกป้องหน่วยความจำหลักจากการเขียนข้อมูล หรือแท็บการป้องกันทั่วไปที่เราพบในการ์ด SD หรือสื่อบันทึกข้อมูล ในกรณีนี้เรากำลังอ้างถึงการป้องกันที่ดำเนินการในสื่อบันทึกข้อมูลสำรอง
ในขณะที่ตัวควบคุมของ สื่อจัดเก็บข้อมูล การ์ดหน่วยความจำ USB หรือ SD หรือด้วยวิธีใดก็ตามตรวจพบว่าบิตนี้ใช้งานได้ไดรเวอร์จะป้องกันไม่ให้เคอร์เนลสั่งลำดับการเขียนดังนั้นจึงสามารถอ่านเนื้อหาได้เท่านั้น เป็นประโยชน์อย่างมากเมื่อเราจัดเก็บข้อมูลที่เราไม่ต้องการแก้ไขป้องกันการเขียนหรือลบโดยไม่ได้ตั้งใจ แต่หากสื่อที่ได้รับการคุ้มครองเหล่านี้ตกอยู่ในมือของเราและเราไม่ทราบถึงการมีอยู่ของบิตนี้เราอาจเสียเวลาหลายชั่วโมงในการคิดว่าหน่วยของเราเสียหายหรือเพิ่มและลดแท็บเล็ก ๆ น้อย ๆ ที่มีลูกตุ้มหรือการ์ด SD บางตัวต้องทำ ปกป้องพวกเขาโดยไม่มีผลลัพธ์ใด ๆ (ล็อค / ปลดล็อค) ...
ติดตั้งสื่ออ่านอย่างเดียวหรือเขียนอย่างเดียว:
แม้ว่าจะไม่ตรงกับสิ่งที่เรากำลังมองหาด้วย Write Protection Bit แต่เรายังพบว่ามีสื่อ ติดตั้งโดยอัตโนมัติหรือด้วยตนเองสำหรับอ่านอย่างเดียวดังนั้นเราจะไม่มีความสามารถในการเขียนมัน บางสิ่งบางอย่างในบางกรณีอาจสร้างความรำคาญอย่างมากและทำให้เราไม่สามารถปรับเปลี่ยนหรือจัดเก็บสิ่งของได้ วิธีแก้ปัญหานี้ง่ายมาก
ตัวอย่างเช่นหากในไฟล์ / etc / fstab อุปกรณ์ได้รับการกำหนดค่าให้เมานต์โดยอัตโนมัติด้วยตัวเลือก ro (อ่านอย่างเดียว) หรือถ้าเราติดตั้งด้วยคำสั่ง:
sudo mount -o ro /dev/sda /mnt
ในกรณีนี้เราสามารถอ่านอุปกรณ์ / dev / sda ได้ในกรณีนี้เท่านั้นที่ติดตั้งบนจุดต่อ / mnt เพื่อที่เราจะได้เขียนมันอีกครั้ง:
sudo mount -o remount,rw /dev/sda /mnt
ในกรณีที่วิธีนี้ไม่ได้ผลสำหรับคุณนั่นอาจเป็นเพราะสิ่งที่เราพูดถึงคือการแสดงและนั่นคือเหตุผลที่เราจะต้องใช้เครื่องมือที่เรานำเสนอด้านล่าง
hdparm คืออะไร?
คำสั่ง hdparm เป็นเครื่องมือระดับต่ำ ซึ่งทำหน้าที่เป็นอินเทอร์เฟซระหว่างไดรเวอร์เคอร์เนลต่างๆของ Linux และสื่อบันทึกข้อมูล SATA / PATA / SAS โดยใช้ไลบรารี libata เช่นเดียวกับสื่อ IDE เก่า โปรดจำไว้ว่าคอนโทรลเลอร์สื่อบันทึกข้อมูล USB จำนวนมากรวมถึงตัวอ่านการ์ดเช่นการ์ด SD ก็ใช้คอนโทรลเลอร์ประเภทนี้ในการทำงานดังนั้นจึงเข้ากันได้กับพวกเขาด้วย
Su ไวยากรณ์พื้นฐาน มันเป็น:
hdparm [ตัวเลือก] [อุปกรณ์]
และของขวัญ ตัวเลือกมากมาย ซึ่งจะใช้งานได้แม้ว่าฉันจะไม่แนะนำให้คุณใช้หากคุณไม่รู้ว่าคุณทำอะไรได้ดีเนื่องจากเป็นเครื่องมือระดับต่ำคุณอาจทำให้อุปกรณ์ของคุณเสียหายได้เช่นหากเราจัดการกับตัวเลือกที่สำคัญบางอย่างเช่น -B . แต่ฉันจะบอกคุณว่าในตัวเลือกมีบางอย่างที่น่าสนใจเช่น:
- รับ องค์ประกอบ ของดิสก์:
sudo hdparm /dev/sdd
- แสดงไฟล์ บัตรประจำตัว ของดิสก์:
sudo hdparm -i /dev/sdd
- ตรวจสอบเวลาอ่านบัฟเฟอร์และแคช:
sudo hdparm -t /dev/sdd sudo hdparm -T /dev/sdd
อย่าลืมใช้เสมอ สิทธิพิเศษนั่นคือเรียกใช้ในฐานะผู้ใช้รูทหรือวาง 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
ง่ายๆก็คือ เปิดหรือปิดบิตนี้. ไม่มีความลึกลับมากเกินไป แต่สำหรับผู้ที่ไม่ทราบเรื่องนี้อาจเป็นเรื่องที่น่าปวดหัวเมื่อต้องยกเลิกการป้องกันสื่อบันทึกข้อมูล
ฉันหวังว่ามันจะช่วยคุณได้และตอนนี้คุณรู้วิธีสร้างเพนไดรฟ์ที่ป้องกันการเขียนแล้วอย่าลืม แสดงความคิดเห็นของคุณส ...
Hello!
ก่อนอื่นขอขอบคุณสำหรับบันทึก! พวกเขามักจะมีประโยชน์มาก
ฉันเป็นผู้ใช้ Debian 9
ในกรณีนี้ฉันมีปัญหาที่ไม่สามารถแก้ไขได้ ฉันมีปากกา "ติดไวรัส" ที่มีการป้องกันการเขียนซึ่งฉันไม่สามารถลบออกได้ ฉันคิดอยู่แล้วว่าเป็นเรื่องจริงเพราะฉันได้ลองทุกอย่างโดยสุจริต (ลงไปที่การจัดรูปแบบระดับต่ำใน Windows หรือดิสก์ช่วยเหลือการปรับเปลี่ยนพาร์ติชัน ฯลฯ ) และไม่มีอะไรเลย
ฉันคิดว่ากำลังจะแก้ปัญหานี้เมื่อทำตามขั้นตอนของคุณฉันพบว่าการป้องกันการเขียนของไดรฟ์ปากกา "เปิด" แต่เมื่อฉันเปลี่ยนเป็น "ปิด" ฉันก็ยังไม่สามารถลบหรือแก้ไขอะไรในนั้นได้
ซึ่งอาจเป็น? มีวิธีอื่นในการแก้ปัญหานี้หรือไม่? (ฉันไม่คิดว่าจะสูญเสียข้อมูลที่มีอยู่ข้างใน)
ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของคุณ.
เฮอแนน
สวัสดีดี! ฉันไม่รู้ว่าพวกเขาบอกวิธีแก้ปัญหากับคุณหรือในที่สุดคุณก็แก้ไขได้ แต่ฉันก็อยู่ในกรณีเดียวกับคุณ
คุณสามารถแนะนำฉันได้หรือไม่?
ขอบคุณมาก
คำอธิบายที่ดี
สวัสดีฉันมี USB ที่ระบบไม่รู้จักฉันจะส่งข้อมูลให้คุณหากคุณสามารถช่วยฉันได้ขอบคุณ
dmesg
[83384.348839] usb 1-1: อุปกรณ์ USB ความเร็วสูงหมายเลข 8 ใหม่โดยใช้ ehci-pci
[83384.506219] usb 1-1: พบอุปกรณ์ USB ใหม่ idVendor = 0c76, idProduct = 0005, bcdDevice = 1.00
[83384.506225] usb 1-1: สตริงอุปกรณ์ USB ใหม่: Mfr = 1, ผลิตภัณฑ์ = 2, SerialNumber = 0
[83384.506228] usb 1-1: ผลิตภัณฑ์: USB Mass Storage
[83384.506231] usb 1-1: ผู้ผลิต: GENERIC
[83384.506848] ที่เก็บข้อมูล usb 1-1: 1.0: ตรวจพบอุปกรณ์ USB Mass Storage
[83384.508235] scsi host5: usb-storage 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: [sdc] แนบดิสก์แบบถอดได้ SCSI
root @ localhost: ~ # 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 swap
/ dev / sda5 76107776 80013311 3905536 1.9G ระบบไฟล์ Linux
/ dev / sda6 80013312 1465147391 1385134080 660.5G ระบบไฟล์ Linux
root @ localhost: ~ # fdisk -l / dev / sdc
fdisk: ไม่สามารถเปิด / dev / sdc: ไม่พบสื่อ
รูท @ localhost: ~ # 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
หลายนับ = 0 (ปิด)
อ่านอย่างเดียว = 0 (ปิด)
readahead = 256 (เปิด)
รูท @ localhost: ~ # hdparm -C / dev / sdc
/ dev / sdc:
สถานะของไดรฟ์คือ: สแตนด์บาย
รูท @ localhost: ~ # 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
อุปกรณ์ ATA พร้อมสื่อที่ถอดออกไม่ได้
มาตรฐาน:
น่าใช้: 1
การกำหนดค่า:
ลอจิกสูงสุดในปัจจุบัน
กระบอกสูบ 0 0
หัว 0 0
ภาค / แทร็ก 0 0
-
ขนาดเซกเตอร์ตรรกะ / ฟิสิคัล: 512 ไบต์
ขนาดอุปกรณ์ที่มี M = 1024 * 1024: 0 MBytes
ขนาดอุปกรณ์ที่มี M = 1000 * 1000: 0 MBytes
ขนาดแคช / บัฟเฟอร์ = ไม่ทราบ
ความสามารถ:
ไม่น่าจะเป็นไปได้
ไม่สามารถดำเนินการ IO สองคำ
R / W ถ่ายโอนหลายเซกเตอร์: ไม่รองรับ
DMA: ไม่รองรับ
IOP: pio0
ขอบคุณสำหรับความช่วยเหลือของคุณตอนนี้ฉันสามารถรู้ได้แล้วว่า usb ของฉันต่อต้านการเขียนหรือไม่และฉันตรวจสอบแล้วว่ามันไม่ได้ต่อต้านการเขียนดังนั้นนี่จึงเป็นโซลูชันการจัดรูปแบบระดับต่ำอยู่แล้วฉันต้องเพิ่มว่าไวรัสทำให้การเชื่อมต่อ usb ในไม่กี่นาที หรือสองและไม่ได้รับอนุญาตให้ดำเนินการมันไม่ได้ทิ้งเวลาไว้เพราะฉันรู้แล้วว่าฉันกำหนดชื่ออะไรซึ่งก็คือ "sdc" ในเทอร์มินัลฉันใส่ทุกอย่างเป็นผู้ใช้รูท
# dd if = / dev / zero | pv | dd ของ = / dev / sdc bs = 1M ที่นี่คุณรอสักครู่
# dd if = / dev / zero | pv | dd of = / dev / sdc bs = 446 count = 1 คุณนำออกและใส่ usb ที่คุณให้อีกครั้ง
# mkfs.vfat -F 32 -n "anaconda" / dev / sdc เท่านี้ก็เสร็จแล้ว
พาราเบน! โวลต์จำนวนหนึ่งที่ฉันให้กับหัวเรื่องนี้คือการให้คำอธิบาย coa Moi ขอบคุณ
เยี่ยมมาก. ขอขอบคุณ.
ในที่สุดสิ่งที่ได้ผลสำหรับฉันจริงๆขอบคุณ
สวัสดีฉันมีหน่วยความจำ 16 GB ADATA category 10 microsd
ฉันทำตามขั้นตอนแล้วและดูเหมือนว่าจะได้ผล แต่การใส่เข้าไปใหม่และตรวจสอบสถานะอีกครั้งทำให้มันกลับมาเป็นแบบอ่านอย่างเดียว
ฉันพยายามจัดรูปแบบแล้วแต่ไม่ได้ผล สิ่งที่ฉันเห็นคือไฟล์ของฉัน
มีเครื่องมือหรือวิธีอื่นในการแก้ปัญหาหรือไม่?
ง่ายและกระชับสมบูรณ์แบบคำอธิบายและตัวอย่างมันมีประโยชน์มาก
สวัสดีฉันเป็นผู้ใช้ Kali Linux ในเวอร์ชันล่าสุดฉันได้ลองใช้เทคนิคนับพันล้านเทคนิคแล้ว (ขออภัยที่พูดเกินจริง) แต่ไม่มีเลยที่ให้ฉันทั้งใน Linux และ Windows
ในกรณีของฉันเดเบียนหน่วยความจำแบบถอดได้จะต้องถูกยกเลิกการต่อเชื่อม….
สุดยอดขอบคุณ
ฉันได้จัดการเพื่อกู้คืนสารสกัดส่งเสริมการขายหลายรายการพร้อมคำแนะนำ
สวัสดีมันใช้งานได้ แต่โฟลเดอร์ของผู้ใช้แตกต่างกันไปมันจะเป็นการดีที่จะชี้แจง แต่ฉันมีข้อผิดพลาดในคำสั่งมันแสดงให้ฉันเห็นว่าฉันแก้ไข แต่เมื่อฉันต้องการใส่โฟลเดอร์หรืออะไรก็ตามใน pendrive มันจะบอก ฉันว่ามันมีการป้องกันการเขียน หากคุณสามารถช่วยฉันแก้ปัญหาได้ก็จะดีมาก ทักทาย
ยอมรับคำสั่งและแสดงว่าไม่มีการป้องกันมันคือ 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:~$ sudo hdparm -r /dev/sdc
[sudo] รหัสผ่านสำหรับลอว์เรนซ์:
/ dev / sdc:
อ่านอย่างเดียว = 1 (เปิด)
lorenzo@lorenzo-B85M-D3H:~$ sudo hdparm -r0 /dev/sdc
/ dev / sdc:
ตั้งค่าอ่านอย่างเดียวเป็น 0 (ปิด)
อ่านอย่างเดียว = 1 (เปิด)
lorenzo@lorenzo-B85M-D3H:~$
กราเซีย