Nächste: Bind-Mounts anlegen, Vorige: Guix auf einem Linode-Server nutzen, Nach oben: Systemkonfiguration [Inhalt][Index]
Um Guix auf einem von Kimsufi gemieteten Server einzusetzen, klicken Sie auf den Karteireiter zu Netboot und wählen Sie dann rescue64-pro aus und starten Sie neu.
OVH wird Ihnen eine E-Mail mit den Anmeldedaten schicken, damit Sie sich über SSH auf ein Debian-System verbinden können.
Folgen Sie nun den Anweisungen zur Installation von Guix aus einer Binärdatei (siehe Aus Binärdatei installieren in Referenzhandbuch zu GNU Guix):
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh chmod +x guix-install.sh ./guix-install.sh guix pull
Partitionieren Sie nun die Laufwerke und formatieren Sie sie, aber erst nachdem Sie das RAID-Array angehalten haben:
mdadm --stop /dev/md127 mdadm --zero-superblock /dev/sda2 /dev/sdb2
Löschen Sie die Laufwerksinhalte und richten Sie die Partitionen ein; wir erzeugen ein RAID-1-Array.
wipefs -a /dev/sda wipefs -a /dev/sdb parted /dev/sda --align=opt -s -m -- mklabel gpt parted /dev/sda --align=opt -s -m -- \ mkpart bios_grub 1049kb 512MiB \ set 1 bios_grub on parted /dev/sda --align=opt -s -m -- \ mkpart primary 512MiB -512MiB set 2 raid on parted /dev/sda --align=opt -s -m -- mkpart primary linux-swap 512MiB 100% parted /dev/sdb --align=opt -s -m -- mklabel gpt parted /dev/sdb --align=opt -s -m -- \ mkpart bios_grub 1049kb 512MiB \ set 1 bios_grub on parted /dev/sdb --align=opt -s -m -- \ mkpart primary 512MiB -512MiB \ set 2 raid on parted /dev/sdb --align=opt -s -m -- mkpart primary linux-swap 512MiB 100%
Legen Sie das Array an:
mdadm --create /dev/md127 --level=1 --raid-disks=2 \ --metadata=0.90 /dev/sda2 /dev/sdb2
Legen Sie nun Dateisysteme auf diesen Partitionen an, angefangen mit der Boot-Partition:
mkfs.ext4 /dev/sda1 mkfs.ext4 /dev/sdb1
Dann die Wurzelpartition:
mkfs.ext4 /dev/md127
Initialisieren Sie die Swap-Partitionen:
mkswap /dev/sda3 swapon /dev/sda3 mkswap /dev/sdb3 swapon /dev/sdb3
Binden Sie das Guix-Laufwerk ein:
mkdir /mnt/guix mount /dev/md127 /mnt/guix
Der nächste Schritt ist, in eine Datei os.scm eine Betriebssystemdeklaration zu schreiben, zum Beispiel:
(use-modules (gnu) (guix)) (use-service-modules networking ssh vpn virtualization sysctl admin mcron) (use-package-modules ssh tls tmux vpn virtualization) (operating-system (host-name "kimsufi") (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets (list "/dev/sda" "/dev/sdb")) (terminal-outputs '(console)))) ;; Wir brauchen ein Kernel-Modul für RAID-1 (d.h. "spiegeln"). (initrd-modules (cons* "raid1" %base-initrd-modules)) (mapped-devices (list (mapped-device (source (list "/dev/sda2" "/dev/sdb2")) (target "/dev/md127") (type raid-device-mapping)))) (swap-devices (list (swap-space (target "/dev/sda3")) (swap-space (target "/dev/sdb3")))) (issue ;; Voreingestellte Botschaft für /etc/issue. "\ Hier ist das GNU-System bei Kimsufi. Willkommen.\n") (file-systems (cons* (file-system (mount-point "/") (device "/dev/md127") (type "ext4") (dependencies mapped-devices)) %base-file-systems)) (users (cons (user-account (name "guix") (comment "guix") (group "users") (supplementary-groups '("wheel")) (home-directory "/home/guix")) %base-user-accounts)) (sudoers-file (plain-file "sudoers" "\ root ALL=(ALL) ALL %wheel ALL=(ALL) ALL guix ALL=(ALL) NOPASSWD:ALL\n")) ;; Global installierte Pakete. (packages (cons* tmux gnutls wireguard-tools %base-packages)) (services (cons* (service static-networking-service-type (list (static-networking (addresses (list (network-address (device "enp3s0") (value "Server-IP-Adresse/24")))) (routes (list (network-route (destination "default") (gateway "Server-Netzwerkzugang")))) (name-servers '("213.186.33.99"))))) (service unattended-upgrade-service-type) (service openssh-service-type (openssh-configuration (openssh openssh-sans-x) (permit-root-login #f) (authorized-keys `(("guix" ,(plain-file "SSH-Name-des-Schlüssels.pub" "SSH-Inhalt-öffentl-Schlüssel")))))) (modify-services %base-services (sysctl-service-type config => (sysctl-configuration (settings (append '(("net.ipv6.conf.all.autoconf" . "0") ("net.ipv6.conf.all.accept_ra" . "0")) %default-sysctl-settings))))))))
Vergessen Sie nicht, anstelle der Variablen Server-IP-Adresse, Server-Netzwerkzugang, SSH-Name-des-Schlüssels und SSH-Inhalt-öffentl-Schlüssel die für Sie zutreffenden Werte zu schreiben.
Der Netzwerkzugang (Gateway) ist die letzte nutzbare IP in Ihrem Block. Wenn Sie z.B. einen Server mit IP ‘37.187.79.10’ haben, dann ist sein Gateway ‘37.187.79.254’.
Übertragen Sie Ihre Datei mit Betriebssystemdeklaration os.scm auf
den Server mittels des Befehls scp
oder sftp
.
Bleibt nur noch, Guix mit guix system init
zu installieren und neu zu
starten.
Aber das klappt nur, wenn wir vorher ein Chroot aufsetzen, weil die Wurzelpartition des laufenden Rettungssystems („rescue“) auf einer aufs-Partition eingebunden ist und, wenn Sie es versuchen, die Installation von Guix beim GRUB-Schritt fehlschlägt mit der Meldung, der kanonische Pfad von „aufs“ sei nicht ermittelbar.
Installieren Sie die Pakete, die im Chroot benutzt werden:
guix install bash-static parted util-linux-with-udev coreutils guix
Dann legt folgender Befehl die Verzeichnisse für das Chroot an:
cd /mnt && \ mkdir -p bin etc gnu/store root/.guix-profile/ root/.config/guix/current \ var/guix proc sys dev
Kopieren Sie die resolv.conf des Wirtssystems in die Chroot:
cp /etc/resolv.conf etc/
Binden Sie die blockorientierten Speichermedien, den Store, seine Datenbank sowie die aktuelle Guix-Konfiguration ein:
mount --rbind /proc /mnt/proc mount --rbind /sys /mnt/sys mount --rbind /dev /mnt/dev mount --rbind /var/guix/ var/guix/ mount --rbind /gnu/store gnu/store/ mount --rbind /root/.config/ root/.config/ mount --rbind /root/.guix-profile/bin/ bin mount --rbind /root/.guix-profile root/.guix-profile/
Betreten Sie ein Chroot in /mnt und installieren Sie das System:
chroot /mnt/ /bin/bash guix system init /root/os.scm /guix
Schlussendlich können Sie in der Web-Oberfläche von ‘netboot’ auf ‘boot to disk’ wechseln und neu starten (auch das tun Sie über die Web-Oberfläche).
Nach ein paar Minuten Wartezeit können Sie versuchen, Ihren Server mit SSH
zu betreten: ssh guix@Server-IP-Adresse -i
Pfad-zu-Ihrem-SSH-Schlüssel
Sie sollten nun ein nutzbares Guix-System auf Kimsufi am Laufen haben; wir gratulieren!
Nächste: Bind-Mounts anlegen, Vorige: Guix auf einem Linode-Server nutzen, Nach oben: Systemkonfiguration [Inhalt][Index]