原文:https://www.cyberciti.biz/faq/how-to-install-xfs-and-create-xfs-file-system-on-debianubuntu-linux/
recently switched to a Ubuntu/Debian Linux server from a CentOS/RHEL 7.x.
| Tutorial requirements |
| Operating system |
Debian/Ubuntu Linux |
| Root privileges required |
Yes |
| Difficulty |
Easy (rss) |
| Estimated completion time |
10m |
Contents
- » Installation
- » Load Linux kernel module
- » Create xfs filesystem
- » Update /etc/fstab
- » Check/repair an XFS filesystem
|
Install xfs on Debian Linux
Open the terminal app to update system and then install xfs packages:
$ sudo apt-get update
$ sudo apt-get upgrade
Use the apt command/apt-get command to install xfs:
$ sudo apt-get install xfsprogs
Sample outputs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libreadline5
Suggested packages:
xfsdump acl attr quota
The following NEW packages will be installed:
libreadline5 xfsprogs
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,029 kB of archives.
After this operation, 3,781 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://cdn-aws.deb.debian.org/debian buster/main amd64 libreadline5 amd64 5.2+dfsg-3+b13 [120 kB]
Get:2 http://cdn-aws.deb.debian.org/debian buster/main amd64 xfsprogs amd64 4.20.0-1 [909 kB]
Fetched 1,029 kB in 0s (5,183 kB/s)
Selecting previously unselected package libreadline5:amd64.
(Reading database ... 42720 files and directories currently installed.)
Preparing to unpack .../libreadline5_5.2+dfsg-3+b13_amd64.deb ...
Unpacking libreadline5:amd64 (5.2+dfsg-3+b13) ...
Selecting previously unselected package xfsprogs.
Preparing to unpack .../xfsprogs_4.20.0-1_amd64.deb ...
Unpacking xfsprogs (4.20.0-1) ...
Setting up libreadline5:amd64 (5.2+dfsg-3+b13) ...
Setting up xfsprogs (4.20.0-1) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10) ...
Processing triggers for initramfs-tools (0.133+deb10u1) ...
update-initramfs: Generating /boot/initrd.img-4.19.0-9-amd64
|
Load xfs kernel module/driver
Now xfs related utilities are installed. However, it would be best if you loaded xfs Linux kernel driver/module too. In other words, type the following one time command:
$ sudo modprobe -v xfs
Sample outputs:
insmod /lib/modules/4.19.0-9-amd64/kernel/lib/libcrc32c.ko
insmod /lib/modules/4.19.0-9-amd64/kernel/fs/xfs/xfs.ko
Verify that xfs loaded either using the grep command or lsmod command:
$ grep xfs /proc/filesystems
$ lsmod | grep xfs
$ modinfo xfs
See Linux Add or Remove a Linux Kernel Modules / Drivers for more info.
How to list available disks on a Debian or Ubuntu Linux
You need to use the fdisk command and then press [enter] key:
sudo fdisk -l
My disks:
Disk /dev/xvda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x15e5590c
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 2048 83886046 83883999 40G 83 Linux
Disk /dev/xvdf: 400 GiB, 429496729600 bytes, 838860800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
WARNING: Be careful with disks names. Verify twice before formatting or creating new partitions. A wrong SSD/HDD name would result in data loss, and your /dev/DISK names might be different.
How to create an xfs file system
The syntax is:
mkfs.xfs /dev/device
mkfs.xfs [options] /dev/device
This is optional but we can create partition using the fdisk command/cfdisk command/partx command/sfdisk command:
# fdisk /dev/sdb
OR
# cfdisk /dev/sdb
I created a partition named /dev/sdb1. To create an XFS file system, use the mkfs.xfs /dev/sdb1 command:
# mkfs.xfs /dev/sdb1
Sample outputs:
Fig.01: mkfs.xfs in action
In this example, I am going to format the whole /dev/xvdf device:
$ sudo mkfs.xfs /dev/xvdfOutputs:
meta-data=/dev/xvdf isize=512 agcount=4, agsize=26214400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=0
data = bsize=4096 blocks=104857600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=51200, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
|
How to mount an xfs file system on Debian / Ubuntu
Type the following mount command:
# mkdir /data
# mount /dev/sdb1 /data/
# df -T
Sample outputs:
Filesystem Type 1K-blocks Used Available Use% Mounted on
udev devtmpfs 1885404 0 1885404 0% /dev
tmpfs tmpfs 379308 6728 372580 2% /run
/dev/sda1 ext4 10188088 1086400 8561120 12% /
tmpfs tmpfs 1896536 0 1896536 0% /dev/shm
tmpfs tmpfs 5120 0 5120 0% /run/lock
tmpfs tmpfs 1896536 0 1896536 0% /sys/fs/cgroup
/dev/sdb1 xfs 209611760 241952 209369808 1% /data
Update /etc/fstab file to automount newly created filesystem across the system reboots
To see /dev/sdb1 block device’s UUID (Universally Unique Identifier) run:
# blkid /dev/device
# blkid /dev/sdb1
Sample outputs:
/dev/sdb1: UUID="ea8b08a4-3e9f-4482-83e9-c5f03b9f05d6" TYPE="xfs" PARTUUID="43eccd3d-9d50-4c29-a815-9fcf2986b235"
Edit/updated /etc/fstab file using the following synta:
UUID={YOUR-UID} /data xfs defaults,errors=remount-ro 0 1
For example, the following will update /etc/fstab so that /dev/sda1 get mounted at boot time:
## type the following command as
## root user
echo 'UUID=ea8b08a4-3e9f-4482-83e9-c5f03b9f05d6 /data xfs defaults 1 1' >> /etc/fstab
|
We can append text to a file named /etc/fstab when using sudo command as follows:
$ echo 'UUID=d90e3189-12cd-4d16-8fe9-cf362b5f267d /backup xfs defaults 1 1' \
| sudo tee -a /etc/fstab
Mount new XFS filesystem and test it with the help of mount command and df command:
$ sudo mount -a
$ sudo df -T
How to check and repair an XFS file system
To repair an XFS file system, use xfs_repair command and the syntax is (do not run xfs_repair on a mounted filesystem):
# xfs_repair /dev/device
# umount /dev/sdb1
# xfs_repair /dev/sdb1
Sample outputs:
Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done
|
Conclusion
In this guide, we explained how to install xfs and create/format second hard disk with XFS on a Debian or Ubuntu Linux based servers or desktop system. For more info about above commands, read their respective man pages and see XFS wiki pages here:
$ man mkfs.xfs
$ man apt-get
$ man xfs_repair
$ man blkid
$ man fdisk