假设您可以在远程计算机上通过 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 配置。boot
kickstart
参考
答案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 实例,然后将生成的安装移植到远程计算机是一个相对直接的过程。