เขียน Protected Pendrive บน Linux

เพนไดรฟ์ที่ป้องกันการเขียน

หากคุณมีการ์ดหน่วยความจำ SD, pendrive หรือดิสก์เก็บข้อมูล USB ที่คุณต้องการ เขียนป้องกันในบทความนี้เราจะบอกคุณทีละขั้นตอนและวิธีง่ายๆในการทำ และมีการป้องกันการเขียนเล็กน้อยที่ไดรเวอร์บางตัวอนุญาตซึ่งเรียกว่า«เขียนบิตการป้องกัน»ขึ้นอยู่กับว่ามีการใช้งานที่ 1 หรือ 0 จะอนุญาตให้เขียนลงในหน่วยหรือไม่ บิตนี้ไม่ควรสับสนกับ WP ของแฟล็กรีจิสเตอร์ของซีพียูซึ่งป้องกันการเขียนทับโดยการสร้างกระบวนการฟอร์กบนระบบที่เหมือน UNIX ดังนั้นจึงปกป้องหน่วยความจำหลักจากการเขียนข้อมูล หรือแท็บการป้องกันทั่วไปที่เราพบในการ์ด SD หรือสื่อบันทึกข้อมูล ในกรณีนี้เรากำลังอ้างถึงการป้องกันที่ดำเนินการในสื่อบันทึกข้อมูลสำรอง

ในขณะที่ตัวควบคุมของ สื่อจัดเก็บข้อมูล การ์ดหน่วยความจำ USB หรือ SD หรือด้วยวิธีใดก็ตามตรวจพบว่าบิตนี้ใช้งานได้ไดรเวอร์จะป้องกันไม่ให้เคอร์เนลสั่งลำดับการเขียนดังนั้นจึงสามารถอ่านเนื้อหาได้เท่านั้น เป็นประโยชน์อย่างมากเมื่อเราจัดเก็บข้อมูลที่เราไม่ต้องการแก้ไขป้องกันการเขียนหรือลบโดยไม่ได้ตั้งใจ แต่หากสื่อที่ได้รับการคุ้มครองเหล่านี้ตกอยู่ในมือของเราและเราไม่ทราบถึงการมีอยู่ของบิตนี้เราอาจเสียเวลาหลายชั่วโมงในการคิดว่าหน่วยของเราเสียหายหรือเพิ่มและลดแท็บเล็ก ๆ น้อย ๆ ที่มีลูกตุ้มหรือการ์ด SD บางตัวต้องทำ ปกป้องพวกเขาโดยไม่มีผลลัพธ์ใด ๆ (ล็อค / ปลดล็อค) ...

ติดตั้งสื่ออ่านอย่างเดียวหรือเขียนอย่างเดียว:

การ์ด SD พร้อมแท็บล็อค

แม้ว่าจะไม่ตรงกับสิ่งที่เรากำลังมองหาด้วย Write Protection Bit แต่เรายังพบว่ามีสื่อ ติดตั้งโดยอัตโนมัติหรือด้วยตนเองสำหรับอ่านอย่างเดียวดังนั้นเราจะไม่มีความสามารถในการเขียนมัน บางสิ่งบางอย่างในบางกรณีอาจสร้างความรำคาญอย่างมากและทำให้เราไม่สามารถปรับเปลี่ยนหรือจัดเก็บสิ่งของได้ วิธีแก้ปัญหานี้ง่ายมาก

บทความที่เกี่ยวข้อง:
ปิดการใช้งานที่เก็บข้อมูล USB ใน Linux

ตัวอย่างเช่นหากในไฟล์ / 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

ง่ายๆก็คือ เปิดหรือปิดบิตนี้. ไม่มีความลึกลับมากเกินไป แต่สำหรับผู้ที่ไม่ทราบเรื่องนี้อาจเป็นเรื่องที่น่าปวดหัวเมื่อต้องยกเลิกการป้องกันสื่อบันทึกข้อมูล

