本文所述方法适用于 U 盘, 因为 Windows 内置的 diskpart 工具只能对本地存储 (也有可能是被系统识别为 "本地磁盘的介质", 如硬盘, 移动硬盘) 进行该操作.
由于 U 盘通常只有 1 个分区, 且 Windows 下只能对该介质第 1 个分区分配驱动器号. 本文不考虑第 1 个之后的分区.
该介质必须是 GPT (GUID 分区表) 形式才能继续.
此操作可能会导致数据丢失, 请勿对存有重要数据的介质进行操作.
如果你不了解本文的意义, 或对本文所述的操作没有十足的把握请勿手贱.
0. 请先完成所有数据传输任务, 包括读取; 写入; 格式化; 磁盘检查.
1. 使用 WinHex 打开该物理介质, 按 F9.
2. 确保光标指向 0x0 偏移处, 然后执行 "查看" ---> "模板管理器".
3. 选择 GUID Partition Table, 单击 "应用".
4. 找到 GUID Partition Table Entry #1, 这是第 1 个分区的信息.
5. 再找到 430 Attribute Bits, 右侧的 "00 00 00 00 00 00 00 00" 修改为 "00 00 00 00 00 00 00 10".
6. 关闭该窗口, 保存修改.
7. 按 Ctrl + S 再次保存修改.
8. 打开 DiskGenius, 在左侧选择该存储介质, 此时会弹出 "GUID 主分区表数据 CRC 错误", 单击 "更正".
9. 在窗口左上角找到并单击 "保存更改", 单击 "是".
10. 退出 DiskGenius, 拔下 U 盘并重新插入.
以上操作在本机可能不会立即生效, 但插入另一 PC 却可以生效. 附解决方法:
1. 在资源管理器中打开 U 盘第 1 个分区, 向分区内复制或新建一个大小大于 0 的任意文件.
2. 再次运行 WinHex, 按下 F9 找到并打开该介质的第 1 个分区.
3. 按下 F10, 在弹出的窗口左上角找到并选择 "更新快照", 单击 "确定".
4. 找到新建的文件, 鼠标右键单击该项目, 选择 "安全擦除".
5. 单击 "确定", 此时会提示 "无法写入移动存储介质", 单击 "中止".
6. 再次在资源管理器中打开 U 盘第 1 个分区, 右键菜单中的 "新建" 将会消失, 表示对该分区的只读设置已生效.
效果:
该分区内的文件:
只能读取;
不能修改;
不能删除分区内的现有文件;
不能修改文件的属性及安全信息 (NTFS).
该分区:
不能格式化;
不能向分区内添加文件.
该介质:
可正常读写;
删除分区;
擦除介质数据 (包括分区表信息及存储的数据)
原理:
绕过 diskpart 对移动存储介质设置只读属性的限制, 同时手工重现 diskpart 对分区设置只读属性的逻辑.
在不同系统 (Windows) 下的测试结果:
Windows 7: 不稳定, 写保护有时会失效. 但没有足够多的测试机器证实. 目前已知在一台式机和 VMware 下出现. 可能是该系统对 GPT 存储介质的支持不完善.
Windows 10: 尚未发现写保护失效的情况.
Windows XP / Vista / 8 / 8.1: 未测试.
MBR 分区表形式 U 盘只读属性的研究尚未开始.
由于 U 盘通常只有 1 个分区, 且 Windows 下只能对该介质第 1 个分区分配驱动器号. 本文不考虑第 1 个之后的分区.
该介质必须是 GPT (GUID 分区表) 形式才能继续.
此操作可能会导致数据丢失, 请勿对存有重要数据的介质进行操作.
如果你不了解本文的意义, 或对本文所述的操作没有十足的把握请勿手贱.
0. 请先完成所有数据传输任务, 包括读取; 写入; 格式化; 磁盘检查.
1. 使用 WinHex 打开该物理介质, 按 F9.
2. 确保光标指向 0x0 偏移处, 然后执行 "查看" ---> "模板管理器".
3. 选择 GUID Partition Table, 单击 "应用".
4. 找到 GUID Partition Table Entry #1, 这是第 1 个分区的信息.
5. 再找到 430 Attribute Bits, 右侧的 "00 00 00 00 00 00 00 00" 修改为 "00 00 00 00 00 00 00 10".
6. 关闭该窗口, 保存修改.
7. 按 Ctrl + S 再次保存修改.
8. 打开 DiskGenius, 在左侧选择该存储介质, 此时会弹出 "GUID 主分区表数据 CRC 错误", 单击 "更正".
9. 在窗口左上角找到并单击 "保存更改", 单击 "是".
10. 退出 DiskGenius, 拔下 U 盘并重新插入.
以上操作在本机可能不会立即生效, 但插入另一 PC 却可以生效. 附解决方法:
1. 在资源管理器中打开 U 盘第 1 个分区, 向分区内复制或新建一个大小大于 0 的任意文件.
2. 再次运行 WinHex, 按下 F9 找到并打开该介质的第 1 个分区.
3. 按下 F10, 在弹出的窗口左上角找到并选择 "更新快照", 单击 "确定".
4. 找到新建的文件, 鼠标右键单击该项目, 选择 "安全擦除".
5. 单击 "确定", 此时会提示 "无法写入移动存储介质", 单击 "中止".
6. 再次在资源管理器中打开 U 盘第 1 个分区, 右键菜单中的 "新建" 将会消失, 表示对该分区的只读设置已生效.
效果:
该分区内的文件:
只能读取;
不能修改;
不能删除分区内的现有文件;
不能修改文件的属性及安全信息 (NTFS).
该分区:
不能格式化;
不能向分区内添加文件.
该介质:
可正常读写;
删除分区;
擦除介质数据 (包括分区表信息及存储的数据)
原理:
绕过 diskpart 对移动存储介质设置只读属性的限制, 同时手工重现 diskpart 对分区设置只读属性的逻辑.
在不同系统 (Windows) 下的测试结果:
Windows 7: 不稳定, 写保护有时会失效. 但没有足够多的测试机器证实. 目前已知在一台式机和 VMware 下出现. 可能是该系统对 GPT 存储介质的支持不完善.
Windows 10: 尚未发现写保护失效的情况.
Windows XP / Vista / 8 / 8.1: 未测试.
MBR 分区表形式 U 盘只读属性的研究尚未开始.