Herkömmliche fstab-Optionen

Wenn Volumes bei Linux-Instanzen beim Booten der Instanz automatisch gemountet werden sollen, müssen Sie einige spezifische Optionen in der Datei /etc/fstab festlegen. Andernfalls kann die Instanz möglicherweise nicht gestartet werden.

Hinweis:

Diese Schritte gelten für Block Volumes, bei denen keine konsistenten Gerätepfade aktiviert sind. Wenn konsistente Gerätepfade für das Block-Volume aktiviert sind, verwenden Sie stattdessen die /etc/fstab-Optionen für Block-Volumes mit konsistenten Gerätepfaden.

Volume-UUIDs

Bei Linux-Betriebssystemen ist die Reihenfolge, in der Volumes angehängt werden, nicht deterministisch, sodass sie bei jedem Neustart geändert werden kann. Wenn Sie mit dem Gerätenamen wie /dev/sdb auf ein Volume verweisen und mehr als ein Nicht-Root-Volume vorhanden ist, können Sie nicht garantieren, dass das Volume, das Sie für einen bestimmten Gerätenamen mounten möchten, auch tatsächlich gemountet wird.

Um dieses Problem zu vermeiden, geben Sie die Volume-UUID in der Datei /etc/fstab anstelle des Gerätenamens an. Wenn Sie die UUID verwenden, gleicht der Mount-Prozess die UUID im Superblock mit dem Mount Point ab, der in der Datei /etc/fstab angegeben ist. Dieser Prozess garantiert, dass immer dasselbe Volume am selben Mount Point gemountet wird.

UUID für ein Volume bestimmen

  1. Gehen Sie wie folgt vor, um ein Volume anzuhängen und eine Verbindung mit dem Volume herzustellen.

  2. Nachdem die Volumes verbunden wurden, erstellen Sie das gewünschte Dateisystem auf jedem Volume mit den standardmäßigen Linux-Tools.

    In den restlichen Schritten wird davon ausgegangen, dass drei Volumes verbunden wurden und auf jedem Volume ein XFS-Dateisystem erstellt wurde.

  3. Führen Sie den folgenden Befehl aus, um die UUIDs für die Volumes mit dem blkid-Utility abzurufen:

    sudo blkid

    Die Ausgabe sieht in etwa wie folgt aus:

    {{ /dev/sda3: UUID="1701c7e0-7527-4338-ae9f-672fd8d24ec7" TYPE="xfs" PARTUUID="82d2ba4e-4d6e-4a33-9c4d-ba52db57ea61"}}
    {{ /dev/sda1: UUID="5750-10A1" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="082c26fd-85f5-4db2-9f4e-9288a3f3e784"}}
    {{ /dev/sda2: UUID="1aad7aca-689d-4f4f-aff0-e0d46fc1b89f" TYPE="swap" PARTUUID="94ee5675-a805-49b2-aaf5-2fa15aade8d5"}}
    {{ /dev/sdb: UUID="699a776a-3d8d-4c88-8f46-209101f318b6" TYPE="xfs"}}
    {{ /dev/sdd: UUID="85566369-7148-4ffc-bf97-50954cae7854" TYPE="xfs"}}
    {{ /dev/sdc: UUID="ba0ac1d3-58cf-4ff0-bd28-f2df532f7de9" TYPE="xfs"}}

    Das Root-Volume in dieser Ausgabe ist /dev/sda*. Die zusätzlichen Remote-Volumes sind:

    • /dev/sdb
    • /dev/sdc
    • /dev/sdd
  4. Um die Volumes automatisch an /mnt/vol1, /mnt/vol2 bzw. /mnt/vol3 anzuhängen, erstellen Sie die drei Verzeichnisse mit den folgenden Befehlen:

    bash-4.2$ sudo mkdir /mnt/vol1
    {{ bash-4.2$ sudo mkdir /mnt/vol2}}
    {{ bash-4.2$ sudo mkdir /mnt/vol3}}

Optionen _netdev und nofail verwenden

Standardmäßig wird die Datei /etc/fstab vor dem Start des Initiators verarbeitet. Konfigurieren Sie den Mount-Prozess so, dass er vor dem Mounten der Volumes initiiert wird, indem Sie die Option _netdev in jeder Zeile der Datei /etc/fstab angeben.

Wenn Sie ein benutzerdefiniertes Image einer Instanz erstellen, bei der die Volumes (mit Ausnahme des Root-Volumes) in der Datei /etc/fstab aufgeführt sind, können Instanzen nicht über das benutzerdefinierte Image gestartet werden. Um dieses Problem zu vermeiden, geben Sie die Option nofail in der Datei /etc/fstab an.

Im Beispielszenario mit drei Volumes lauten die /etc/fstab-Dateieinträge für die Volumes mit den Optionen _netdev und nofail folgendermaßen:


UUID=699a776a-3d8d-4c88-8f46-209101f318b6 /mnt/vol1 xfs defaults,_netdev,nofail 0 2
UUID=ba0ac1d3-58cf-4ff0-bd28-f2df532f7de9 /mnt/vol2 xfs defaults,_netdev,nofail 0 2
UUID=85566369-7148-4ffc-bf97-50954cae7854 /mnt/vol3 xfs defaults,_netdev,nofail 0 2

Nachdem Sie die Datei /etc/fstab aktualisiert haben, mounten Sie die Volumes mit dem folgenden Befehl:

bash-4.2$ sudo mount -a

Starten Sie die Instanz mit dem folgenden Befehl neu, um zu bestätigen, dass die Volumes beim Neustart ordnungsgemäß gemountet sind:

bash-4.2$ sudo reboot

Probleme mit der Datei /etc/fstab beheben

Wenn die Instanz nach der Aktualisierung der Datei /etc/fstab nicht neu gestartet werden kann, müssen Sie die Änderungen an der Datei /etc/fstab möglicherweise rückgängig machen. Um die Datei zu aktualisieren, stellen Sie zunächst eine Verbindung mit der seriellen Konsole für die Instanz her. Wenn Sie über die serielle Konsolenverbindung auf die Instanz zugreifen können, können Sie die an der Datei /etc/fstab vorgenommenen Änderungen entfernen, auskommentieren oder korrigieren.