XFS
Das XFS-Dateisystem ist ein leistungsstarkes Journaling-Dateisystem. Es ist ACL (POSIX)-konform für die Verwendung mit Linux.
XFS has a particularly strong reputation for reliability and led to the creation of the venerable xfstests Linux kernel test suite which now tests regressions in various filesystems.
Installation
Kernel
File systems --->
<*> XFS filesystem support
Optional:
File systems --->
[*] XFS Quota support
[*] XFS POSIX ACL support
[*] XFS Realtime subvolume support
[ ] XFS Verbose Warnings
[ ] XFS Debugging support
Emerge
Das Paket sys-fs/xfsprogs wird für die XFS-Userspace-Dienstprogramme benötigt:
root #
emerge --ask sys-fs/xfsprogs
Bedienung
Mount
Hängen Sie XFS-Dateisysteme mit dem Befehl mount ein.
XFS unterstützt SSD-Discards in der fstab.
Creation
Erstellen Sie ein XFS-Dateisystem mit mkfs.xfs aus xfsprogs:
root #
mkfs.xfs -L 'label'
Das Label ist optional. Weitere Anpassungen bei der Erstellung könnten für die Verwendung als RAID, Multi-Terabyte-Laufwerke und das Journaling für eine HDD auf einer separaten SSD interessant sein.
Filesystem information
xfs_spaceman can be used to display information about the space available and to run a report on the health of a filesystem.
root #
xfs_spaceman -c info /path/to/mountpoint
Changing parameters
It is not possible to change the parameters of a mounted filesystem
The parameters of an XFS filesystem can be changed using xfs_admin. For the full list of options, view the manpage: xfs_admin(8)
root #
xfs_admin -L 'label' /dev/sda1
Expanding a filesystem
The filesystem must be mounted to be grown
To grow an XFS filesystem to N amount, use xfs_growfs.
root #
xfs_growfs -D N /path/to/mountpoint
Using the
-d
argument results in it being expanded to the max sizeFreezing
To suspend access to a filesystem, use the xfs_freeze command.
root #
xfs_freeze -f /path/to/mountpoint
Utilities
Utility | Description[1] | Man page |
---|---|---|
fsck.xfs | Checks a filesystem for corruption | fsck.xfs(8) |
mkfs.xfs | Creates a new filesystem | mkfs.xfs(8) |
xfs_admin | Changes the parameters of a filesystem | xfs_admin(8) |
xfs_bmap | Prints block mapping for an XFS file | xfs_bmap(8) |
xfs_copy | Copies contents of a filesystem to one or more targets in parallel | xfs_copy(8) |
xfs_estimate | Estimate the amount of space a directory would consume if it were copied to an XFS filesystem | xfs_estimate(8) |
xfs_db | Used to debug an XFS filesystem | xfs_db(8) |
xfs_freeze | Suspends access to a filesystem | xfs_freeze(8) |
xfs_fsr | Improves organization of mounted filesystems, compacting or improving the layout of extents | xfs_fsr(8) |
xfs_growfs | Increases a filesystem's size | xfs_growfs(8) |
xfs_info | Equivalent to invoking xfs_growfs but does not change any aspects about the filesystem | xfs_info(8) |
xfs_io | Used for debugging, like xfs_db but for regular file paths than raw volumes | xfs_io(8) |
xfs_logprint | Prints the log of an XFS filesystem | xfs_logprint(8) |
xfs_mdrestore | Restores an XFS metadump image to a filesystem image | xfs_mdrestore(8) |
xfs_metadump | Copies filesystem metadata to a file | xfs_metadump(8) |
xfs_mkfile | Creates an XFS file (padded by zeroes by default) | xfs_mkfile(8) |
xfs_ncheck | Generates pathnames from inode numbers | xfs_ncheck(8) |
xfs_quota | Used for reporting and editing different aspects of filesystem quotas | xfs_quota(8) |
xfs_repair | Repairs corrupted or damaged XFS filesystems | xfs_repair(8) |
xfs_rtcp | Copies a file to a real-time partition | xfs_rtcp(8) |
xfs_scrub | Checks and repairs contents of a mounted filesystem | xfs_scrub(8) |
xfs_scrub_all | Scrubs all mounted XFS filesystems | xfs_scrub_all(8) |
xfs_spaceman | Reports and controls free space usage | xfs_spaceman(8) |
Maintenance
Unterstützung für Zeitstempel des Jahres 2038 (bigtime)
Older partitions (created with <xfsprogs-5.15) will not have bigtime enabled by default. Mounting such partitions results in a warning like:
root #
dmesg
... [ 4.036258] xfs filesystem being mounted at /home supports timestamps until 2038 (0x7fffffff) ...
To check the current version of xfsprogs, run mkfs.xfs -V. There's no need for this on up-to-date Gentoo systems, but it might be necessary if using install media from another distribution with older userland.
Die Unterstützung von Bigtime-Code wurde in xfsprogs 5.15 standardmäßig aktiviert, so dass eine manuelle Einstellung in neueren Versionen nicht erforderlich ist.
Mit Kernel 5.10 erhielt XFS bigtime
-Unterstützung um die maximal aufgezeichneten Datumsstempel von 2038 auf 2486 für das V5-Plattenformat zu erweitern.[2]
Um auf bigtime
zu aktualisieren, müssen Sie zuerst das Dateisystem sauber aushängen. Das Upgrade wird sich weigern, zu laufen, wenn das Aushängen nicht vollständig sauber war.
Dann führen Sie aus:
root #
xfs_admin -O bigtime=1 /dev/sda1
Ersetzen von /dev/sda1 durch den Gerätepfad.
XFS auf dem Root-Mount erfordert ein initramfs oder eine andere Live-Umgebung mit den notwendigen Tools, um ein Upgrade der Metadaten durchzuführen.
Verwendung von Dracut initramfs zur Durchführung des Upgrades
Zunächst benötigt, Dracut zusätzliche Dateien im initramfs, um das Upgrade durchführen zu können. Dies kann entweder mit der Option --install
oder innerhalb einer Konfigurationsdatei mit der Option install_items
erreicht werden.
root #
dracut --install "/usr/sbin/xfs_admin /usr/bin/expr" ...
Dann kann die Kernel-Befehlszeilenoption so geändert werden, dass sie rd.break=pre-mount
enthält, um das initramfs zu stoppen, kurz bevor es das Root-Dateisystem einhängen würde. Stellen Sie sicher, dass dies vorübergehend geschieht und bei späteren Neustarts nach dem Upgrade wieder entfernt wird.
Entfernung
Um die Entfernung beim nächsten Lauf zu planen:
root #
emerge --ask --depclean --verbose sys-fs/xfsprogs
Siehe auch
- FAT — filesystem originally created for use with MS-DOS (and later pre-NT Microsoft Windows).
- Ext4 — ein quelloffenes Dateisystem und die neueste Version der Extended-Reihe von Dateisystemen
- Btrfs — ein copy-on-write (CoW) Dateisystem für Linux, welches die Implementierung erweiterter Funktionen anstrebt und einen Fokus auf Fehlertoleranz, Selbsheilung und einfache Administration legt.