CentOS 8 erblickte endlich das Licht der Welt, ob es uns gefällt oder nicht, in naher Zukunft müssen sich die Anhänger des Unternehmensbetriebssystems aus der Community damit anfreunden.
Nachdem ich mich entschlossen hatte, die Acht in freier Wildbahn auszuprobieren, stellte ich fest, dass meine Hosting-Anbieter es nicht eilig hatten, ein virtuelles Server-Image unter CentOS 8 zu erstellen. Die Idee mit einer „nativen ISO“ - und einer „VNC-Konsole“ weckte aufgrund der bescheidenen Eigenschaften von VDS und Völlerei kein Vertrauen moderne Anakonda (Anakonda).
Es blieb übrig, das bereitgestellte Image des neuen CentOS direkt auf die VDS-Festplatte zu kopieren und den Server „über das Netzwerk“ herunterzuladen. Die Methode glänzt nicht mit Neuheit, aber ich konnte zum Beispiel keine detaillierten und vollständigen Anweisungen für ihre Implementierung finden. Daher wollte ich diese Lücke schnell schließen und über die Installation von CentOS 8 auf einem solchen VDS sprechen:
KVM, 256 MB RAM, 2 GB Festplatte, ohne Konsole und ISO

Auf diese Weise können Sie übrigens nicht nur CentOS und nicht unbedingt in einer virtuellen Umgebung installieren oder neu installieren.
0. Eigenschaften von VDS
Wie am Anfang des Artikels gesagt wurde:

Übrigens bieten Hosting-Anbieter in ihren günstigsten Tarifen VDS mit leistungsstärkeren Funktionen an. Lassen Sie CentOS 7 das vorinstallierte Betriebssystem sein. Ich denke, dass dies jetzt für fast alle Virtualisierungsanbieter möglich ist.
1. Drei wertvolle Dateien
Zunächst benötigen Sie einen
„Spender“ - einen zusätzlichen Server mit installiertem CentOS 8. Dies ist zwar nicht wichtig, aber wenn die technischen Eigenschaften des Spenders denen von VDS entsprechen, treten bei der Einrichtung weniger Probleme auf.
Die Größe des Speichers und die Größe der Spenderfestplatte sind nicht wichtig. Hauptsache, Sie müssen ein Betriebssystem darauf installieren. Ich empfehle kategorisch, die Spenderdiskette mit einer Root-Partition zu markieren.
Da es in diesem Fall KVM VDS gibt, kann der Spender zu Hause gebacken werden - auf jeder Linux-Distribution mit
libvirt . Ich bevorzuge die zusätzliche minimale Anfangseinstellung, die im Kontext der Aufgabe eine bedeutende Hilfe sein wird. In
diesem Artikel habe ich über die Standardmethode zum Erstellen eines winzigen CentOS-Bildes gesprochen. Unter dem Spoiler die entsprechende Kickstart-Datei und deren Verwendung:
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
Sie können diese Datei in einer beliebigen verfügbaren Webressource ablegen und zu Beginn der Installation angeben:

Ich achte auf das Root-Passwort: Ich empfehle dringend, dass Sie es schwierig machen, damit Sie in den nächsten Schritten auf der Suche nach Unterhaltung keine Probleme mit Hooligans haben, die das Internet scannen.
Nachdem Sie den Spender erstellt haben, müssen Sie alle Dateien von der Festplatte in einem Archiv speichern,
z . B.
centos8.tgz . Sie können dies auf verschiedene Arten tun: Verbinden Sie die Spenderdiskette mit einer anderen virtuellen Maschine, hängen Sie sie in den Hypervisor ein oder packen Sie alle Dateien in den Spender selbst, mit Ausnahme der virtuellen Verzeichnisse (/ dev, / proc usw.).
Außerdem werden vom Spender zwei weitere Dateien benötigt: der Kernel (
vmlinuz ) und das modifizierte RAM-Laufwerk (
initrd ). Der Kernel kann im Verzeichnis / boot des Spenders (vmlinuz-Something-There) abgelegt werden, und das RAM-Laufwerk muss speziell gestaltet werden, indem die Möglichkeit zum Booten über das Netzwerk vom NFS-Server aufgenommen wird. Dazu müssen Sie in einem funktionierenden Spender-Betriebssystem Folgendes tun:
# dnf install dracut-network nfs-utils # echo 'add_dracutmodules+="nfs"' >> /etc/dracut.conf # dracut -f /initrd
und holen Sie sich die erforderliche initrd aus dem Stammverzeichnis der Festplatte.
Als Ergebnis drei Dateien, die in Zukunft benötigt werden:
- centos8.tgz - Archiv mit allen Dateien von installiertem CentOS 8
- initrd - ein temporäres Dateisystem mit NFS-Unterstützung
- vmlinuz - Betriebssystemkernel
# ls -l | awk '{print $9,$5}' centos8.tgz 320712609 initrd 21916741 vmlinuz 7876856
Der Spender wird nicht mehr benötigt, obwohl er nützlich sein kann (siehe unten).
2. NFS-Server
Um VDS über ein Netzwerk ohne Verwendung einer lokalen Festplatte herunterzuladen, benötigen Sie einen Server mit einer NFS-Ressource. Ein solcher Server kann alles sein, Hauptsache seine Netzwerkverfügbarkeit von der IP-Adresse des VDS. Sie können Heimgeräte (mit einer möglichen "Portweiterleitung am Router") oder andere VDS ausprobieren, die beispielsweise für einen Test verwendet wurden. Verwenden Sie schließlich den „Spender“, wenn Sie ihn mit NFS verwalten können (nur ein Scherz). Nach der Installation von CentOS 8 wird der NFS-Server wie der Spender nicht mehr benötigt.
Die exportierte NFS-Ressource muss die Datei
centos8.tgz und ihren entpackten Inhalt im Stammverzeichnis enthalten. Hier ist eine kurze Produktionsanleitung am Beispiel von 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 ist natürlich die VDS-IP-Adresse mit zukünftigem CentOS 8.
3. Laden Sie VDS "über das Netzwerk" herunter (NFSroot)
Zunächst müssen Sie die im ersten Schritt erhaltenen
Dateien ramdrive (
initrd ) und kernel (
vmlinuz ) in das VDS-Stammverzeichnis
kopieren . Konfigurieren Sie dann GRUB:
/etc/grub.d/40_custom
200.200.200.200 - Die IP-Adresse des NFS-Servers.
/ etc / default / grub . . . GRUB_TIMEOUT=0 . . . GRUB_DEFAULT="NFSRoot" . . .
Und starten Sie VDS neu:
# grub2-mkconfig --output=/boot/grub2/grub.cfg # reboot
Wenn alles reibungslos funktioniert, lädt VDS den CentOS 8-Donor und das lokale Laufwerk wird vollständig ausgehängt:

4. "Installation" CentOS 8
Jetzt können Sie die lokale VDS-Festplatte neu formatieren und formatieren, Betriebssystemdateien darauf kopieren, den Bootloader installieren und das Netzwerk konfigurieren. Eine kurze Beschreibung der notwendigen Maßnahmen:
# 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
Auf winzigen VDS bevorzuge ich diese Festplattenkonfiguration:
# 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
Formatieren, Löschen einer Reservierung und Setzen des UUID-Werts auf "Spender":
# 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
Kopieren von Betriebssystemdateien und Installieren des Bootloaders:
# 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.
Da
Network Manager Legacy versteht, können Sie eine geeignete ifcfg-Datei erstellen, um das Netzwerk zu konfigurieren. Der Name der Schnittstelle kann gefunden werden:
# 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
Das ist alles, Sie können VDS von seinem lokalen Laufwerk neu starten.
5. Fazit
VDS mit mindestens installiertem CentOS 8:

Nützliche Links:
www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txtaccess.redhat.com/documentation