ฉันหวังว่ามันจะช่วยคุณได้และตอนนี้คุณรู้วิธีสร้างเพนไดรฟ์ที่ป้องกันการเขียนแล้วอย่าลืม แสดงความคิดเห็นของคุณส ...


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

      เฮอแนน dijo

    Hello!
    ก่อนอื่นขอขอบคุณสำหรับบันทึก! พวกเขามักจะมีประโยชน์มาก

    ฉันเป็นผู้ใช้ Debian 9
    ในกรณีนี้ฉันมีปัญหาที่ไม่สามารถแก้ไขได้ ฉันมีปากกา "ติดไวรัส" ที่มีการป้องกันการเขียนซึ่งฉันไม่สามารถลบออกได้ ฉันคิดอยู่แล้วว่าเป็นเรื่องจริงเพราะฉันได้ลองทุกอย่างโดยสุจริต (ลงไปที่การจัดรูปแบบระดับต่ำใน Windows หรือดิสก์ช่วยเหลือการปรับเปลี่ยนพาร์ติชัน ฯลฯ ) และไม่มีอะไรเลย

    ฉันคิดว่ากำลังจะแก้ปัญหานี้เมื่อทำตามขั้นตอนของคุณฉันพบว่าการป้องกันการเขียนของไดรฟ์ปากกา "เปิด" แต่เมื่อฉันเปลี่ยนเป็น "ปิด" ฉันก็ยังไม่สามารถลบหรือแก้ไขอะไรในนั้นได้

    ซึ่งอาจเป็น? มีวิธีอื่นในการแก้ปัญหานี้หรือไม่? (ฉันไม่คิดว่าจะสูญเสียข้อมูลที่มีอยู่ข้างใน)

    ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของคุณ.

    เฮอแนน

         paco dijo

      สวัสดีดี! ฉันไม่รู้ว่าพวกเขาบอกวิธีแก้ปัญหากับคุณหรือในที่สุดคุณก็แก้ไขได้ แต่ฉันก็อยู่ในกรณีเดียวกับคุณ
      คุณสามารถแนะนำฉันได้หรือไม่?
      ขอบคุณมาก

      วิลเลียนซัลกาโด dijo

    คำอธิบายที่ดี

      เซร์คิโอ dijo

    สวัสดีฉันมี 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

      เดกซ์เทร dijo

    ขอบคุณสำหรับความช่วยเหลือของคุณตอนนี้ฉันสามารถรู้ได้แล้วว่า 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 เท่านี้ก็เสร็จแล้ว

      มกท dijo

    พาราเบน! โวลต์จำนวนหนึ่งที่ฉันให้กับหัวเรื่องนี้คือการให้คำอธิบาย coa Moi ขอบคุณ

      วิกเตอร์ dijo

    เยี่ยมมาก. ขอขอบคุณ.

      Iori dijo

    ในที่สุดสิ่งที่ได้ผลสำหรับฉันจริงๆขอบคุณ

      ยุติ dijo

    สวัสดีฉันมีหน่วยความจำ 16 GB ADATA category 10 microsd

    ฉันทำตามขั้นตอนแล้วและดูเหมือนว่าจะได้ผล แต่การใส่เข้าไปใหม่และตรวจสอบสถานะอีกครั้งทำให้มันกลับมาเป็นแบบอ่านอย่างเดียว

    ฉันพยายามจัดรูปแบบแล้วแต่ไม่ได้ผล สิ่งที่ฉันเห็นคือไฟล์ของฉัน

    มีเครื่องมือหรือวิธีอื่นในการแก้ปัญหาหรือไม่?

      โฮเซ dijo

    ง่ายและกระชับสมบูรณ์แบบคำอธิบายและตัวอย่างมันมีประโยชน์มาก

      Miguel Angel dijo

    สวัสดีฉันเป็นผู้ใช้ Kali Linux ในเวอร์ชันล่าสุดฉันได้ลองใช้เทคนิคนับพันล้านเทคนิคแล้ว (ขออภัยที่พูดเกินจริง) แต่ไม่มีเลยที่ให้ฉันทั้งใน Linux และ Windows

      ดานิคาร์โดน dijo

    ในกรณีของฉันเดเบียนหน่วยความจำแบบถอดได้จะต้องถูกยกเลิกการต่อเชื่อม….

      JR dijo

    สุดยอดขอบคุณ
    ฉันได้จัดการเพื่อกู้คืนสารสกัดส่งเสริมการขายหลายรายการพร้อมคำแนะนำ

      Jero dijo

    สวัสดีมันใช้งานได้ แต่โฟลเดอร์ของผู้ใช้แตกต่างกันไปมันจะเป็นการดีที่จะชี้แจง แต่ฉันมีข้อผิดพลาดในคำสั่งมันแสดงให้ฉันเห็นว่าฉันแก้ไข แต่เมื่อฉันต้องการใส่โฟลเดอร์หรืออะไรก็ตามใน pendrive มันจะบอก ฉันว่ามันมีการป้องกันการเขียน หากคุณสามารถช่วยฉันแก้ปัญหาได้ก็จะดีมาก ทักทาย

      โอเรียล dijo

    ยอมรับคำสั่งและแสดงว่าไม่มีการป้องกันมันคือ r = 0 แต่เมื่อฉันต้องการจัดรูปแบบมันบอกว่าฉันได้รับการป้องกัน ขอขอบคุณ

      William R Larreal G R dijo

    สวัสดี. ด้วยเหตุนี้ฉันจึงไม่ได้ลอง แต่ใน Windows ฉันทำทุกอย่างแล้วและไม่ได้ทำอะไรเลย pendrive ของฉันได้รับการป้องกันการเขียน แม้กระทั่งกับ sudo hdparm -r / dev / sdd มันให้ค่า 1 แต่ด้วย sudo hdparm -r0 / dev / sdd ก็ไม่สามารถลบการป้องกันการเขียนได้เช่นกัน ขอขอบคุณและทักทายจากเวเนซุเอลา
    เวอร์ชัน Linux ของฉันคือ openSUSE Tumbleweed 15.3

      คาร์ลอส เอจี รามอส dijo

    ข้อมูลที่ผ่านมามีความชัดเจนและเชื่อถือได้ Levei ชั่วโมงการทดสอบวิธีแก้ปัญหาจำนวนหนึ่ง และสิ่งนี้ นำเสนอที่นี่ เป็นที่สิ้นสุดสำหรับปัญหาเรื่องการอ่านและการบล็อกของgravação

      LUIS dijo

    ผลงานที่ยอดเยี่ยมทุกอย่างเป็นไปตามที่คุณกล่าวถึง ... ขอบคุณ

      อูเซียล dijo

    ขอบคุณมาก มีประโยชน์มาก สิ่งนี้มักเกิดขึ้นบ่อยใน usb วิธีแก้ปัญหานั้นง่ายและรวดเร็ว

      Lorenzo dijo

    ขอบคุณมากสำหรับการอุดหนุน
    ในกรณีของฉัน 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:~$

    กราเซีย