Ubuntu映像后无法删除Micro SD卡的只读属性


16

我无法从Kingston 32 GB Micro SD卡中删除只读属性。我想擦拭整个卡。

我得到了Raspberry Pi 3、32 GB的Micro SD卡和一个Echo。当我买到Micro SD卡时,它是刚出厂的。我下载了一个新的Ubuntu 16.04映像,并在Windows 10上使用Etcher对该卡进行了格式化。完成后,我插入了所有功能以使Raspberry正常工作,但没有任何反应。我开始有些恐慌,然后对自己说:“干得好,Scrat,你这个笨蛋。为什么你不能只等一会儿,然后搜索一个简陋的教程呢?”

我在Google上搜索了可能出了问题的地方以及应该做的事,不得不发现您不能只在上面放任何随机的Ubuntu映像。它必须是创建者提供的图像之一(在我的情况下为Ubuntu Mate或Raspbian)。

尝试使用Windows修复

尝试通过右键单击并通过Windows资源管理器进行重新格式化时,我遇到的第一件事是该卡处于只读模式。尝试在Windows资源管理器中访问它只会向我显示EFI目录,我对此并不感到惊讶。

我在互联网上发现的第一件事是关于卡上的开关/锁,但是我的卡根本没有任何锁。我既不使用卡本身也不使用我所使用的Robson迷你读卡器。

之后,我试图记住如何编辑磁盘。
请注意,那时我仍在使用Windows 10,因为我必须从外部驱动器复制旧的VM-Ware和系统映像,而我不知道该在哪里。

我打开了一个命令行,运行diskpart,并通过列出所有磁盘

list disk

哪个输出我的931 GB HDD,我的119 GB SSD(安装了Windows)和29 GB的Micro SD卡:

Datenträger###状态GrößeFrei Dyn GPT  
--------------- ------------- ------- ------- --- ---   
Datenträger0在线119 GB 0 B *  
Datenträger1在线931 GB 0 B *  
Datenträger2在线29 GB 29 GB

根据获得的信息,我知道Datenträger2 aka Disk 2是我要通过以下操作进行编辑的卡:

select disk 2

到目前为止,一切都很好。然后,我想通过执行以下操作来删除只读属性:

attributes disk clear readonly

其中也成功执行。

但是当我尝试做的时候:

clean

我收到了“硬件错误消息”(用德语,这就是为什么我不在这里复制它,但实际上它仅表示硬件错误)。尝试创建主分区或执行其他操作时,也会发生该错误。

在这一点上,我的恐慌开始变得越来越多。但是我试图保持镇静,因为我仍然袖手旁观。

我尝试使用以下程序:EaseUS Partition Master,Etcher(再次)和SD卡格式化程序,由于卡受到保护(只读,写保护)而全部失败。

我还尝试使用注册表编辑器通过创建密钥(尚不存在)来更改Windows对存储设备的行为:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

并创建一个新关键字(DWORD WriteProtect)并将其设置为0,这表示没有只读关键字。

尝试使用Linux修复

那也不起作用,我开始对Windows失去信心,于是我下了屁股,搜索我的外部驱动器,安装了VM-Ware,并运行了我在学校使用的Ubuntu 16.04虚拟机。

启动VM时,我已经注意到Ubuntu可以比Windows提供更多帮助(或者至少我是这样认为的,因为我的Linux技能在这方面受到限制)。我首先看到的是桌面上与该卡的链接图标,称为“ Ubuntu 16.04.2 LTS amd64”,其中包含Ubuntu需要工作的各种功能,如此处的图像所示

但这对我没有帮助。因此,我继续前进,启动了一个终端,并写道:

lsblk

哪个确认卡是可见的(sdb):

名称:最低RM尺寸RO型MOUNTPOINT
sda 8:0 0 30G 0磁盘 
s─sda18:1 0 30G 0部分/
sdb 8:16 1 29,2G 1个磁盘 
├─sdb18:17 1 1,5G 1部分/ media / pose / Ubuntu 16.04.2 LTS amd64
└─sdb28:18 1 2,4M 1部分 
sr0 11:0 1 1024M 0罗  

但是lsblk并不是很精确,所以我也使用了我们在学校学到的命令:

fdisk -l

精确一点:

磁盘/ dev / sda:30 GiB,32212254720字节,62914560扇区
单位:1 * 512的扇区= 512字节
扇区大小(逻辑/物理):512字节/ 512字节
I / O大小(最小/最佳):512字节/ 512字节
Disklabel类型:dos
磁盘标识符:0xa14a8cb2

