Ubuntu 26.04 / Zusätzliche Festplatte vorbereiten und fstab-Mounts konfigurieren
Konfigurieren Sie das persistente Einhängen, indem Sie die tatsächliche Dateisystem-UUID mit einem Einhängepunkt verbinden. Sichtbare Dateien allein beweisen nicht, dass Schreibvorgänge auf die beabsichtigte Festplatte gelangen; testen Sie auch Neustart- und Gerät-fehlt-Bedingungen.
Identifizieren Sie das Gerät, bevor Sie es formatieren.
lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,UUID,MOUNTPOINTS
findmnt -rno SOURCE,TARGET,FSTYPE,OPTIONS
Die Einhängeübung beginnt mit einer separaten Übungsfestplatte, die bereits ein Dateisystem hat. Vergleichen Sie Kapazität, Bezeichnung und UUID und schließen Sie Root-, Boot- und bereits vorhandene Backup-Geräte aus. Wenn Sie nur eine neue leere Festplatte haben, führen Sie zuerst die untenstehende Vorbereitung durch. Formatieren Sie keine Festplatte, deren vorhandene Daten wiederhergestellt werden müssen.
Bereiten Sie eine neue leere Laborfestplatte mit ext4 vor
Das Anfügen einer neuen VDI unterscheidet sich von der Vorbereitung eines ext4-Dateisystems. Um in VirtualBox eine neue leere 8-GiB-Übungsdisk zu erstellen, fahren Sie die VM herunter und verwenden Sie Einstellungen → Speicher → die Aktion des Speichercontrollers zum Hinzufügen einer Festplatte, um eine neue virtuelle Festplatte zu erstellen. Wählen Sie keine vorhandene Datendisk oder eine physische Festplatte des Hosts aus.
Verwenden Sie das untenstehende Skript nur von der Serverkonsole für eine neue leere VDI. Es benötigt util-linux lsblk/wipefs/fdisk, udevadm und e2fsprogs mkfs.ext4. Überprüfen Sie die Werkzeuge mit dem Befehl command -v und prüfen Sie die Paketquellen, falls eine Installation erforderlich ist. Vergleichen Sie zunächst die Kapazität, das Modell und die Seriennummer der neuen Festplatte im Hypervisor mit ihrem /dev/disk/by-id-Pfad; brechen Sie ab, wenn Sie unsicher sind.
Verwenden Sie innerhalb von fdisk g für eine GPT-Tabelle und n für eine neue Partition. Die Standardwerte für Nummer/Start/Ende können verwendet werden, aber überprüfen Sie das Ziel und den Bereich mit p, bevor Sie mit w speichern. Abbrechen mit q vor w, falls etwas falsch ist. Dies ist kein Verfahren zum Reinitialisieren von Datenträgern; vorhandene Signaturen, Partitionen oder Mounts stoppen das Skript.
Überspringen Sie diese Initialisierung für eine Festplatte, die bereits ein Dateisystem und zu erhaltende Daten enthält; überprüfen Sie ihr Gerät und ihre UUID in der untenstehenden Mounting-Übung. Speichern Sie das komplette Skript als ~/prepare-empty-lab-disk.sh und führen Sie bash ~/prepare-empty-lab-disk.sh /dev/disk/by-id/ACTUAL_NEW_DISK aus. Es erfordert, das tatsächliche Gerät vor der Partitionierung und erneut vor der Dateisystemerstellung einzugeben. Verwenden Sie ext4, labeln Sie es mit lab-data und notieren Sie anschließend die UUID; eine Konfigurationsrücknahme kann formatierte Originaldaten nicht wiederherstellen.
set -euo pipefail
if [ "$#" -ne 1 ]; then
printf 'Usage: bash prepare-empty-lab-disk.sh /dev/disk/by-id/ACTUAL_NEW_DISK\n' >&2; exit 2
fi
case "$1" in /dev/disk/by-id/*) ;; *) printf 'Use the verified by-id path.\n' >&2; exit 2 ;; esac
disk=$(readlink -e -- "$1")
test -b "$disk"
if [ "$(lsblk -dnro TYPE "$disk")" != disk ] || [ "$(lsblk -dnro RO "$disk")" != 0 ]; then
printf 'Not a writable whole disk.\n' >&2; exit 1
fi
if [ "$(lsblk -nr -o NAME "$disk" | wc -l)" -ne 1 ]; then
printf 'Partitions or dependent devices already exist; stop.\n' >&2; exit 1
fi
if lsblk -nr -o MOUNTPOINTS "$disk" | grep -q '[^[:space:]]'; then
printf 'A mount is present; stop.\n' >&2; exit 1
fi
signatures=$(sudo wipefs --no-act --noheadings --output TYPE "$disk")
if [ -n "$signatures" ]; then
printf 'Existing signatures: %s; stop.\n' "$signatures" >&2; exit 1
fi
lsblk -o NAME,SIZE,TYPE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS "$disk"
read -r -p "Type the verified empty disk path ($disk): " confirmed
if [ "$confirmed" != "$disk" ]; then exit 1; fi
sudo fdisk "$disk"
sudo udevadm settle
mapfile -t partitions < <(lsblk -nrpo NAME,TYPE "$disk" | awk '$2 == "part" {print $1}')
if [ "${#partitions[@]}" -ne 1 ]; then
printf 'Expected one newly created partition; inspect before formatting.\n' >&2; exit 1
fi
partition=${partitions[0]}
if findmnt -rn --source "$partition" >/dev/null; then
printf 'The partition is mounted; stop.\n' >&2; exit 1
fi
signatures=$(sudo wipefs --no-act --noheadings --output TYPE "$partition")
if [ -n "$signatures" ]; then printf 'Partition already has a signature; stop.\n' >&2; exit 1; fi
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS "$disk"
read -r -p "Type the new partition to format as ext4 ($partition): " confirmed
if [ "$confirmed" != "$partition" ]; then exit 1; fi
sudo mkfs.ext4 -L lab-data "$partition"
sudo blkid "$partition"
lsblk -f "$disk"
Wenn eine separate ext4-Übungsfestplatte bereits vorbereitet ist, überspringen Sie die Initialisierung und beginnen Sie mit der UUID-Identifizierung. Schreiben Sie nicht von mehreren VMs auf dieselbe virtuelle Festplatte. Verwenden Sie die verifizierte Partitions-UUID für das nachfolgende persistente Einhängen.
Das fdisk-Handbuch erklärt die Partitionsbearbeitung und die Festplattenziele.
Das mke2fs-Handbuch beschreibt die Erstellung des mkfs.ext4-Dateisystems und dessen Auswirkungen.
Verstehen Sie System-Mounts und Dienstabhängigkeiten in fstab
Verwalten Sie persistente Server-Mounts über die tatsächliche UUID, den Einhängepunkt, das Dateisystem und die Optionen in /etc/fstab. Das Erstellen eines Verzeichnisses oder ein erfolgreicher Mount unterscheidet sich vom Mounten nach einem Neustart, daher sollten Backups, Validierung und Neustart separat überprüft werden. Für Servicedaten sollten Abhängigkeiten so gestaltet werden, dass Schreibvorgänge verhindert werden, wenn das erforderliche Mount fehlschlägt.
Die Ausfallrichtlinie unterscheidet sich zwischen essenziellen Servicedaten und optionalem, entfernbaren Speicher. nofail kann erlauben, dass der Bootvorgang fortgesetzt wird, verhindert jedoch nicht, dass eine Anwendung in ein leeres lokales Mount-Verzeichnis schreibt, wenn die Festplatte fehlt.
Sichern Sie und bereiten Sie einen Einhängepunkt vor
(
set -eu
backup=$(sudo mktemp /root/fstab-backup.XXXXXX)
sudo cp -a /etc/fstab "$backup"
printf 'Backup: %s\n' "$backup"
sudo mkdir -p /srv/lab-data
)
Wenn das Ziel bereits verwendet wird oder Dateien enthält, bewahren Sie diese auf und wählen Sie einen geeigneten leeren Standort. Ein Mount kann vorhandene lokale Dateien darunter verbergen. Das Erstellen eines Verzeichnisses mountet die Festplatte nicht.
Fügen Sie einen Eintrag mit der tatsächlichen UUID hinzu
Öffnen Sie sudoedit /etc/fstab, bewahren Sie die vorhandenen Einträge, und fügen Sie eine Zeile hinzu. Das Beispiel geht von einem ext4-Dateisystem in der Praxis aus; ersetzen Sie den UUID-Platzhalter durch den tatsächlichen Wert und verwenden Sie den ext4-Typ nicht für ein anderes Dateisystem.
UUID=REPLACE_WITH_VERIFIED_UUID /srv/lab-data ext4 defaults,nofail,x-systemd.device-timeout=10s 0 2
Dieses Beispiel behandelt das Gerät als optional beim Booten. Speicher für wichtige Dienste benötigt eine Richtlinie und Abhängigkeiten, die den Dienststart verhindern, wenn das Einhängen fehlschlägt. Pfade, die Leerzeichen enthalten, erfordern ebenfalls fstab-spezifisches Escaping.
(
set -eu
sudo findmnt --verify --verbose
sudo systemctl daemon-reload
sudo mount /srv/lab-data
findmnt --mountpoint /srv/lab-data
)
Beheben Sie zuerst Verifizierungsfehler und hängen Sie nur den vorgesehenen Eintrag ein. Das Ausrichten auf einen Einhängepunkt begrenzt die Auswirkungen im Vergleich zum Einhängen jedes fstab-Eintrags. Stimmen Sie die tatsächliche Quelle und das Dateisystem von findmnt mit der überprüften UUID ab.
Schreiben Sie nur nach der Überprüfung des Einhängens
expected_uuid=REPLACE_WITH_VERIFIED_UUID
actual_uuid=$(findmnt -rn --mountpoint /srv/lab-data -o UUID || true)
if [ "$actual_uuid" != "$expected_uuid" ]; then
printf 'Expected disk is not mounted; stop the write job.\n' >&2
exit 1
fi
printf 'Verified the expected mounted filesystem.\n'
Speichern Sie die Überprüfung als separates Bash-Skript, etwa ~/check-lab-mount.sh, tragen Sie die echte UUID ein und führen Sie bash ~/check-lab-mount.sh aus. Ein Fehlschlag beendet das Skript mit 1; nachfolgende Schreibvorgänge müssen vom Erfolg abhängen. Testen Sie eine Übungsdatei und öffnen Sie sie nach dem Neustart erneut. Überprüfen Sie das Fehlen des Geräts erst nach sicherem Herunterfahren oder Abschluss der Speicheraktivität.
Im Falle eines Fehlers stellen Sie nur den geänderten fstab-Eintrag über die Konsole wieder her und validieren Sie erneut. Überprüfen Sie außerdem, dass Backup- oder Service-Jobs stoppen, anstatt lokal zu schreiben, wenn das erwartete Laufwerk fehlt.
Die systemd.mount-Referenz erklärt fstab-Optionen und Abhängigkeiten von Diensten.




