适用于 Linux 的 NewSid 程序?

适用于 Linux 的 NewSid 程序?

我正在读这个问题如何在安装映像后重命名机器我想知道您对 Linux 机器做了什么。我是一个 Windows 用户,对 Linux 一无所知。如果我有一个 Linux 映像或 VM,如果我将映像还原到新机器,是否需要运行 NewSid 或 SysPrep 程序?

我询问的更多是有关 NewSid 程序而不是 SysPrep,我想制作一个已安装机器的图像,我不需要 sysPrp 为我进行安装。

答案1

这取决于 Linux 发行版,但通常意味着调整一些文件以/etc获取主机名和 IP 详细信息。在 RedHat 风格的发行版上,您必须更改:

  • /etc/hosts:主机名和 IP 地址
  • /etc/sysconfig/network: 主机名
  • /etc/sysconfig/network-scripts/ifcfg-eth*:网络配置

grep -r image_hostname /etcgrep -r image.ip.add.ress /etc会找到您需要编辑的任何内容。更改文件不会使更改立即生效 - 您必须重新启动或通过更新主机名(使用命令hostname)并重新启动网络来手动应用它们service network restart

答案2

现代 Linux 发行版会记住首次安装的网卡的 MAC 地址。在任何其他机器上启动它们可能会导致您的 eth0 在您最意想不到的时候变成 eth1。

解决方案是删除维护 MAC 地址和以太网接口之间的持久映射的文件,该文件(至少在 Debian/Ubuntu 上;这是一个非常特定于发行版的区域)是 /etc/udev/75-persistent-net-generator.rules。

答案3

这个答案并不能回答你的问题,但更多的是为成像问题增加了不同的解决方案。

使用系统映像的替代方法是使用 Debian/Ubuntu 的预置或 CentOS/Redhat/Fedora 的 kickstart 等工具来安装基本系统,然后使用 Puppet、CFEngine2 或 Chef 等工具来配置系统的其余部分。这让您可以灵活地更改设置,并可用于在安装初始系统后保持配置同步。这不会花费太多时间来安装系统,并会减少生成映像的时间。

答案4

我目前在克隆虚拟机时使用以下脚本。自 90 年代中期以来,我一直在使用相同的技术,当时我定期克隆 Debian 机器作为学校的网关/防火墙机器。

/bin/bash #!/bin/bash

# 将虚拟机的主机名从“$1”更改为“$2”

错误() {
  echo "用法:$0 OldName NewName" >&2
  出口 1
}

旧=“$1”
新=“$2”

[ -z "$OLD" -o -z "$NEW" ] && 错误

查找 /etc -type f -print0 | \
        xargs -0r grep -l “\b$OLD\b” | \
        egrep -v'ssh|\.db'|\
        xargs -d“\n”-r sed -i -e“s/$OLD/$NEW/g”

还有一些手动更改我还没有开始自动化,主要是因为我做得不够频繁,所以不值得花时间去弄清楚。

  1. 如果克隆的机器具有硬编码的 IP 地址而不是 DHCP,我会编辑 /etc/network/interfaces。

  2. 编辑 /etc/udev/rules.d/70-persistent-net.rules 以便接口名称(eth0 和 eth1)分配给正确的 MAC 地址(否则它们将获得 eth2 和 eth3,因为 eth0 和 eth1 已经定义)。

  3. 删除并重新生成主机的 ssh 密钥。

相关内容