NewSid程序的Linux?

我正在阅读这个问题如何在映像安装后重命名机器 ,我想知道你为Linux机器做什么。 我是一个Windows的家伙,对Linux毫无头绪。 如果我有一个Linux映像或虚拟机,是否有一个NewSid或SysPrep程序,我必须运行,如果我将图像恢复到新的机器?

我想了解更多有关NewSid程序而不是SysPrep的信息,我想创build一个已经安装的机器的映像,我不需要sysPrp来为我进行安装。

这取决于Linux发行版,但通常意味着要调整/etc的几个文件以获取主机名和IP详细信息。 在RedHat风格的发行版中,你将不得不改变:

  • /etc/hosts :主机名和IP地址
  • /etc/sysconfig/network :主机名
  • /etc/sysconfig/network-scripts/ifcfg-eth* :networkingconfiguration

grep -r image_hostname /etcgrep -r image.ip.add.ress /etc会find你需要编辑的东西。 更改文件不会立即进行更改 – 您必须重新引导或通过更新主机名(使用hostname命令)并通过重新启动service network restart启动networking来手动应用它们。

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

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

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

使用系统映像的另一种方法是使用像Debian / Ubuntu的预置版或者CentOS / Redhat / Fedora的kickstart来安装基本系统,然后使用类似Puppet,CFEngine2或Chef的configuration来configuration系统的其他部分。 这使您可以灵活地更改设置,并且可以在安装初始系统后用于保持configuration同步。 这不会花费更长的时间来安装系统,并且会减less生成图像的时间。

在Debian上,修改:
在/ etc /主机名
 / etc / hosts文件
在/ etc /邮件名
在/etc/resolv.conf
 /etc/postfix/main.cf中
 /etc/exim4/update-exim4.conf.conf
 /etc/udev/rules.d/z25_persistent-net.rules

并运行:
脚本/etc/init.d/hostname.sh
 rm -f / etc / ssh / ssh_host *
 dpkg-reconfigure openssh-server

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

 #!  /斌/庆典

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

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

 OLD = “$ 1”
 NEW = “$ 2”

 [-z“$ OLD”-o -z“$ NEW”] &&错误

find/ 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密钥。