如何使用 GRML 等救援映像远程安装 CentOS/RHEL 7?

如何使用 GRML 等救援映像远程安装 CentOS/RHEL 7?

假设您可以在远程计算机上通过 PXE 引导到还提供 ssh 访问的 GRML 映像。

现在的问题是如何在这样的环境下安装CentOS。

KVM 访问之类的东西不可用。

几年前,我在类似的环境中使用 debootstrap 成功安装了 Debian。 CentOS/RHEL 有类似的东西吗?

在这样的环境中安装 CentOS/RHEL 的最先进的方法是什么?

答案1

对于 RHEL 或基于此的发行版的自动安装,请使用启动

当您构建 RHEL 服务器时,/root/anaconda-ks.cfg会创建一个可用于构建重复主机的文件。

有多种选项,其中两个最合适:
1. 自定义 Live CD/可移动媒体kiskstart 图像
2.全PXE boot网络安装。

ks网络安装需要包含文件和安装源的网络共享。

然后,您的PXE环境可以仅从/boot服务器并从主机 MAC 地址识别要使用的 kickstart 配置。bootkickstart

参考

启动安装
如何制作 Live CD

答案2

您可以在 qemu KVM 实例中准备最小安装,然后将映像传输到远程系统。

以安装 RAID-1 Centos 7 系统为例:

在您的本地工作站上:

$ truncate --size 5G disk1.img
$ truncate --size 5G disk2.img
$ qemu-system-x86_64 \
    -cdrom CentOS-7.0-1406-x86_64-DVD/CentOS-7.0-1406-x86_64-DVD.iso \
    -hda disk1.img -hdb disk2.img -m 2G -boot d -enable-kvm \
    -net user,hostfwd=tcp::10022-:22 -net nic # enable net, ssh portforwarding

在 qemu 实例中,您可以使用官方推荐的安装程序安装 CentOS 7 - 即选择 2 个磁盘、手动分区、自动创建分区、为 / 卷组选择 raid1、在 /boot 设备类型设置中选择 raid1 等。安装完成后,您甚至可以轻松配置一些基本内容,例如通过 更新系统yum update、接受系统 GPG 密钥、配置网络(使用目标系统的 MAC 地址)、ssh 密钥等。

对于以后调整大小,禁用 RAID 1 写入意图位图(虚拟机内部)非常重要:

# mdadm --grow /dev/md/*pv00 --bitmap none

要传输图像,即镜子的左腿(从工作站到服务器):

$ gzip -c disk1.img | ssh example.org "gzip -d | dd of=/dev/sda bs=128K"

最小的图像应该以非常好的压缩率进行压缩 - 在我的实验中,压缩后的大小约为 230 MiB。

对于右腿,只需要 grub2 部分:

$ dd if=disk2.img bs=512 count=2048 | gzip -c \
    | ssh example.org "zip -d | dd of=/dev/sdb bs=128K"

在服务器上(在启动的救援系统内),您可以扩大根卷组:

# partx -v --add /dev/sda
# mdadm --stop /dev/md/*boot --stop /dev/md/*pv00
# echo -e 'd\n2\nn\np\n2\n\n\nt\nfd\nw\n' | fdisk /dev/sda
# mdadm --run /dev/md/*boot --run /dev/*pv00
# mdadm --grow /dev/md/*pv00 --size max
# pvresize /dev/md/*pv00
# lvchange --activate y centos/root
# lvresize --resizefs --extents +100%FREE centos/root
# echo -e 'd\n2\nn\np\n2\n\n\nt\nfd\nw\n' | fdisk /dev/sdb
# mdadm --add /dev/md/*boot /dev/sdb1
# mdadm --add /dev/md/*pv00 /dev/sdb2
# mdadm --wait /dev/md/*pv00
# mdadm --grow /dev/md/*pv00 --bitmap internal
# mdadm --wait /dev/md/*pv00
# shutdown -r now

先进的东西

当您想使用此方法从基础映像安装多台裸机时,您必须使用一些调整基础映像的初始化脚本。除了明显的东西(例如主机名、网络配置等)之外,您还必须更改系统中的所有 UUID。这包括以下 UUID:

  • RAID设备
  • LVM PV 和 VG
  • 文件系统
  • 交换
  • /etc/sysconfig/network-scripts( )下的网络配置脚本

然后,当然,您必须更改使用这些 UUIDS 的所有配置文件:

  • /etc/default/grub(grub2->mkconfig然后调用...)
  • /etc/mdadm.conf
  • /etc/fstab

注意事项

如果客户端/目标系统使用不同的物理扇区大小,则该过程会变得更加复杂。例如,当目标系统使用 4k 扇区(而不是 512 字节)时。然后,您必须配置 qemu,使其也使用/模拟 4k 物理扇区(qemu 能够做到这一点)。

另外需要注意的是目标系统是否只支持UEFI启动。在这种情况下,您还必须确保 qemu 也模拟 UEFI。

结论

使用 qemu kvm 实例,然后将生成的安装移植到远程计算机是一个相对直接的过程。

相关内容