有没有办法让 Windows 以与 Linux 相同或类似的方式检测硬盘:不自动挂载文件系统。
Windows 可能需要很长时间才能识别故障驱动器,因为它会尝试挂载它所识别的文件系统,从而给它带来更大的压力,而 Linux 环境中的同一驱动器可能不会出现任何问题。
答案1
由于 Microsoft 操作系统的内部工作原理,将故障驱动器连接到运行 Microsoft 操作系统的计算机会增加失败的可能性,正如 DrMoishe Pippik 在其评论中概述的那样。
使用 linux 在单独的机器上执行恢复或复制操作,无论是从 U 盘还是常规安装。复制故障驱动器不需要大量资源。过时的旧机器可以像新机器一样出色地完成工作。
对于您同时定期操作计算机和运行恢复的特定便利要求,没有解决方案。
只要 Windows 机器尝试访问并自动挂载正在连接的新磁盘,即使是 Co-Linux 也无法解决。
答案2
Windows 的主要问题是它会尝试挂载它识别的所有内容。因此基本上任何使用文件系统格式化的卷都可以使用。这会导致两个问题:
Windows 将“解析”文件系统并立即开始写入。在此视频中,我捕捉到了其中一些交互:https://youtu.be/mW7eGh8P24M。这并不是您在数据恢复场景中想要发生的情况。
如果在此期间,Windows 遇到坏扇区,它将一次又一次地重新启动该过程。这绝不是您想要的。更详细的分析Windows 7 检测驱动器:
Windows 7 通过连续 9 次读取驱动器的主引导记录来开始其安装过程。如果成功,它将开始以 128 个扇区的块为单位读取文件系统的主文件表 (MFT) 部分,同时发送偶尔的写入命令来更新各种次要日志。如果驱动器无法读取 MFT 内的块,则 Windows 将自动尝试再次读取同一个块,一次又一次……最多连续 9 次。如果所有这些尝试都不起作用,Windows 会将有问题的 128 扇区块分解为与文件系统使用的簇大小相等的小块(通常为 8 个扇区或 4KB)。这个已经读取失败 9 次的 128 扇区块将每次尝试 8 个扇区。如果任何较小的 8 个扇区块读取失败,Windows 也会尝试每个块 9 次。如果所有这些尝试再次失败,则 Windows 将放弃,重置驱动器,并自动从头开始重新启动整个安装过程。如果允许,Windows 将重新启动安装过程,直到驱动器崩溃并完全停止响应。
您可以在某种程度上尝试阻止 Windows 使用例如“mountvol”或“diskpart”安装外部驱动器。
- 打开提升的命令提示符。
- 键入 mountvol /n 以禁用驱动器自动挂载功能
- 命令 mountvol /r 将删除先前连接的驱动器的驱动器号。
- 要再次启用,请输入 mountvol /e
根据我的个人经验,它可能需要多次重启才能生效。
最好的方法是使用位于 Windows 和驱动器之间的专用硬件(例如 DeepSpar USB 稳定器)或使用 Linux。
您提议在运行 Windows 的虚拟机上使用 Linux,这有点违背了初衷。如果可以阻止 Windows 执行这些不必要的交互,我们甚至不需要 Linux。