是否有可能在无需用户交互的情况下修复 MBR?

是否有可能在无需用户交互的情况下修复 MBR?

我遇到过一个案例,病毒通过内联网传播,并重写了 12,000 台机器的 MBR。

现在,我知道如何手动修复 MBR,但我被要求提供一个解决方案,通过创建可启动的 USB 媒体来自动化此过程,该媒体将在无需用户交互的情况下继续修复 MBR。

这样,我们可以分发此可启动映像的多个副本,并加快许多机器的修复速度。

据我所知,所有这些机器在 /dev/sda1 上都有可启动分区,但应使用病毒足迹模式来识别要修复的扇区。

那么,是否有可能在dd无需任何用户交互的情况下在启动时执行?

答案1

如果它们根本无法启动:

设置 PXE 启动以启动带有 Linux 和 MBR 的自定义 ISO。让它自动重写 MBR 并重新启动。

这是一个 11/16MB 发行版,您可以向其中添加 MBR 和 dd。

http://distro.ibiblio.org/tinycorelinux/downloads.html

您将需要它来帮助设置可启动的 Linux 操作系统 https://www.tecmint.com/auto-execute-linux-scripts-during-reboot-or-startup/

Windows PE ISO 也是一个不错的选择。

向 DHCP 服务器添加一个条目来协助该过程。 一些计算机将此视为自动故障转移条件。则无需用户干预。

其余的人必须按 F11 或等等才能从网络启动。BIOS 中的启动顺序也可能更改为自动无法进行 PXE 启动。

在此处输入图片描述

Linux

编辑 dhcpd.conf

vi /etc/dhcp/dhcpd.conf

并添加以下条目:

#option 66
option tftp-server-name "w.x.y.z";

#option 67
option bootfile-name "test.cfg";

然后重新启动 DHCP 服务器。

sudo service isc-dhcp-server restart

另请参阅此链接以获取更详细的说明: https://www.thegeekstuff.com/2010/07/tftpboot-server

答案2

是的,可以在没有交互的情况下运行 dd,并且可以使用带有 systemd 服务的 Linux 网络启动,但盲目配置那么多服务器也是一个非常糟糕的主意。

这里有一个更好的想法,使用 PXE 有效负载来链式加载 Windows 引导加载程序,一旦您的服务器启动,您就可以向它们发送所有命令,以使用该bootsect命令从 Windows 更新其 MBR。

您可以通过网络加载 GRUB 并为其提供将加载操作系统的配置。https://www.gnu.org/software/grub/manual/grub/grub.html#Network

从将用于 PXE 服务的 Linux 服务器(我建议为其创建一个新的 VM):

为 PXE 设置 DHCP 和 TFTP。

grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i386-pc

nano /srv/tftp/boot/grub/grub.cfg并添加:

search -s root -f /Boot/BCD
ntldr /bootmgr
boot

系统应该加载 grub,然后搜索包含 ntldr BCD 的分区,然后加载 bootmgr。

启动服务器后,您可以在此处阅读有关如何修复 MBR 的信息: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/bootsect-command-line-options可能只是bootsect /nt60 SYS

相关内容