设备启动起始端扇区大小ID类型
/ dev / sda1 2048 62914559 62912512 30G 83 Linux


磁盘/ dev / sdb:29,2 GiB,31306285056字节,61145088扇区
单位:1 * 512的扇区= 512字节
扇区大小(逻辑/物理):512字节/ 512字节
I / O大小(最小/最佳):512字节/ 512字节
Disklabel类型:dos
磁盘标识符:0x15e2543d

设备启动起始端扇区大小ID类型
/ dev / sdb1 * 0 3035519 3035520 1,5G 0空
/ dev / sdb2 14432 19295 4864 2,4M ef EFI(FAT-12 / 16/32)

我欣喜若狂,因为我以为我终于破解了该死的达芬奇密码或其他东西,所以我跑了

gparted

立即打开并显示错误消息:

驱动程序描述符表示物理块大小为2048字节,但是Linux表示为512字节。

我忽略了它,因为我认为这没什么大不了的,但是在忽略了前一个之后,又弹出了下一条错误消息:

/ dev / sdb上的分区1已被写入,但是我们无法将更改通知内核,这可能是因为它们正在使用中。结果,旧分区将继续使用。在进行进一步更改之前,您应该立即重新启动。

因此,我按照消息告诉我的方式进行了操作,然后重新启动。但这也没有用,因为相同的两个错误再次弹出。这次我都忽略了它们,而我从学校得知的旧的可信赖的老式窗户就打开了。

一旦更改为/ dev / sdb,它就会变得非常混乱。正如您在此处看到的那样,事情非常奇怪,因为现在sdb被以某种方式视为我的SSD而不是卡,但是卡中的映像仍已挂载。在这一点上,我太着急了,无法继续做任何事情,以免担心也会意外弄坏我的笔记本电脑。

顺便说一句,我还尝试赋予自己访问磁盘的权限并尝试使用该dd命令,但是出现了相同的错误消息(访问被拒绝,只读或某些方式,我不确定,但在此方向上有所了解) )。

我已经从亚马逊订购了另一张32 GB的Micro SD卡,以防旧的存储卡不再有希望。但是我还没有放弃。

(很抱歉,有些东西是德语,但我认为这些东西大部分是不言而喻的。)


磁盘可能切换了顺序,因为您在连接了SD卡的情况下重新启动了(下次在未连接SD卡的情况下重新启动了)。您的第二张图片非常有趣...如果我理解正确,那是来自VM内部的?只有30GiB磁盘和29.2GiB SD卡的VM?
Attie

是的,从VM内部。不过,我确实在没有连接的情况下重新启动,所以我不知道是不是这样。在/ dev / sda中,可以在安装虚拟机时为其分配属性内存空间,该空间应为30GiB。但是不知何故,插入了该死的卡,一切都弄混了
。– LordScrat

Answers:


6

好吧,您的帖子肯定很有趣。感谢那。

我知道这不是您要找的答案。但是,看起来SD卡确实停留在只读模式。您已竭尽所能。确实没有那么困难。

就像卡上有写保护开关一样。听起来您已确认没有,但也许只是仔细检查一下,再来一次?我想到的可能是您在mini-sd-sd适配器中使用了mini-SD卡。也许您查看了适配器,但没有看mini-sd卡本身?我不知道,只是把它扔在那里。如果有适配器,也许适配器本身坏了?我不记得您是否提到过尝试其他读卡器。读者可能变坏了吗?

除此之外,这样的事情在只读模式下“失败”是很常见的失败。所以,我的直觉告诉我卡片坏了。

看起来您处在正确的轨道上,只需对其进行替换即可。也许您可以在保修期内将坏货换掉,因为它是新的。让我们知道您的想法。


我认为这是一个很好的回应,但这并不是真正的答案,而是一种评论和希望。:)
Xavierjazz

是的,我要告诉老板,该卡无法再写了,只能将其发回亚马逊(他在上一个星期四之前得到了卡,所以我认为那没问题),然后取回了他的钱。我会用自己的钱来解决这个问题,因此可能是我在错误的Ubuntu上安装错误并可能对其进行了软锁定。猜猜我要少花16美元去买哈哈。不过,感谢您的评论。我感谢收到的每条评论。
LordScrat

2
好吧,这值得称赞。但是,您对软件所做的任何事情都不会破坏硬件。有时情况会变糟。
Appleoddity '17

4

当我使用iso映像时,此类只读问题一直在我身上发生。

我如何解决此类问题:

请注意,这<yoursdcard>是设备而不是分区,因此例如sdc

  1. 引导某种Linux
  2. 打开一个终端
  3. 找出您的SD卡是什么设备,并使用sudo fdisk /dev/<yoursdcard> -l或来获取它的设备名称,以便您也可以使用sudo parted /dev/<yoursdcard> -l

