TL;DR -Windows 10 突然将通过 USB 插入的全新三星 860 evo 驱动器视为“写保护”。我该如何解除该问题?
细节:
联想 X1 carbon 第三代,配备三星 250GB M.2 SSD。需要更多空间。购买了 1TB 三星 860 evo,配备 1TB、M.2 和 SATA,因为第三代 X1 不支持 NVMe。
我们这里使用的是 Windows 10。我做过很多次类似的事情,包括我第一次买这台笔记本电脑的时候。我在硬件之间迁移时至少复制了 3 次磁盘,我讨厌“安装 Windows”,而且没有必要。
通常我只是从记忆棒启动 FreeBSD,使用一些 USB 转 SATA 适配器,然后将整个原始磁盘映像 dd 到新介质并换出介质。已经这样做了几十次。这次我想,管他呢,让我们使用 cygwin dd 来做这件事。以管理员身份启动 cygwin shell 并输入:
dd if=/dev/sda of=/dev/sdb bs=100M status=progress
制作了原始磁盘副本。但后来我决定(也许是错误的)看看我是否也可以在克隆的 NTSF 卷上运行 checkdisk,以说明我刚刚复制了一个实时安装的卷。这就是事情变糟的地方。
克隆后,拔下并重新插入新驱动器。Windows 10 中的分区控制面板现在显示驱动器的分区布局与磁盘 1 相同,与我的主驱动器(磁盘 0)相同。它显示一条警告,说磁盘 1 处于“脱机”状态,因为它具有与磁盘 0 相同的 ID,当然,它是一个克隆。但要在 NTSF 分区上运行 checkdisk,我需要将其联机。所以我这样做了,并分配了一个驱动器号,我运行了 checkdisk,然后移除驱动器并关机。将旧的内置 M.2 棒换成这个新的,然后启动。
蓝屏显示:
错误 0xc000000e。我查了一下,这与未正确找到启动内容有关。我分析了可能的解释:
- 驱动器在物理上无法与 X1 3rd gen 的内部插槽互操作?——不!因为蓝屏是 Windows 的问题,必须来自这个驱动器,所以无法启动只会回到 BIOS。
- 不知何故,我的“在线”和检查磁盘和驱动器号分配使启动 NTSF 卷永久地显示为驱动器号 D:,因此第二遍引导加载程序无法找到它。
- 有些更复杂的东西,不太可能。
现在我把旧驱动器换回去,启动笔记本电脑时没有出现任何问题,现在我想通过再次复制驱动器来撤消驱动器号分配。但这开始失败了。我尝试在分区管理器上再次将驱动器 1 设置为“脱机”,拔下它并重新插入,现在它显示所有分区都消失了。好的,没问题,让我们再次将这个东西脱机并再次克隆。但发生了以下情况:
结果是“该媒体已被写保护”。
嗯?为什么突然被写保护了?事实上我的 dd 也失败了:
$ dd if=/dev/sda of=/dev/sdb bs=100M status=progress
dd: error writing '/dev/sdb': Read-only file system
1+0 records in
0+0 records out
4294967295 bytes (4.3 GB, 4.0 GiB) copied, 0.385278 s, 11.1 GB/s
突然出现“写保护”是什么?我该如何解除它?
新驱动器没有损坏,我仍然可以使用 dd 读取它。但它的分区已经消失,无法脱机,也无法初始化,现在写入原始状态。
不幸的是,我的小记忆棒坏了,所以我现在无法启动到 FreeBSD 并再次修复它,所以我不知道这是否也会以某种方式认为这个驱动器现在受到写保护。
知道如何重置该驱动器并从头开始吗?
答案1
你可以尝试以下几件事
使用CMD删除磁盘写保护
敲击
Windows Key + X
键盘,然后从菜单中选择命令提示符(管理员)。输入
diskpart
并按 Enter。输入
list disk
并按 Enter。键入
select disk
#(例如:磁盘 1)以选择写保护的磁盘,然后按 Enter。
您可以通过输入来查看当前属性
attributes disk
键入
attributes disk clear readonly
以更改磁盘的属性,使其不再是只读的,然后按 Enter。键入
exit
并连续按两次 Enter 退出 Diskpart 和命令提示符。重新插入您的 USB 闪存驱动器以检查写保护错误是否已解决。
通过编辑注册表禁用写保护
按 Windows 键 + R 打开运行对话框。输入 regedit 并按 Enter 或单击“确定”打开注册表编辑器。
展开左侧窗格中的条目以导航到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\控制
查找
WriteProtect
中 名为 的值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
。如果存在,则删除它。如果不存在,您可以从 中复制它,HKEY_CURRENT_USER\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
或者从步骤 3 继续执行。 如果两个位置都不存在“WriteProtect”值,则此安全设置可能不是您的问题。
- 右键单击 Control(文件夹)键,选择“新建”,然后单击“键”。将新键命名为
StorageDevicePolicies
。
- 选择新创建的键,然后右键单击右侧窗格中的空白处。选择新建,然后单击 DWORD(32 位)值。将新的 DWORD 命名为 WriteProtect。
- 双击新创建的 DWORD 并将其值从 1 更改为 0。单击“确定”以应用更改。
提示:1 表示“是,对我的 USB 存储设备进行写保护”。相反,0 表示“否,不对我的 USB 存储设备进行写保护”。
- 关闭注册表编辑器并重新启动计算机。
答案2
我不知道该只读属性是如何设置的,但这似乎是 Windows 独有的问题。
我最终从记忆棒启动到 FreeBSD,这只有在我关闭 BIOS 中的 UEFI 安全启动并允许 Legacy Boot 后才有可能。然后我执行了正常程序,在本例中为:
dd if=/dev/ada0 of=/dev/da1 bs=100M status=progress
(当然,您必须小心地确保您的设备名称已被识别,以免意外地破坏磁盘的最后一个工作副本!)
然后我修复了 GEOM 标签
gpart repair /dev/da1
这会备份驱动器最后一个扇区中的主分区表。完成后,将新的 1TB 驱动器安装为内部驱动器,系统会像从旧驱动器一样直接启动到 Windows 10。