Ein neues Laufwerk unter Linux einbinden: Partitionierung, Formatierung und fstab

Linux 4 Min. Lesezeit

Wenn dem Server eine neue Festplatte hinzugefügt wird (beispielsweise die zweite Festplatte eines dedizierten Servers oder eine separate Festplatte, die einem VPS zugewiesen ist), erkennt das System diese zwar, kann sie jedoch erst nutzen, wenn sie partitioniert, mit einem Dateisystem versehen und in ein Verzeichnis eingebunden wird. Dieser Artikel erläutert diese Schritte.

Falls Sie keine neue Festplatte erhalten haben, sondern die vorhandene Festplatte vergrößert wurde, trifft der Artikel „Wie kann ich das Dateisystem nach der Erweiterung der VPS-Festplatte vergrößern?“ auf Sie zu.

Achtung: Durch das Partitionieren und Formatieren werden alle Daten auf der Festplatte gelöscht. Bitte überprüfen Sie vor jedem Schritt, ob Sie an der richtigen Festplatte arbeiten.

1. Identifizierung der neuen Festplatte

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINTS

Auf einem Testrechner mit AlmaLinux 10 und einer neuen 6-GB-Festplatte:

NAME   FSTYPE   SIZE MOUNTPOINTS
vda              10G 
├─vda1 vfat     200M /boot/efi
├─vda2 xfs        1G /boot
└─vda3 xfs      8.8G /
vdb    iso9660  900K 
vdc               6G

Die neue Festplatte ist jene, die keine Partition, kein Dateisystem und keinen Mountpunkt aufweist; im Beispiel ist dies „vdc“. (Die „vdb“ ist hier eine kleine, schreibgeschützte Konfigurationsfestplatte, die vom Installationsprogramm verwendet wurde; diese ist nicht auf jedem Server vorhanden.) Nehmen Sie keine Änderungen an den Partitionen der Systemfestplatte („vda“ oder „sda“) vor. Wir haben die Schritte auf diesem Rechner getestet; in den Befehlen wird der allgemeinere Name „vdb“ verwendet – ersetzen Sie diesen bitte durch den Namen Ihrer eigenen Festplatte.

2. Partitionierung

Erstellen Sie eine GPT-Partitionstabelle und eine Partition, die die gesamte Festplatte ausfüllt:

sudo parted /dev/vdb --script mklabel gpt mkpart primary 0% 100%

Überprüfung: In der Ausgabe von „lsblk“ wird die Partition „vdb1“ angezeigt.

3. Erstellen eines Dateisystems

Unter AlmaLinux und Rocky Linux ist XFS, unter Ubuntu und Debian ist ext4 die Standardeinstellung; beide sind eine gute Wahl.

# XFS
sudo mkfs.xfs /dev/vdb1

# vagy ext4
sudo mkfs.ext4 /dev/vdb1

4. Hochladen

Erstellen Sie das Verzeichnis, in dem die Datei verfügbar sein soll, und laden Sie sie hoch:

sudo mkdir -p /mnt/data
sudo mount /dev/vdb1 /mnt/data
df -h /mnt/data

5. Permanente Einbindung in der Datei /etc/fstab

Ein mit dem Befehl „mount“ eingebundenes Laufwerk wird nach einem Neustart nicht erneut eingebunden. Dazu muss es in die Datei /etc/fstab aufgenommen werden. Da sich der Gerätename (/dev/vdb1) bei einem Neustart ändern kann, verwenden Sie bitte die eindeutige Kennung (UUID) der Partition:

sudo blkid /dev/vdb1
/dev/vdb1: UUID="3f1c9a2e-7b4d-4e0a-9c55-1d2e3f4a5b6c" TYPE="xfs" ...

Erstellen Sie eine Sicherungskopie der Datei „fstab“ und fügen Sie anschließend die folgende neue Zeile hinzu:

sudo cp /etc/fstab /etc/fstab.bak
sudo nano /etc/fstab
UUID=3f1c9a2e-7b4d-4e0a-9c55-1d2e3f4a5b6c  /mnt/data  xfs  defaults,nofail  0 0

Beim ext4-Dateisystem lautet der Typ „ext4“, die letzte Ziffer ist „2“ (das Dateisystem wird beim Start überprüft). Die Einstellung „nofail“ stellt sicher, dass der Server auch dann startet, wenn die Festplatte aus irgendeinem Grund nicht erreichbar ist.

Bitte überprüfen Sie die Einstellungen vor dem Neustart. Aufgrund einer fehlerhaften „fstab“-Zeile startet der Server nicht und kann nur über die Konsole korrigiert werden.

sudo umount /mnt/data
sudo systemctl daemon-reload
sudo mount -a
sudo findmnt --verify
df -h /mnt/data

Bei korrekter Konfiguration gibt der Befehl „findmnt --verify“ folgende Meldung aus: „Success, no errors or warnings detected“. Bei einer Zeile mit falsch eingegebener UUID ergab der Test folgende Ausgabe:

/mnt/rossz
   [E] unreachable on boot required target: No such file or directory
   [E] unreachable on boot required source: UUID=00000000-1111-2222-3333-444444444444

Der Befehl „mount -a“ gibt hingegen folgende Meldung aus: „mount: /mnt/rossz: can't find UUID=…“. Sollte der Befehl „mount -a“ einen Fehler ausgeben oder „df“ das Laufwerk nicht anzeigen, korrigieren Sie die Zeile, bevor Sie den Server neu starten. Im Test wurde das Laufwerk, das mit der korrekten Zeile eingebunden wurde, nach dem Neustart automatisch gemountet.

6. Berechtigungen

Das Stammverzeichnis der eingebundenen Festplatte gehört dem Benutzer „root“. Wenn ein Benutzer oder ein Dienst (z. B. der Webserver) Schreibzugriff darauf haben soll, legen Sie den Eigentümer wie folgt fest:

sudo chown -R janos:janos /mnt/data

Weitere Informationen zu Berechtigungen: Dateiberechtigungen (chmod, chown) unter Linux. Unter AlmaLinux müssen, sofern Webinhalte oder Datenbanken auf der Festplatte gespeichert werden, auch die SELinux-Labels konfiguriert werden (siehe: SELinux: Warum erhalte ich die Fehlermeldung „Permission denied“?).

Verwendung von LVM

Wenn Sie Ihren Speicherplatz später um weitere Festplatten erweitern möchten, können Sie die Festplatte anstelle einer Partitionierung und Formatierung auch als LVM-Volume einrichten (siehe: Was ist LVM?):

sudo pvcreate /dev/vdb
sudo vgcreate data /dev/vdb
sudo lvcreate -l 100%FREE -n adat data
sudo mkfs.xfs /dev/data/adat

Anschließend mounten Sie das Volume „/dev/data/adat“ gemäß den oben genannten Schritten 4 und 5 (in der Zeile „fstab“ kann auch der Name „/dev/data/adat“ angegeben werden; der Name des LVM-Volumes ändert sich nicht). Unter AlmaLinux 9 und 10 erstellt der erste Befehl „pvcreate“ die Datei /etc/lvm/devices/system.devices („Creating devices file“): LVM verwaltet fortan nur die hier aufgeführten Festplatten; „pvcreate“ und „vgextend“ nehmen neue Festplatten automatisch auf.

Zurück: Linux-Artikel (62)