警告:以下命令将破坏所有数据,/dev/<yoursdcard>因此请确保该<yoursdcard>设备正确!!!!

  1. 执行 sudo dd if=/dev/zero of=/dev/<yoursdcard> bs=1000000 count=50
  2. 执行 sudo fdisk /dev/<yoursdcard>
  3. 现在使用命令o在sdcard上创建一个新的MSDOS分区表,然后使用该n命令添加新的分区并用于w将更改写入sdcard并退出fdisk
  4. 现在使用sudo mkfs -t <filesystem you want> /dev/<yoursdcard>1格式化分区
  5. 现在,您的sdcard应该可以再次使用

如果这样不起作用:

  1. 打开终端
  2. 找出设备什么<yoursdcard>
  3. 执行 sudo su
  4. 执行 echo "0" > /sys/block/<yoursdcard>/ro

我很想尝试一下,但是正如您在第二张图片中所看到的,Ubuntu有点混淆了/ dev / sdb(应该是我的Micro SD)和我的SSD(或者相反,但是那是我所知道的错误) ,我真的不想删除它,是吗?
LordScrat

当然,您不需要,但是fdisk它比gparted它可靠得多,并且它会检测它是否正确检测了sdcard。(请参阅步骤3)
testeaxeax

1
您可以使用自动创建的de / dev / disk / by-id别名。他们内部有制造商和连接总线,因此您可以确定它是什么设备。
约翰·基茨

3

请记住,该卡可能只是被损坏了。他们有一些闪光灯和一个板上控制器。如果卡认为有问题,则它将完全脱机或在没有足够的可用闪存单元写入的情况下变为只读状态。有时,控制器会保留闪存芯片的记帐信息,该信息可能会损坏,导致其以安全模式启动并且不允许任何操作。为了摆脱这种麻烦,您需要一个“真正的” SD卡读取器,而不是仅用于海量存储的读取器。“真实的” SD接口可以访问控制器,并可能为您提供所需的信息。


1

是啊。Ubuntu映像使用某种奇怪的格式,破坏了大多数格式化工具。我想这是他们所做的某种事情,以便图像可以在DVD上工作。我对此非常了解(请阅读:我一直需要制作Ubuntu安装磁盘,但我讨厌以后再格式化磁盘),这很烦人。

在Ubuntu(VM)上使用Gparted删除驱动器上的所有分区,然后添加新的FAT32分区。注意:我很确定GParted使用的是root密码,而不是您用来登录的普通密码。如果您不知道root密码,则很可能尚未设置该密码。运行“ sudo passwd”以设置root密码,然后使用该密码打开GParted。您也可以使用“ sudo gparted”。

或者,在Windows上找到并安装免费程序SDFormatter4(注意:在Ubuntu中也可以在WINE下运行),然后使用它以覆盖模式格式化卡。就像我不喜欢专有软件一样,这有更好的工作机会。

与内置实用程序相比,这两种格式在卡格式化方面都比较幸运。

当然,SD卡和USB驱动器特意失败进入只读模式,从而使您有机会进行数据恢复。如果该卡是远程的,则不会发生这种情况,但是有可能。我还建议使用Samsung或Sandisk卡,因为金士顿卡通常是伪造的,并且很快就会失效。实际上,我曾经有过一次非常严重的问题,实际上是卡故障。我希望情况并非如此。


-1

嗯 我应该链接这篇文章,因为我有点从这里开始,以某种方式结束了另一篇文章。

在此处输入链接说明

首先确保它不是读卡器!

此问题很容易由损坏的文件系统引起。该问题可能是由许多原因引起的。如果您在Linux上对其进行格式化而不卸载,或者对其进行了重新分区,则它将被安装,或者如果分区损坏,则可能会发生这种情况。最好的办法是使用Linux命令fsck /dev/sdb1或任何驱动器名称/dev/sdd1。它可能会认为/dev/sdb1好像在microSD上文件系统已损坏。这个错误很容易犯,因为看看这个...

root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc1: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech#

我不得不卸载驱动器两倍卸载两个分区...是的这是应该是一个microSD /dev/sdd/dev/sde或之后。

但是,fsck如果运行认为它是只读的,则可能不会删除该脏位。在此之前,Linux内核仍将使用旧分区,这意味着您将收到只读错误,因为用户无法为旧分区授予权限。有时,引导驱动器会使内核切换到新分区,例如,如果您使用程序来创建新分区表。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.