驱动器无法自动分配字母

驱动器无法自动分配字母

我有 2 个相同的 SATA-2 驱动器,用于备份。基本上,我有 e-Sata/USB2.0 底座和 2 个驱动器。当我需要执行备份时,我会“打开”驱动器底座,进行备份,然后用另一个驱动器替换底座中的驱动器 - 想法是将每个驱动器放在不同的位置,以确保在发生盗窃或火灾时备份数据不会丢失。

问题是,当我打开底座电源时 - 其中一个驱动器成功获得驱动器号 - 我对两个驱动器使用相同的“L”字母,无法对每个驱动器使用相同的备份脚本,而另一个驱动器无法自行分配字母,因此我必须手动分配

计算机管理单元->存储->磁盘管理->右键单击驱动器项->更改驱动器号和路径。

每次对一个驱动器都这样做很烦人,而对另一个完全相同的驱动器却不需要这样做。

有什么想法可以让驱动器号保留在第二个驱动器上吗?

答案1

根据TechNet 文章 windows 为卷保留驱动器号。它存储在注册表中的 HKLM\System\MountedDevices 中。

从行为来看,我假设您使用的是基本磁盘。您无法让此功能与基本磁盘配合使用。

然而,由于 LDM 与动态磁盘的工作方式,如果您转换为动态磁盘,您应该能够实现这一点。

有关动态磁盘如何分配驱动器号的详细信息,请参阅标题“动态磁盘 - 驱动器号分配规则”。

编辑1: 按你的要求这里是有关如何转换磁盘的 TechNet 文章。

答案2

Windows 根据卷的 GUID 将驱动器号映射到卷。您的两个外部驱动器虽然品牌和型号相同,但其格式化文件系统中的 GUID 不同。只要有未使用的驱动器号,Windows 就会尝试为它们分配不同的驱动器号。它详细描述了这里(该链接指的是 Windows 2000,但我相信在 XP/2003 下该过程是相同的。)

在你的情况下,其中一个驱动器要么根本没有分配驱动器号,要么被分配了一个驱动器号已被网络驱动器使用,这将掩盖 USB 驱动器号分配。磁盘管理应该会清楚说明这一点,但显然这两种情况都不是您想要的。

这是一个相对简单的解决方案:

  1. 为每个磁盘指定一个唯一的驱动器号,该驱动器号不是L:。假设磁盘 1 是X:,磁盘 2 是Y:
  2. 修改脚本以检查 是否存在X:\,它仅在 已安装时才存在X:。如果存在:
    1. 将 X 挂载为网络驱动器 L,例如:net use L: \\127.0.0.1\X$
    2. 运行备份L:
    3. 完成后删除 L 驱动器,例如:net use L: /delete
  3. 重复Y:

X:如果您不介意直接备份到或,您甚至可以跳过整个将本地驱动器安装为网络驱动器的步骤Y:

如果您只是不想麻烦地检查哪个磁盘已安装,或者您有其他软件也依赖于显示为的磁盘L:,我能想到的唯一其他选择就是对一个驱动器进行映像并将该映像写入另一个驱动器。这样,磁盘 1 将与磁盘 2 完全一致,后者应该包含 GUID。Linuxdd上的实用程序可以完成此工作:

dd if=/dev/disk1 of=/dev/disk2 bs=1024m

但是,我不知道如果您随后同时插入两个驱动器,Windows 会如何表现,因此请谨慎使用此方法。

相关内容