在EC2上,分离OS卷,写入文件,然后重新挂接OS卷并成功启动

我尝试的步骤摘要:

  • 从Windows_Server_A分离操作系统卷
  • 将卷附加到Windows_Server_B
  • 修改一个无害的文件
  • 从B分离并重新连接到/ dev / sda1 for Windows_Server_A
  • 成功启动

这不起作用。 附加/磁盘pipe理联机/脱机/分离进程在返回到Server_A时导致卷不启动


**详细步骤**


为了隔离这个问题,我尝试了不修改文件:

  • 使用Volume_X的全新工作副本。 从原始服务器分离。 附加到备用服务器。
  • 我所做的只是将驱动器“联机”,然后2秒后将其转为“脱机”,而不修改驱动器上的任何数据。
  • 重新连接到原始服务器产生相同的确切问题

因此,我似乎是通过简单地附加它并将其转到“在线”(磁盘pipe理)在单独的服务器上来破坏Volume_X。


将Windows操作系统卷移动到另一台服务器以进行文件修改,然后返回到其原始实例并成功启动的正确方法是什么?

期望的步骤:

  • 停止原始服务器
  • 分离音量
  • 将卷连接到备用服务器
  • ????? 那么修改一个文件呢?
  • 从备用服务器分离卷
  • 将卷连接到原始服务器
  • 原来的服务器应该开机

谢谢你的时间

据我所知,Windows Server 2016上的磁盘pipe理工具对启动分区(小〜350MB)有一些帮助。 在通过Server_B的磁盘pipe理进行“在线”之后,他们根本不起作用,然后“脱机”。 它们不再可以在Server_A上启动。

由于我们的目标归结为:

  • 停止服务器A
  • 将OS卷作为数据卷移动到服务器B.
  • 修改文件
  • 将OS卷移回服务器A并成功启动

我们可以做到如下:

  • 停止Server_A。 如果可能,自然关机。
  • 从Server_A分离卷
  • 将卷连接到Linux Server_B。 如果需要的话,你可以快速创build一个临时的linux实例。 Ubuntu服务器为我工作得很好。
  • sudo apt-get install ntfs-3g – 确认sudo apt-get install ntfs-3g了读/写NTFS驱动程序。 现在通常默认安装。
  • 运行fdisk以查找您感兴趣的分区的设备名称。我们正在寻找操作系统卷(100GB分区,而不是350MB分区)的非引导分区的标识符。 我的是/ dev / xvdf2。
  • sudo mkdir /mnt/ntfs_fixbuild立一个挂载点
  • sudo mount -t ntfs-3g /dev/xvdf2 /mnt/ntfs_fix将分区挂载为读/写卷
  • 继续修改您的文件。 Pico适合编辑文本文件。
  • 我通过导航到/mnt/ntfs_fix/windows/system32/config并运行chntpw -e SYSTEM (修改Windows系统registry值)来更改registry值。chntpw reg edit docs
  • 完成更改后,请卸载。 sudo umount /dev/xvdf2
  • 从Server_B分离卷
  • 将卷连接到Server_A,作为/dev/sda1 (对于windows ec2 OS卷必须为/ dev / sda1)
  • 启动Server_A

笔记

  • 如果在开始时需要强制停止OS卷,那么当您尝试在Linux服务器上挂载时,您将收到错误信息。 您可以使用sudo ntfsfix /dev/xvdf2将NTFS卷的状态从“关机不正常”状态修复为“正常关机”状态。 它应该是可挂载的。 请记住,这有可能会损坏您的音量,所以如果您可以通过从Server_A执行标准关机操作来避免,请执行此操作。 否则,请确保您有最新的备份。
  • Linux不会从引导卷(350MB)读取或写入,而Windows服务器可以做到这一点。 通过这种方式,我们只能修改操作系统卷的操作系统分区,并在从服务器_A重新挂接和引导时维护可引导卷。