我有几个服务器运行一个USB棒每个。 服务器基本上是hypervizors。
我正在考虑的是将二进制更新以下载系统映像的forms进行分发,并将其直接解压到活动的USB磁盘设备上,然后重新启动。 这种技术将归结为dd if=newimage.img of=/dev/sda && reboot 。
不过,我已经尝试过了,并没有像预期的那样工作。 新映像的磁盘无法启动。
因为可以在每台主机上运行一系列的命令,并在大多数时候更新这些命令,这对我来说并不重要。 但是,我想知道是否有办法在真正运行的系统上解压缩磁盘映像,并将其正确引导到新的环境中,无论哪一个。 例如,我可能决定有时候用完全不同的操作系统replace那些Linux,谁知道:)
想法,build议?
(假设对我以前的问题的答案是“是”)。 在dd运行时或之后,主机可能正在写入(在USB设备上正确的文件系统布局)。 在执行dd之前remount -o ro,remount您可以尝试remount -o ro,remount在正在运行的主机的文件系统上remount -o ro,remount ,但是当您尝试写入/ dev / sda时,可能会阻止dd自身工作。 你可能还需要一个快速的“残酷的”重启( echo b > /proc/sysrq-trigger ),这样操作系统在关机时不会写任何东西。
对当前正在运行的系统的文件系统进行复制听起来是个不错的主意。 您可以通过以root身份重新挂载根文件系统来执行此操作,然后执行dd命令,然后重新设置系统(请注意:不要使用重新引导脚本,因为如果您有损坏的情况,您不想执行关机操作根文件系统,你只是想重新启动系统到它。)