Wie pflegt man Linux-Festplatten? Gängige Befehle zur Festplattenwartung
In Linux-Systemen sind Festplatten die Kernkomponenten zur Speicherung aller Daten und Systemdateien. Dieser Artikel bietet Ihnen eine detaillierte Einführung in gängige Befehle und Tipps zur Wartung von Festplatten unter Linux, um Ihnen bei der besseren Verwaltung und Pflege Ihrer Festplatten zu helfen.
Wird gerendert...
In Linux-Systemen ist die Festplatte die Kernkomponente für die Speicherung aller Daten und Systemdateien. Eine regelmäßige Wartung und Überwachung der Festplatte gewährleistet nicht nur einen stabilen Systembetrieb und vermeidet Leistungseinbußen durch unzureichenden Speicherplatz, sondern ermöglicht auch die frühzeitige Erkennung potenzieller Hardwareprobleme und somit die effektive Verhinderung von Datenverlust. Dieser Artikel führt Sie detailliert durch die gängigen Befehle und Techniken zur Wartung von Linux-Festplatten, um Ihnen eine bessere Verwaltung und Pflege Ihrer Festplatten zu ermöglichen.
## Einleitung: Die Bedeutung der Festplattenwartung
Festplattenwartung ist mehr als nur das Löschen von Junk-Dateien. Sie umfasst auch die Überwachung des Festplattengesundheitszustands, die Überprüfung der Dateisystemintegrität, die Optimierung der I/O-Leistung und vieles mehr. Eine gesunde Festplatte ist die Grundlage für einen effizienten Linux-Systembetrieb. Die Vernachlässigung der Festplattenwartung kann zu folgenden Problemen führen:
* **Leistungseinbußen des Systems**: Unzureichender Festplattenspeicher oder übermäßige Fragmentierung können die Systemgeschwindigkeit erheblich verlangsamen.
* **Abstürze von Anwendungen**: Einige Anwendungen benötigen temporären Speicherplatz. Wenn dieser nicht ausreicht, können sie nicht ordnungsgemäß funktionieren.
* **Risiko von Datenverlust**: Vor einem Festplattenausfall gibt es oft Anzeichen. Eine rechtzeitige Erkennung kann einen permanenten Datenverlust verhindern.
* **Systeminstabilität**: Dateisystemfehler können zu Systemabstürzen oder Startproblemen führen.
## I. Anzeigen grundlegender Festplatteninformationen
Bevor Sie mit Wartungsarbeiten beginnen, ist das Verständnis der physischen und logischen Struktur der Festplatte der erste Schritt.
### 1. Auflisten von Blockgeräteinformationen: `lsblk`
Der Befehl `lsblk` listet alle verfügbaren Blockgeräte (wie Festplatten, Partitionen, USB-Laufwerke usw.) und deren Beziehungen zueinander auf.
```bash
lsblk
```
**Beispielausgabe:**
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 191.9G 0 part /
sr0 11:0 1 1024M 0 rom
```
* **`NAME`**: Gerätename (z. B. `sda` für die erste SCSI-Festplatte, `sda1` für die erste Partition von `sda`).
* **`SIZE`**: Größe des Geräts oder der Partition.
* **`TYPE`**: Gerätetyp (`disk` für Festplatte, `part` für Partition, `rom` für optisches Laufwerk).
* **`MOUNTPOINTS`**: Einhängepunkt des Geräts.
### 2. Anzeigen von Partitionsinformationen: `fdisk -l` oder `parted -l`
Diese Befehle zeigen Informationen über die Partitionstabelle der Festplatte an. `fdisk` ist für MBR- und GPT-Partitionstabellen geeignet, während `parted` leistungsfähiger ist und mehr Partitionstypen unterstützt.
```bash
sudo fdisk -l
# oder
sudo parted -l
```
**Hinweis:** Diese Befehle erfordern Root-Berechtigungen, um alle Festplatteninformationen anzuzeigen.
### 3. Anzeigen von eingehängten Dateisystemen: `mount`
Wenn der Befehl `mount` ohne Argumente aufgerufen wird, zeigt er alle aktuell im System eingehängten Dateisysteme an. Dies ist sehr nützlich, um zu verstehen, welche Partitionen verwendet werden und welche Einhängeoptionen sie haben.
```bash
mount
```
**Beispielausgabe:**
```
/dev/sda3 on / type ext4 (rw,relatime,errors=remount-ro)
/dev/sda1 on /boot type ext4 (rw,relatime)
/dev/sdb1 on /data type xfs (rw,relatime,attr2,inode64,noquota)
```
## II. Anzeigen der Festplattenauslastung
Das Verständnis der allgemeinen Festplattenauslastung ist der erste Schritt der Wartung.
### 1. Anzeigen der gesamten Dateisystemauslastung: `df -h`
Der Befehl `df` (disk free) zeigt die Auslastung des Festplattenspeichers für Dateisysteme an. Die Option `-h` zeigt die Größe in menschenlesbarem Format (z. B. G, M) an.
```bash
df -h
```
**Beispielausgabe:**
```
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 797M 1.8M 795M 1% /run
/dev/sda3 192G 85G 100G 46% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda1 976M 180M 729M 20% /boot
tmpfs 797M 12K 797M 1% /run/user/1000
```
* **`Filesystem`**: Name des Dateisystems.
* **`Size`**: Gesamtgröße des Dateisystems.
* **`Used`**: Belegter Speicherplatz.
* **`Avail`**: Verfügbarer Speicherplatz.
* **`Use%`**: Prozentsatz des belegten Speicherplatzes.
* **`Mounted on`**: Einhängepunkt des Dateisystems.
**Konzentrieren Sie sich auf die Spalte `Use%`. Wenn die Auslastung eines Einhängepunkts nahe 100 % liegt, muss sofort gehandelt werden.**
### 2. Anzeigen der Inode-Auslastung: `df -i`
Neben dem Festplattenspeicher verwaltet das Dateisystem auch Inodes (Indexknoten). Jede Datei oder jedes Verzeichnis belegt einen Inode. Wenn die Inodes aufgebraucht sind, können keine neuen Dateien erstellt werden, auch wenn noch genügend Speicherplatz vorhanden ist.
```bash
df -i
```
**Beispielausgabe:**
```
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 999550 427 999123 1% /dev
tmpfs 199887 706 199181 1% /run
/dev/sda3 12582912 378900 12204012 4% /
tmpfs 999550 1 999549 1% /dev/shm
tmpfs 199887 3 199884 1% /run/lock
/dev/sda1 256K 336 256K 1% /boot
tmpfs 199887 16 199871 1% /run/user/1000
```
**Achten Sie ebenfalls auf `IUse%`. Wenn dieser Wert zu hoch ist, deutet dies möglicherweise auf eine große Anzahl kleiner Dateien hin.**
## III. Suchen nach speicherplatzintensiven Dateien und Ordnern
Wenn `df -h` anzeigt, dass der Speicherplatz einer Partition knapp wird, besteht der nächste Schritt darin, herauszufinden, welche Dateien oder Ordner den meisten Platz beanspruchen.
### 1. Anzeigen der Größe von Unterverzeichnissen in einem bestimmten Verzeichnis: `du -h --max-depth=1`
Der Befehl `du` (disk usage) schätzt den Speicherplatzverbrauch von Dateien oder Verzeichnissen. In Kombination mit `-h` (menschenlesbar) und `--max-depth=1` (nur Unterverzeichnisse der ersten Ebene anzeigen) können Probleme schnell identifiziert werden.
```bash
sudo du -h --max-depth=1 /pfad/zum/verzeichnis
# Beispiel: Anzeigen der Größe der ersten Unterverzeichnisse im Stammverzeichnis
sudo du -h --max-depth=1 /
```
**Beispielausgabe:**
```
4.0K /srv
16K /lost+found
4.0K /mnt
4.0K /cdrom
1.8G /opt
1.1G /home
8.0K /media
1.2G /root
4.0K /snap
1.4G /boot
1.3G /etc
1.6G /bin
2.0G /lib
1.7G /sbin
2.0G /dev
1.9G /run
2.0G /sys
1.9G /tmp
1.9G /proc
2.0G /usr
2.0G /var
2.0G /lib64
2.0G /initrd.img
2.0G /vmlinuz
192G /
```
Mit diesem Befehl können Sie schrittweise vorgehen, um die speicherplatzintensivsten Verzeichnisse zu finden.
### 2. Suchen nach den größten Dateien/Ordnern im aktuellen Verzeichnis: `du -sh * | sort -rh`
Diese kombinierte Befehlszeile listet die Größe aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis auf und sortiert sie absteigend.
```bash
sudo du -sh * | sort -rh
```
* `du -sh *`: Schätzt die Gesamtgröße aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis und zeigt sie in menschenlesbarem Format an.
* `sort -rh`: Der Befehl `sort` dient zum Sortieren, `-r` steht für umgekehrte Sortierung (absteigend), `-h` für die Sortierung nach menschenlesbaren Zahlen.
**Beispielausgabe:**
```
85G var
1.1G home
1.0G usr
900M opt
500M root
...
```
### 3. Suchen nach Dateien mit einer bestimmten Größe: `find`
Der Befehl `find` ist sehr leistungsfähig und kann Dateien anhand verschiedener Kriterien suchen. Zum Beispiel, um alle Dateien größer als 1 GB im Verzeichnis `/var` zu finden:
```bash
sudo find /var -type f -size +1G -print0 | xargs -0 du -h | sort -rh
```
* `find /var -type f -size +1G`: Sucht im Verzeichnis `/var` nach Dateien (`-type f`) mit einer Größe von mehr als 1 GB (`-size +1G`).
* `-print0`: Gibt die Ausgabe mit Nullzeichen getrennt aus, um Probleme mit Dateinamen zu vermeiden, die Leerzeichen oder Sonderzeichen enthalten.
* `xargs -0 du -h`: Nimmt die Ausgabe von `find` als Eingabe für `du -h`, um die Größe jeder Datei zu ermitteln.
* `sort -rh`: Sortiert erneut, um die größten Dateien anzuzeigen.
---
## IV. Überwachen der Festplatten-I/O-Leistung
Die I/O-Leistung der Festplatte wirkt sich direkt auf die Reaktionsgeschwindigkeit des Systems aus. Die Überwachung der I/O kann Ihnen helfen festzustellen, ob Prozesse übermäßig auf die Festplatte schreiben oder lesen.
### 1. Echtzeitüberwachung von Prozess-I/O: `iotop`
Das Werkzeug `iotop` zeigt in Echtzeit an, welche Prozesse gerade intensive Festplatten-Lese- und Schreibvorgänge durchführen. Es ähnelt dem Befehl `top` für die Überwachung von CPU und Speicher.
```bash
sudo iotop
```
**Hinweis:** `iotop` muss normalerweise separat installiert werden.
* Debian/Ubuntu: `sudo apt install iotop`
* CentOS/RHEL: `sudo yum install iotop` oder `sudo dnf install iotop`
### 2. Statistiken für I/O: `iostat`
Der Befehl `iostat` (Teil des Pakets `sysstat`) berichtet über CPU-Statistiken und Geräte-I/O-Statistiken.
```bash
sudo iostat -x 1 5
```
* `-x`: Zeigt erweiterte Statistiken an.
* `1 5`: Aktualisiert alle 1 Sekunde, zeigt insgesamt 5 Mal an.
**Beispielausgabe (Teil):**
```
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
```
* `r/s`, `w/s`: Anzahl der Lese-/Schreibanfragen pro Sekunde.
* `rkB/s`, `wkB/s`: Menge der gelesenen/geschriebenen Daten pro Sekunde (KB).
* `%util`: Gerätenutzung. Wenn dieser Wert nahe 100 % liegt, kann dies auf einen I/O-Engpass hindeuten.
---
## V. Festplattenspeicher bereinigen
Das Freimachen von Festplattenspeicher ist ein wichtiger Teil der täglichen Wartung.
### 1. Bereinigen des Paketmanager-Caches
Paketmanager (wie APT, YUM, DNF) laden beim Installieren von Paketen die Installationsdateien in einen lokalen Cache herunter, der viel Speicherplatz beanspruchen kann.
* **Debian/Ubuntu (APT):**
```bash
sudo apt clean # Bereinigt alle heruntergeladenen Paketdateien
sudo apt autoclean # Bereinigt nicht mehr benötigte Paketdateien
```
* **CentOS/RHEL (YUM/DNF):**
```bash
sudo yum clean all # Bereinigt alle Cache-Dateien
# Oder für DNF
sudo dnf clean all # Bereinigt alle Cache-Dateien
```
### 2. Bereinigen von Protokolldateien
System- und Anwendungslogdateien werden normalerweise im Verzeichnis `/var/log` gespeichert und können nach langer Laufzeit sehr groß werden.
* **Verständnis von `logrotate`**: Linux-Systeme verwenden normalerweise das Werkzeug `logrotate`, um Protokolldateien automatisch zu verwalten, indem sie sie regelmäßig rotieren, komprimieren und löschen. Sie können die Konfigurationsdateien in `/etc/logrotate.conf` und `/etc/logrotate.d/` überprüfen.
* **Manuelles Bereinigen alter Protokolle**: Wenn `logrotate` falsch konfiguriert ist oder Protokolle zu schnell wachsen, müssen Sie sie möglicherweise manuell bereinigen.
**Warnung:** Stellen Sie sicher, dass Sie den Inhalt und die Wichtigkeit von Protokolldateien verstehen, bevor Sie sie löschen. Das Löschen von Protokolldateien, in die gerade geschrieben wird, kann zu Problemen führen.
```bash
# Suchen und Löschen aller alten komprimierten Protokolldateien mit der Endung .gz
sudo find /var/log -type f -name "*.gz" -delete
# Suchen und Löschen aller alten Protokolldateien mit der Endung .log.1
sudo find /var/log -type f -name "*.log.1" -delete
# Leeren einer bestimmten großen Protokolldatei (ohne die Datei selbst zu löschen, nur den Inhalt)
sudo truncate -s 0 /var/log/syslog
```
### 3. Bereinigen von temporären Dateien
Systeme und Anwendungen erstellen temporäre Dateien, die normalerweise im Verzeichnis `/tmp` und `/var/tmp` gespeichert werden.
* Dateien im Verzeichnis `/tmp` werden normalerweise nach einem Systemneustart gelöscht.
* Dateien im Verzeichnis `/var/tmp` werden normalerweise nach einem Systemneustart nicht gelöscht, aber regelmäßig bereinigt.
* **Manuelles Bereinigen:**
**Warnung:** Seien Sie beim Bereinigen des Verzeichnisses `/tmp` sehr vorsichtig, da laufende Programme möglicherweise Dateien darin verwenden. Es ist am besten, dies während eines Systemwartungsfensters oder nach einem Neustart zu tun.
```bash
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
```
### 4. Bereinigen großer Dateien im Home-Verzeichnis des Benutzers
Das Home-Verzeichnis des Benutzers (`/home/username`) ist oft ein großer Speicherplatzfresser, insbesondere Downloads, Videos, Bilder und ähnliche Dateien. Die zuvor vorgestellten Befehle `du` und `find` helfen Ihnen, diese Dateien zu finden und zu bereinigen.
```bash
# Suchen nach Dateien größer als 500 MB im Home-Verzeichnis des aktuellen Benutzers
find ~/ -type f -size +500M -print0 | xargs -0 du -h | sort -rh
```
---
## VI. Überprüfung des Festplattengesundheitszustands
Neben Speicherplatz und Leistung ist auch der physische Gesundheitszustand der Festplatte von entscheidender Bedeutung. Die S.M.A.R.T.-Technologie (Self-Monitoring, Analysis and Reporting Technology) hilft uns, den Gesundheitszustand der Festplatte zu überwachen.
### 1. Überprüfen von S.M.A.R.T.-Informationen mit `smartctl`
Der Befehl `smartctl` ist Teil des Pakets `smartmontools` und wird verwendet, um mit S.M.A.R.T.-fähigen Festplatten zu interagieren.
**Installation von `smartmontools`:**
* Debian/Ubuntu: `sudo apt install smartmontools`
* CentOS/RHEL: `sudo yum install smartmontools` oder `sudo dnf install smartmontools`
**Überprüfen des Festplattengesundheitszustands:**
```bash
sudo smartctl -a /dev/sda
```
Ersetzen Sie `/dev/sda` durch den Namen Ihres Festplattengeräts (den Sie mit `lsblk` finden können).
**Beispielausgabe (wichtige Informationen):**
```
SMART overall-health self-assessment test result: PASSED
...
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 000 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Always - 0
```
**Erläuterung wichtiger Metriken:**
* **`SMART overall-health self-assessment test result: PASSED`**: Dies ist die wichtigste Metrik und zeigt an, dass die Festplatte den Selbsttest bestanden hat. Wenn hier `FAILED` steht, hat die Festplatte möglicherweise ernsthafte Probleme.
* **`Reallocated_Sector_Ct` (ID 5)**: Anzahl der neu zugeordneten Sektoren. Wenn die Festplatte fehlerhafte Sektoren erkennt, markiert sie diese und ersetzt sie durch Ersatzsektoren. Wenn dieser Wert nicht Null ist und weiter steigt, deutet dies auf physikalische Fehler auf der Festplatte hin.
* **`Current_Pending_Sector` (ID 197)**: Anzahl der aktuell ausstehenden Sektoren. Dies bedeutet, dass Sektoren als "instabil" markiert wurden und auf eine Neuzuweisung warten. Wenn dieser Wert nicht Null ist, sollten Sie ihn genau beobachten.
* **`Offline_Uncorrectable` (ID 198)**: Anzahl der offline nicht korrigierbaren Sektoren. Dies bedeutet, dass Sektoren nicht gelesen oder geschrieben werden können und nicht durch ECC korrigiert werden können. Ein Wert ungleich Null deutet normalerweise auf bereits vorhandene, nicht behebbare fehlerhafte Sektoren auf der Festplatte hin.
**Wenn Sie abnormale Werte bei diesen Schlüsselmetriken feststellen, sichern Sie sofort Ihre Daten und erwägen Sie den Austausch der Festplatte.**
## VII. Regelmäßige Wartung und Sicherung
* **Regelmäßige Überprüfung**: Es wird empfohlen, die Festplattenauslastung und die S.M.A.R.T.-Informationen mindestens einmal im Monat zu überprüfen.
* **Datensicherung**: Jede Festplatte kann jederzeit ausfallen. **Regelmäßige Sicherung wichtiger Daten ist die ultimative Garantie gegen Datenverlust.** Sie können Befehle wie `rsync`, `tar` oder spezielle Backup-Tools verwenden.
* **Dateisystemprüfung**: Für Nicht-Root-Partitionen können Sie das Dateisystem nach dem Aushängen mit dem Befehl `fsck` auf Integrität überprüfen. Für die Root-Partition erfolgt die Überprüfung normalerweise automatisch beim Systemstart.Kommentar
Melde dich an, um Kommentare anzuzeigen und zu veröffentlichen
Zur Anmeldung