我遇到过一个案例,病毒通过内联网传播,并重写了 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