无论我们是否喜欢,CentOS 8终于有了曙光,在不久的将来,来自社区的企业操作系统的追随者将不得不与它成为朋友。
在决定尝试“狂野”中的八个服务器后,我发现我的托管服务提供商不急于在CentOS 8上创建虚拟服务器映像。由于VDS和贪吃性的适度特征,使用“本机ISO”和“ VNC控制台”的想法并没有激发信心。现代水蟒(anaconda)。
仍然需要将新CentOS的已部署映像直接复制到VDS硬盘驱动器,并通过“网络”下载服务器。 该方法并不新颖,但是,例如,我找不到有关其实现的详细和完整的说明。 因此,我想快速填补这一空白,并讨论在这样的VDS上安装CentOS 8:
KVM,256MB RAM,2GB HDD,不带控制台和ISO

顺便说一句,通过这种方式,您不仅可以安装或重新安装CentOS,而且不必在虚拟环境中安装或重新安装。
0. VDS的特征
正如文章开头所说:

顺便说一下,托管提供商现在以其最便宜的价格为VDS提供了更强大的功能。 让CentOS 7作为预安装的操作系统,我认为现在几乎所有虚拟化提供商都可以使用。
1.三个珍贵的档案
首先,您需要一个
“捐赠者” -一个安装了CentOS 8的附加服务器,虽然这并不重要,但是如果捐赠者的技术特征与VDS一致,那么安装的麻烦将大大减少。
内存量和施主磁盘的大小并不重要,主要是在其上安装操作系统。 我明确建议用一个根分区标记施主磁盘。
由于在这种情况下存在KVM VDS,因此可以在任何Linux发行版上使用
libvirt在家里烘烤供体。 我更喜欢额外的最小初始设置,这在任务的情况下将有很大帮助。 在
本文中,我讨论了制作小型CentOS映像的标准方法。 在扰流板下,有相应的kickstart文件以及如何使用它:
CentOS 8 Tinyinstall text url --url="https://mirror.yandex.ru/centos/8/BaseOS/x86_64/os/" eula --agreed firstboot --disable keyboard --vckeymap=us --xlayouts='us' lang en_US.UTF-8 timezone Africa/Abidjan auth --enableshadow --passalgo=sha512 rootpw --plaintext very-strong-password-see-below
您可以将此文件放在任何可用的Web资源上,并在安装开始时指定它:

我会注意root密码:我强烈建议您将密码设置为难于选择,以免小流氓在下一阶段搜索娱乐时遇到麻烦。
创建供体后,您需要将其磁盘上的所有文件都放入一个存档中,例如
centos8.tgz 。 您可以通过不同的方式执行此操作:将施主磁盘连接到另一个虚拟机,将其安装到虚拟机管理程序,或将其所有文件打包在施主本身中,但虚拟目录(/ dev,/ proc等)除外。
此外,还需要捐助者提供两个文件:内核(
vmlinuz )和修改后的ramdrive(
initrd )。 可以将内核放在提供者的/ boot目录(vmlinuz-something-there)中,并且需要通过包括从NFS服务器通过网络引导的功能来使ramdrive变得特别。 为此,在工作的供体操作系统中,您需要执行以下操作:
# dnf install dracut-network nfs-utils # echo 'add_dracutmodules+="nfs"' >> /etc/dracut.conf # dracut -f /initrd
并从磁盘根目录获取必要的initrd。
结果,将来将需要三个文件:
- centos8.tgz-将已安装的CentOS 8的所有文件存档
- initrd-具有NFS支持的临时文件系统
- vmlinuz-操作系统内核
# ls -l | awk '{print $9,$5}' centos8.tgz 320712609 initrd 21916741 vmlinuz 7876856
尽管可能会派上用场,但不再需要捐助者(见下文)
2. NFS服务器
要在不使用本地磁盘的情况下通过网络下载VDS,您将需要一台具有NFS资源的服务器。 这样的服务器可以是任何东西,主要是从VDS的IP地址获得的网络可用性。 您可以尝试家用设备(可能带有“路由器上的端口转发”)或任何其他VDS,例如用于测试。 最后,如果可以通过NFS(只是在开玩笑)来管理它,请使用“捐助者”。 安装CentOS 8之后,将不再需要NFS服务器,就像捐赠者一样。
导出的NFS资源的根目录中必须包含
centos8.tgz文件及其解压缩的内容。 这是一个以CentOS 7为例的快速生产指南:
# mkdir /nfsroot # cp .../centos8.tgz /nfsroot # tar xzf /nfsroot/centos8.tgz -C /nfsroot # yum install nfs-utils # systemctl enable rpcbind nfs-server # echo '/nfsroot 100.100.100.100/32(rw,sync,no_root_squash,no_all_squash)'>/etc/exports # systemctl restart rpcbind nfs-server
100.100.100.100当然是将来的CentOS 8的VDS IP地址。
3.“通过网络”下载VDS(NFSroot)
首先,您需要将第一步中获得的ramdrive(
initrd )和内核(
vmlinuz )
文件复制到VDS根目录。 然后,配置GRUB:
/etc/grub.d/40_custom
200.200.200.200-NFS服务器的IP地址。
/ etc /默认/ grub . . . GRUB_TIMEOUT=0 . . . GRUB_DEFAULT="NFSRoot" . . .
并重新启动VDS:
# grub2-mkconfig --output=/boot/grub2/grub.cfg # reboot
如果一切顺利,VDS将加载CentOS 8施主,并且本地驱动器将完全卸载:

4.“安装” CentOS 8
现在,您可以重新格式化和格式化本地VDS磁盘,将OS文件复制到其中,安装引导加载程序并配置网络。 必要动作的简要说明:
# dnf install parted tar # parted /dev/vda unit s print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 526335s 524288s primary linux-swap(v1) 2 526336s 4194303s 3667968s primary xfs boot # dd if=/dev/zero of=/dev/vda count=3000
在小型VDS上,我更喜欢以下磁盘配置:
# parted /dev/vda unit s print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 2s 2047s 2046s Free Space 1 2048s 4194303s 4192256s primary boot
格式化,删除保留并将UUID值设置为“ donor”:
# mkfs.ext4 /dev/vda1 # cat /etc/fstab | grep UUID UUID=1f944e86-c590-4af7-b651-3c1783c15d79 / ext4 defaults 1 1 # tune2fs -m 0 -U 1f944e86-c590-4af7-b651-3c1783c15d79 /dev/vda1 tune2fs 1.44.3 (10-July-2018) Setting reserved blocks percentage to 0% (0 blocks) Setting UUID on a checksummed filesystem could take some time. Proceed anyway (or wait 5 seconds to proceed) ? (y,N) y
复制操作系统文件并安装引导程序:
# mount /dev/vda1 /mnt # tar xzf /centos8.tgz -C /mnt # grub2-install --boot-directory=/mnt/boot /dev/vda Installing for i386-pc platform. Installation finished. No error reported.
由于
网络管理器了解
传统 ,因此您可以创建适当的ifcfg文件来配置网络。 接口名称可以找到:
# ls /sys/class/net/ enp1s0 lo
# cat > /etc/sysconfig/network-scripts/ifcfg-enp1s0 << EOF > DEVICE=enp1s0 > NAME=enp1s0 > TYPE=Ethernet > ONBOOT=y > BOOTPROTO=none > IPADDR=100.100.100.100 > NETMASK=255.255.255.0 > GATEWAY=100.100.100.1 > EOF
就是这样,您可以从其本地驱动器重新引导VDS。
5.结论
安装了最低CentOS 8的VDS:

有用的链接:
www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txtaccess.redhat.com/documentation