Lor*_*rat 19 linux sd-card partitioning ubuntu windows-10
我无法从金士顿 32 GB 微型 SD 卡中删除只读属性。我想把整张卡擦干净。
我得到了一个 Raspberry Pi 3 和一个 32 GB 的微型 SD 卡和一个 Echo 来玩。当我拿到 Micro SD 卡时,它是全新的。我下载了一个新的 Ubuntu 16.04 映像,并在 Windows 10 上使用 Etcher 格式化了卡。完成后,我插入了所有让 Raspberry 工作的东西,但发现没有任何反应。我开始有一点慌了,心里想:“干得好Scrat,你绝对白痴你为什么不能只是等待一点点,google了该死的教程。”
我在 google 上搜索了可能出错的地方以及我应该做的事情,但不得不发现您不能随意放置任何 Ubuntu 映像。它必须是创建者提供的图像之一(在我的情况下是 Ubuntu Mate 或 Raspbian)。
在尝试通过右键单击并通过 Windows 资源管理器重新格式化来重新格式化时,我遇到的第一件事是该卡处于只读模式。尝试在 Windows 资源管理器中访问它只显示了 EFI 目录,我对此并不感到惊讶。
我在互联网上发现的第一件事是关于卡上的开关/锁,但我的卡根本没有任何锁。卡片本身和我用来阅读的 Robson 迷你读卡器都不是。
后来我试着记住如何编辑磁盘。
请注意,当时我仍在使用 Windows 10,因为我必须从外部驱动器复制旧的 VM-Ware 和系统映像,而我不知道那在哪里。
我打开一个命令行,运行 diskpart,并通过以下方式列出我的所有磁盘
list disk
Run Code Online (Sandbox Code Playgroud)
输出我的 931 GB HDD、我的 119 GB SSD(安装 Windows 的地方)和 29 GB Micro SD 卡:
Datenträger ### 状态 Größe Frei Dyn GPT --------------- ------------- ------- ------- --- --- 数据采集器 0 在线 119 GB 0 B * 数据采集器 1 在线 931 GB 0 B * Datenträger 2 在线 29 GB 29 GB
根据我得到的信息,我知道 Datenträger 2 aka Disk 2 是我想要编辑的卡:
select disk 2
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。然后我想通过执行以下操作来删除只读属性:
attributes disk clear readonly
Run Code Online (Sandbox Code Playgroud)
这也成功执行。
但是当我尝试这样做时:
clean
Run Code Online (Sandbox Code Playgroud)
我收到了一条“硬件错误消息”(在德语中,这就是我不在这里复制它的原因,但它基本上只说硬件错误)。尝试创建主分区或执行其他操作时也会出现该错误。
在这一点上,我的恐慌开始越来越大。但我尽量保持冷静,因为我的袖子里还有一些小把戏。
我尝试使用以下程序:EaseUS Partition Master、Etcher(再次)和 SD Card Formatter 由于卡被保护(只读、写保护)而全部失败。
我还尝试使用注册表编辑通过创建密钥(尚未存在)来更改 Windows 对存储设备的行为:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
Run Code Online (Sandbox Code Playgroud)
并创建一个新关键字 (DWORD WriteProtect) 并将其设置为 0,这意味着非只读。
这也不起作用,我开始对 Windows 失去信心,所以我停下来搜索我的外部驱动器并安装 VM-Ware 并运行我在学校使用的 Ubuntu 16.04 虚拟机。
启动 VM 我已经注意到 Ubuntu 比 Windows 能够帮助我更多(或者至少我是这么认为的,因为我的 Linux 技能在这方面是有限的)。我看到的第一件事是桌面上的一个链接图标,它指向名为“Ubuntu 16.04.2 LTS amd64”的卡,其中包含 Ubuntu 需要在此处的图像中看到的各种内容。
但这对我没有帮助。所以我继续并启动了一个终端并写道:
lsblk
Run Code Online (Sandbox Code Playgroud)
其中确认卡是可见的(sdb):
名称 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 磁盘 ??sda1 8:1 0 30G 0 部分 / sdb 8:16 1 29,2G 1 个磁盘 ??sdb1 8:17 1 1,5G 1 部分 /media/pose/Ubuntu 16.04.2 LTS amd64 ??sdb2 8:18 1 2,4M 1 部分 sr0 11:0 1 1024M 0 ROM
但是 lsblk 不是很精确,所以我也使用了我们在学校学到的命令:
fdisk -l
Run Code Online (Sandbox Code Playgroud)
哪个更精确一点:
磁盘 /dev/sda:30 GiB,32212254720 字节,62914560 个扇区 单位:1 * 512 = 512 字节的扇区 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型: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 字节 磁盘标签类型:dos 磁盘标识符:0x15e2543d 设备引导开始结束扇区大小 ID 类型 /dev/sdb1 * 0 3035519 3035520 1,5G 0 空 /dev/sdb2 14432 19295 4864 2,4M ef EFI (FAT-12/16/32)
我欣喜若狂,因为我以为我终于破解了该死的达芬奇密码之类的,所以我跑了
分道扬镳
立即打开并显示错误消息:
驱动程序描述符说物理块大小是 2048 字节,但 Linux 说它是 512 字节。
我忽略了,因为我认为这没什么大不了的,但在忽略上一个之后,下一个错误消息弹出:
/dev/sdb 上的分区 1 已写入,但我们无法将更改通知内核,可能是因为它/它们正在使用中。因此,旧分区将继续使用。在进行进一步更改之前,您应该立即重新启动。
所以我按照消息告诉我的去做并重新启动。但这也没有用,因为同样的两个错误又出现了。这一次我都忽略了它们,我从学校知道的那个古老的、可靠的 gparted 窗口打开了。
一旦我更改为 /dev/sdb,它就变得非常混乱。正如你在这里看到的,事情很奇怪,因为现在 sdb 以某种方式被认为是我的 SSD 而不是卡,但卡中的图像仍然挂载。在这一点上,我太焦虑了,不敢继续做任何事情,因为害怕不小心也把我的笔记本电脑搞砸了。
顺便说一句,我也尝试过授予自己访问磁盘的权限并尝试使用该dd命令,但出现相同的错误消息(访问被拒绝,只读或其他内容,我不太确定,但是在这个方向上)。
我已经从亚马逊订购了另一张 32 GB Micro SD 卡,以防旧卡没有希望。但我还没有放弃。
(抱歉,有些东西是用德语写的,但我认为这些东西大部分都是不言自明的。)
嗯,你的帖子肯定很有趣。感谢那。
我知道这不是你要找的答案。但是,看起来 SD 卡确实处于只读模式。你已经做了你能做的一切。真的没有那么难。
它就像卡上有写保护开关一样。听起来你确认没有,但也许只是再检查一次?想到的想法可能是您在 mini-sd 到 sd 适配器中使用了 mini-SD 卡。也许您查看的是适配器,而不是 mini-sd 卡本身?我不知道,只是把它扔在那里。如果有适配器,可能是适配器本身坏了?我不记得你是否提到过是否尝试过不同的读卡器。也许读者变坏了?
除此之外,这样的事情在只读模式下“失败”是很常见的失败。所以,我的直觉告诉我卡坏了。
看起来您在正确的轨道上,只需更换它。也许您可以在保修期内更换坏的,因为它是新的。让我们知道你想出了什么。
当我使用 iso 映像时,这种只读问题总是发生在我身上。
请注意,这<yoursdcard>是一个设备而不是分区,例如sdc
sudo fdisk /dev/<yoursdcard> -l或 获取设备名称进行验证,您也可以使用sudo parted /dev/<yoursdcard> -l 警告:以下命令将破坏所有数据,/dev/<yoursdcard>因此请确保该<yoursdcard>设备是正确的!!!!
sudo dd if=/dev/zero of=/dev/<yoursdcard> bs=1000000 count=50sudo fdisk /dev/<yoursdcard>o在您的 sdcard 上创建一个新的 MSDOS 分区表,然后使用该n命令添加一个新分区并使用w将更改写入您的 sdcard 并退出 fdisksudo mkfs -t <filesystem you want> /dev/<yoursdcard>1格式化您的分区<yoursdcard>是什么设备sudo suecho "0" > /sys/block/<yoursdcard>/ro小智 5
请记住,卡可能只是坏了。他们有一些闪光灯和一个控制器。如果卡认为它有问题,它将完全脱机或在没有足够的工作闪存单元进行写入时变为只读。有时控制器会保留闪存芯片的记帐信息,这些信息可能会损坏,导致它以安全模式启动并且不允许任何操作。要解决这类问题,您需要一个“真正的”SD 卡读卡器,而不是只支持大容量存储的读卡器。“真正的” SD 接口可以访问控制器,并可能为您提供所需的信息。
| 归档时间: |
|
| 查看次数: |
46663 次 |
| 最近记录: |