Das Standardwerkzeug für Debian-Ableitungen ist Disk Usage Analyser( baobab), dies zeigt jedoch keine Fragmentierung.
Die einzige Möglichkeit, Fragmentierung anzuzeigen, besteht darin, einen Befehlszeilenprozess Datei für Datei mit einem der in dieser Antwort beschriebenen Tools zu verwenden .
Zu diesem Zweck schrieb ich ein Skript mit hdparm --fibmap:
#!/bin/bash
#
# frags MountPoint SkipFrags Reports all files under MountPoint with more than SkipFrags fragments
# MountPoint defaults to / (root file system)
# SkipFrags defaults to 1 (report all files with more than one fragment)
# (setting to 0 will report all files, including unfragmanted)
#
# The report is sorted in fragment count order and must be run as root
#
[ "${1:0:1}" == "-" ] && \
echo 'frags MountPoint SkipFrags Reports all files under MountPoint with more than SkipFrags fragments' && \
echo ' MountPoint defaults to / (root file system)' && \
echo ' SkipFrags defaults to 1 (report all files with more than one fragment)' && \
echo ' (setting to 0 will report all files, including unfragmanted)' && \
echo 'The report is sorted in fragment count order and must be run as root' && \
{ return 1 2>/dev/null; exit 1; }
[ "$(whoami)" != "root" ] && { echo 'Must be run from "root"' >&2; return 13 2>/dev/null; exit 13; }
eof='***EOF***' ; # End-of-file marker
{ find "$1"/ -mount -type f; echo "$eof"; } | \
while read -r f; \
do [ "$f" == "$eof" ] && { echo -ne "\e[K" >&2; continue; }; \
r=$(hdparm --fibmap "$f" | grep -E "^[ 0-9]+$" | wc -l); \
[ $r -gt "${2:-1}" ] && { echo -ne "\e[K--- $r: ${f::$(($COLUMNS-${#r}-6))}\r" >&2; echo "$r: $f"; } \
done | \
sort -nt :
Beachten Sie, dass Sie, obwohl ich das Skript so dokumentiert habe, dass es eine ganze Disc von ihrem Einhängepunkt aus scannt, die sortierten Ergebnisse für ein bestimmtes Verzeichnis erhalten können. Ich empfehle, dies zunächst in einem kleinen Verzeichnis zu tun, um sicherzustellen, dass es sinnvolle Ergebnisse liefert.
Der Prozess ist ziemlich langsam und die Sortierung bedeutet, dass Sie keine Ergebnisse erhalten, bis jede Datei gescannt wurde. Ich habe daher eine Diagnose hinzugefügt, sobald jede zu meldende Datei stderrgefunden wurde. Die Escape-Sequenz ist für xtermund setzt voraus, $COLUMNSdass sie von shopt -s checkwinsize; export COLUMNSin ~/.bashrc(oder einer anderen Initialisierungsdatei) festgelegt wird. Durch das Vermeiden von Zeilenumbrüchen wird das Skript durch Scrollen verlangsamt.
Ich habe [ ... ] &&statt if [ ... ]; thenverwendet, um die Verschachtelung zu reduzieren und das Skript abzukürzen. Die return 1 2>/dev/null; exit 1;Sequenz ist ein Trick, mit dem ich einen Fehlercode zurückgegeben habe, unabhängig davon, ob das Skript normal oder von einem ./ source-Befehl aufgerufen wird .
Disk Usage Analyser(baobab). Dabei wird keine Fragmentierung angezeigt. Für einzelne Dateien (keine Verzeichnisse) können Sie jedoch die Sektoren anzeigen, die sie mit einem der in dieser Antwort beschriebenen Tools belegen . Ich kenne kein GUI-Tool.