我正在阅读这个问题如何在安装映像后重命名机器,我想知道您为 linux 机器做了什么。我是一个windows人,对linux一无所知。如果我有 linux 映像或 VM,如果我将映像恢复到新机器,是否必须运行 NewSid 或 SysPrep 程序?
我询问的是关于 NewSid 程序而不是 SysPrep 的更多信息,我想制作已安装机器的映像,我不需要 sysPrp 为我进行安装。
我正在阅读这个问题如何在安装映像后重命名机器,我想知道您为 linux 机器做了什么。我是一个windows人,对linux一无所知。如果我有 linux 映像或 VM,如果我将映像恢复到新机器,是否必须运行 NewSid 或 SysPrep 程序?
我询问的是关于 NewSid 程序而不是 SysPrep 的更多信息,我想制作已安装机器的映像,我不需要 sysPrp 为我进行安装。
这取决于 Linux 发行版,但通常意味着调整一些文件以
/etc
获取主机名和 IP 详细信息。在 RedHat 风格的发行版上,您必须更改:/etc/hosts
: 主机名和 IP 地址/etc/sysconfig/network
: 主机名/etc/sysconfig/network-scripts/ifcfg-eth*
: 网络配置grep -r image_hostname /etc
并grep -r image.ip.add.ress /etc
会找到您需要编辑的任何内容。更改文件不会立即进行更改 - 您必须重新启动或通过更新主机名(使用hostname
命令)并使用service network restart
.现代 Linux 发行版会记住它们最初安装到的卡的 MAC 地址。在任何其他机器上引导它们很可能会导致您的 eth0 在您最不期望的时候变成 eth1。
解决方案是删除维护 MAC 地址和以太网接口之间持久映射的文件,该文件(至少在 Debian/Ubuntu 上;这是一个非常特定于发行版的区域)是 /etc/udev/75-persistent-网络生成器.规则。
这个答案没有回答您的问题,而是更多地为成像问题添加了不同的解决方案。
使用系统映像的替代方法是使用 Debian/Ubuntu 的预置或 CentOS/Redhat/Fedora 的 kickstart 来安装基本系统,然后使用 Puppet、CFEngine2 或 Chef 之类的东西来配置系统的其余部分。这使您可以灵活地更改设置,并可用于在安装初始系统后保持配置同步。这不会花费更长的时间来安装系统,并且会减少生成图像的时间。
我目前在克隆虚拟机时使用以下脚本。自 90 年代中期以来,我一直在使用相同的技术,当时我经常克隆 debian 机器以充当学校的网关/防火墙机器。
还有一些手动更改,我还没有开始自动化,主要是因为我不经常这样做,所以值得花时间去弄清楚。
如果克隆的机器有硬编码的 IP 地址而不是 DHCP,我编辑 /etc/network/interfaces。
编辑 /etc/udev/rules.d/70-persistent-net.rules 以便将接口名称(eth0 和 eth1)分配给正确的 MAC 地址(否则它们将获得 eth2 和 eth3,因为 eth0 和 eth1 已经定义)。
删除并重新生成主机的 ssh 密钥。