在Linux上写受保护的Pendrive

写保护的Pendrive

如果您有SD存储卡,pendrive或所需的任何USB存储盘 写保护,在本文中,我们将一步一步地告诉您如何轻松做到这一点。 某些驱动程序允许使用一些防写保护,称为“写保护位»根据它是在1还是0上处于活动状态,它将允许写入该单元或不写入该单元。 此位不应与CPU的标志寄存器的WP混淆,后者通过在类似UNIX的系统上创建分支过程来防止覆盖,从而保护主存储器免于数据写入。 也没有我们在某些SD卡或存储介质中找到的典型保护标签。 在这种情况下,我们指的是在辅助存储介质中实现的保护。

而控制器的 储存介质 USB或SD存储卡或任何手段检测到该位处于活动状态,驱动程序将阻止内核下达写命令,因此它只能读取内容。 当我们存储不想被修改的数据时,这是非常实用的,以防止错误写入或删除。 但是,如果这些受保护的介质之一落入我们的手中,而我们不知道该位的存在,我们可能会浪费时间以为我们的设备已损坏,或者升高和降低某些Pendrive或SD卡必须保护的卡舌他们没有任何结果(锁定/解锁)...

挂载只读或只读介质:

带有“锁定”标签的SD卡

尽管这并不是我们所希望的写保护位,但我们也可以发现已经有一种介质 自动或手动安装为只读,因此我们将无法在其中编写代码。 在某些情况下,这可能会很烦人,并阻止我们修改或存储内容。 好吧,解决这个问题的方法非常简单。

相关文章:
在Linux中禁用USB存储

例如,如果在/ 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存储介质之间的接口。 请记住,包括读卡器(例如SD)在内的许多USB存储介质控制器也使用这种类型的控制器进行操作,因此它也与它们兼容。

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

就是这么简单 启用或禁用此位。 它没有太多的奥秘,但是对于那些不知道这一点的人来说,在取消保护其存储介质时可能会感到头痛。

希望它对您有所帮助,现在您知道如何制作写保护的笔式驱动器,别忘了 发表您的评论小号...


20条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   埃尔南

    您好!
    首先,感谢您的注释! 它们总是非常有用的。

    我是Debian 9用户。
    在这种情况下,我有一个无法解决的问题。 我有一支“感染”的笔,具有无法删除的写保护。 我已经认为它是物理上的,因为我已经诚实地尝试了所有操作(Windows或底层磁盘的低级格式化,修改分区等),什么也没做。

    我以为我要解决这个问题,当按照您的步骤进行操作时,我发现笔式驱动器的写保护处于“开”状态,但是一旦将其更改为“关”,我仍然无法删除或修改其上的任何内容。

    可能是哪个? 还有其他解决方法吗? (我不介意丢失我里面的信息)

    预先感谢您的帮助。

    埃尔南

    1.    帕科

      你好! 我不知道他们是告诉您解决方案还是最终解决了您的问题,但是我和您一样。
      你能告诉我吗?
      非常感谢。

  2.   威廉·萨尔加多

    很好的解释

  3.   塞尔吉奥

    您好,我有一个系统无法识别的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,SerialNumber = 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字节
    磁盘标签类型: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

  4.   敏捷

    感谢您的帮助,现在我能够知道我的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,您已完成

  5.   MGT

    对羟基苯甲酸酯! 我对这个主题给出的许多伏特是一个简单的解释。 谢谢Moi。

  6.   胜利者

    伟大的。 谢谢你。

  7.   井织

    最后,对我来说确实有用的东西,谢谢。

  8.   停止

    您好,我有一个16 GB ADATA类别10 microsd内存

    我执行了该过程,它似乎可以正常工作,但是重新插入并重新检查状态会将其恢复为只读状态。

    我试图格式化它,但是它不起作用。 我可以看到的是我的文件。

    还有其他解决问题的工具或方法吗?

  9.   何塞

    简单,简洁,完善的所有解释和示例,已经非常有用。

  10.   米格尔·安赫尔

    您好,我是Kali Linux的最新版本的用户,我已经尝试了十亿种技术(很夸张地说很抱歉),但是这些技术都没有在Linux和Windows中提供给我

  11.   丹尼卡酮

    就我而言,debian,必须卸下可移动内存…。

  12.   JR

    太好了,谢谢
    我已经设法按照他们的指示恢复了一些促销摘要

  13.   杰罗

    您好,它可以工作,但是用户的文件夹有所不同,最好弄清楚它,但是我有一个错误,在命令中它告诉我修改了它,但是当我想将文件夹或任何其他东西放在Pendrive上时,它会告诉您对我来说,它是受写保护的。 如果您可以帮助我解决问题,那就太好了。 问候

  14.   奥丽尔

    接受命令并将其显示为不受保护,则它为r = 0,但是当我要格式化时,它告诉我受保护。 谢谢

  15.   威廉 R 拉雷尔 G

    你好,美好的一天。 有了这个,我还没有尝试过,但在 Windows 中,我什么都没做。 我的 Pendrive 是写保护的,即使使用 sudo hdparm -r / dev / sdd 它也会给出值 1,但是使用 sudo hdparm -r0 / dev / sdd 它也无法删除写保护。 来自委内瑞拉的感谢和问候。
    我的 Linux 版本是 openSUSE Tumbleweed 15.3

  16.   卡洛斯·拉莫斯

    过去的信息清晰可靠。 我花了几个小时测试了一些解决方案,这里介绍的是解决阅读和阻止 gravação 问题的最终解决方案。

  17.   路易

    出色的贡献,一切都如你所说......谢谢

  18.   乌兹尔

    非常感谢,非常有用,这在usb中经常发生,解决方法简单快捷。

  19.   洛伦佐

    非常感谢您的贡献。
    就我而言,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:~$

    谢谢