当前位置: 首页>>技术问答>>正文


USB将写保护关闭

,

问题描述

我有一个写保护的USB:

dmesg | tail

[10098.126089] sd 7:0:0:0: [sdb] Write Protect is on
[10098.126098] sd 7:0:0:0: [sdb] Mode Sense: 23 00 80 00
[10098.126779] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.126788] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.131418] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.131425] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.133335]  sdb: sdb1
[10098.135509] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.135515] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.135521] sd 7:0:0:0: [sdb] Attached SCSI removable disk

我怎样才能关闭写保护?

我试过的

  1. 检查它是否有硬件开关 – 不

  2. 试图格式化它在Windows和Linux上(也通过终端)

  3. 试过fdisk | chmod

  4. 试图用Ubuntu软件中心的几个工具来解决这个问题

  5. 谷歌使用过这个问题已经有大约10,000次的讨论,但它们从未解决

附加信息

fsck -n /dev/sdb1

fsck from util-linux 2.19.1
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
  65:01/00
  Not automatically fixing this.
Free cluster summary wrong (968250 vs. really 911911)
  Auto-correcting.
Leaving file system unchanged.
/dev/sdb1: 50 files, 93653/1005564 clusters

fdisk -l

   Device  boot.   Start        End      Blocks   Id  System
/dev/sdb1            32     8060927     4030448    b  W95 FAT32

umount /dev/sdb1

mkfs -t vfat /dev/sdb1

mkfs.vfat 3.0.9 (31 Jan 2010)
mkfs.vfat: unable to open /dev/sdb1

最佳解决办法

要关闭磁盘设备的写保护,我们使用如下的低级系统实用程序hdparm:

sudo hdparm -r0 /dev/sdb

我们假设/dev/sdb是我们正在开发的物理磁盘设备。如果设备具有以read-only形式安装的分区,则应将re-mount’em作为read-write以向其写入数据。

希望有所帮助。

次佳解决办法

在研究了你的问题之后,看起来这是某些品牌的USB闪存驱动器(一些老三星,金士顿型号)的not-too-uncommon问题,它基本上只是”crap out”而不知道原因。人们曾试图打开它们并跳过两条线索(也许来自一个片状开关?)而无济于事。如果你仍然有这个驱动器,它仍然在保修期内,我会退还它,并获得更换。

我不想把坏消息打破给你,但是看起来你在这种情况下运气不佳,因为我读过的所有内容都指向硬件故障。

编辑05/27/2016:我个人最近遇到了闪存驱动器问题。在我的情况下,这是一个Corsair Flash Voyager 128GB,开始在我身上大幅放缓。虽然它没有显示这里提到的症状,但它偶尔不会安装并显示为”Silicon Power”设备。这是驱动器累积了大量坏扇区并进入诊断/编程模式的结果。由于这是我更受欢迎的答案之一,这也属于“失败的闪存驱动器”类别,我想我会把它包括在这里以供参考。

第三种解决办法

使用fdisk -l定位驱动器,即:/dev /sdc1

现在

umount /dev/sdc1

最后,重新格式化flash-drive

sudo mkfs -t vfat /dev/sdc1

我发现这很简单。尝试格式化之前,务必先卸载硬盘。

第四种办法

天使的回答很好,但实际的命令对我来说并不那么容易。这是什么工作:插入卡(我的SD卡上有一个手动write-protect开关,但开关关闭,它可以在Windows机器上写入)。 Ubuntu在/media /andrew /6AB0-1FD91上自动挂载,dmesg显示该分区为/dev /sdb1。

卸载它,并使其可写

sudo umount /dev/sdb1
sudo hdparm -r0 /dev/sdb

创建一个新的挂载点并将其挂载(我的/etc /passwd中的userID为1000)

sudo mkdir /media/andrew/temp
sudo mount -o uid=1000 /dev/sdb1 /media/andrew/temp

它仍然会抱怨它是read-only。我不知道为什么我必须在安装之后和之后更改此标志,但这是它为我工作的唯一方式。将其设置为可再次写入,并将其重新装入到同一位置

sudo hdparm -r0 /dev/sdb1
sudo mount -o remount,rw /dev/sdb1

现在我可以以普通用户的身份写入磁盘。如果它真的失败了,我会非常小心,但这些命令让我完成了我正在做的事情。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/882.html,未经允许,请勿转载。