我已开始使用 TrueCrypt 加密外部 USB 硬盘上的分区。我选择使用原始分区,而不是文件容器。
但麻烦的是,每当我将此驱动器连接到运行 Vista 或 Windows 7 的计算机时,都会弹出一条消息“您需要先格式化驱动器 J: 中的磁盘,然后才能使用它”。
默认选项是“格式化磁盘”,我担心有一天我会不小心触发它。
有什么方法可以禁用该消息吗?
答案1
尝试进入控制面板 - 管理工具 - 计算机管理。在磁盘管理部分,删除原始分区的驱动器号。
它可以防止 Win7 要求您格式化分区,同时允许您在 TrueCrypt 中安装该分区。
如果不起作用,你可以尝试这个建议,即使用 Autokey 在消息框出现时自动关闭它。
答案2
我终于找到了解决方案。我在 Windows XP 和 Windows 7 上测试过。使用此解决方案,设备不会在插入时意外格式化另一台电脑。
当您使用 TrueCrypt 创建原始分区时,它会将其指定为分区类型,0x06.
这是一个 FAT 分区,Windows 将始终尝试挂载它。
使用如下实用程序比布尔布鲁克斯(或者您最喜欢的 RAW 分区编辑器),将其更改为其他内容。我选择了0x64
(基于可用的分区列表)“PC-ARMOUR 加密分区”。
更改它然后拔下并重新插入设备(电源循环)后,Windows 会将此分区视为外来分区,并且不会尝试安装它。我稍后会在 Linux 上测试它,但我相信这也会阻止 Linux 安装它。
PS:由于 Beeblebrox 似乎有点过时(Windows 版本上次更新于 2002 年),对于较新的 Windows,您可以使用内部磁盘分区。diskpart 的命令是:
list disk
select disk # <- your disk number here
list partition
select partition # <- your partition number here
set id=64
exit
感谢@jonas-heidelberg 和@mhenry1384。
答案3
我想再次确认 SylikC 给出的答案。您不想搞砸您的系统,您想在分区上指示它不应尝试安装它。但我发现这有两个部分。
首先,按照 SylikC 的说法,使用 diskpart set id=64 或从多种分区类型中进行选择。但如果您之前已为分区分配了驱动器号,Windows 10 仍会为您提供“格式化此磁盘”对话框。为了防止这种情况,您还需要删除磁盘上的驱动器号分配。
要做到这一点,前你设置分区类型
list volume
select volume <your volume with the drive letter>
remove letter=<your drive letter you want to remove>
set id=<now set the partition type>
...
如果你已经更改了分区类型,则必须先将其恢复到
set id=6
list volumes
select volume <your volume with the drive letter>
remove letter=<your drive letter you want to remove>
set id=64
就是这样。下次插入该 USB 驱动器时,不会再出现警告。而且我安装 TrueCrypt 驱动器时没有遇到任何问题。
答案4
在具有 UEFI 启动和 TrueCrypt/VeraCrypt 分区的 USB 记忆棒的 Windows 10 上,什么都不起作用。
Windows 10 以某种方式分配字母,DiskPart 和磁盘管理都看不到它们,但注册表项存在HKLM\SYSTEM\MountedDevices
,因此出现“格式化”消息......此外,在“安全删除硬件”时,它会在所有分区上出现字母。
Windows 10 的表现非常糟糕,以至于 EFI 分区在磁盘管理中没有带字母的分区,在 DiskPart 中它也不会被视为没有字母的卷,但是如果你进入资源管理器(使用“安全删除硬件”来了解字母但不要删除它),你会看到它带有字母并且可以进入它,修改文件/文件夹等。
重新连接时会重新创建密钥,因此没有可能的解决方案。
这个 Windows 10 令人头疼......都是因为将具有可移动媒体位的外部媒体视为“特殊”的单分区设备,即使它们有多个分区。
示例:在无法重新设置可移动媒体位的 USB 记忆棒上使用 NTFS+EFI+... 进行 USB EFI 启动。
警告:更改分区类型可能会损坏 VeraCrypt 分区上的数据。
但是,在注册表方面有一个技巧......执行此操作时要非常小心,并再三检查十六进制数据是否相同。
在注册表项上,有两个条目,每个分区都有相同的十六进制数据...嗯,一个以字母开头,一个以\??\Volume{
...开头
\??\Volume{
诀窍是重命名以属于您想要避免获取字母的分区的字母开头的字母。
不要以 开头,而\??\Volume{
要以 开头#{
。
当然,删除以 开头的那个\DosDevices\
。
然后,将其移除(使用“安全移除”功能)并重新插入。按F5刷新注册表中的键以检查它是否有效。
在我的测试中它是有效的,但必须非常小心...我坚持对十六进制数据进行四重检查以确保其相同...很多时候我没有对它进行四重检查,我犯了一个错误,有时在下次重新启动时Windows没有启动,所以我需要用一个丑陋的可启动Windows安装DVD来修复它,通过进入控制台模式并从DVD运行regedit(无需重新安装)。
因此,在删除任何内容之前,请保存该注册表配置单元,并仔细检查您所做的事情。
但请确保十六进制数据是您想要的,否则您的系统可能无法启动。再检查一遍!!!
添加:
- 如果你注意不要删除(只重命名)一个
\??\Volume{
,也不要编辑它的十六进制数据,那么你就可以安全 - 在最坏的情况下,你需要使用 Windows 安装 DVD 启动并进入控制台模式,运行 regedit,然后将其重命名为
\??\Volume{
所以:
- 每次只做一件事……最好谨慎行事
你已经被警告过了,是用手触摸注册表。
为什么这会起作用?
- 它告诉 Windows 忽略该“卷”,因此它不会分配字母或将其列在该设备的安全删除硬件列表中。
是的,这适用于 USB 存储卡、记忆棒等,无需触碰可移动媒体位……它只是为了隐藏这些分区。
附注:这对于您不想在 USB 连接上自动安装的任何其他分区也有效。