温馨提示×

Ubuntu文件系统如何转换为XFS

小樊
36
2026-08-23 19:06:34
栏目: 智能运维

在 Ubuntu 上将文件系统转换为 XFS,需要明确一点:

不能直接把正在使用的文件系统原地转换为 XFS。
正确做法是:备份数据 → 重新格式化分区为 XFS → 恢复数据

下面按常见场景详细说明。


一、确认当前文件系统

先查看当前磁盘和文件系统类型:

lsblk -f

或:

df -Th

示例输出:

/dev/sda1 ext4   50G  20G  28G 42% /

说明当前是 ext4,不能直接转换。


二、转换思路(唯一可行方案)

标准流程:

  1. 备份数据
  2. 卸载目标分区(或进入 Live 环境)
  3. 重新格式化为 XFS
  4. 恢复数据

⚠️ 根分区(/)转换风险较高,建议使用 Live CD


三、使用 Live CD 转换(推荐方式)

1️⃣ 使用 Ubuntu Live USB 启动

  • 制作 Ubuntu Live USB
  • 从 USB 启动,选择 “Try Ubuntu”

2️⃣ 安装 XFS 工具

sudo apt update
sudo apt install xfsprogs

3️⃣ 查看磁盘分区

lsblk

假设要转换的是:

/dev/sda1

4️⃣ 备份数据(非常重要)

方式一:直接复制

mkdir /mnt/backup
mount /dev/sda1 /mnt/backup
cp -a /mnt/backup /media/ubuntu/external-disk/backup

方式二:使用 rsync

rsync -avx /mnt/backup/ /media/ubuntu/backup/

5️⃣ 卸载并格式化为 XFS

umount /dev/sda1
sudo mkfs.xfs -f /dev/sda1

-f 表示强制(会清空数据)


6️⃣ 恢复数据

mount /dev/sda1 /mnt/new
cp -a /media/ubuntu/backup/* /mnt/new/

四、如果是数据盘(非系统盘)

如果只是数据盘(如 /data):

sudo umount /data
sudo mkfs.xfs /dev/sdb1
sudo mount /dev/sdb1 /data

并更新 /etc/fstab

sudo blkid /dev/sdb1
UUID=xxxx  /data  xfs  defaults  0  2

五、根分区(/)转换注意事项(⚠️高风险)

如果你是想把 Ubuntu 根分区从 ext4 改为 XFS

✅ 推荐方式:

  • 重装 Ubuntu
  • 在安装时选择 XFS 作为根文件系统

原因:

  • initramfs、GRUB、systemd 对 XFS 支持良好
  • 但手动转换根分区极易导致系统无法启动

六、XFS 优缺点(是否值得转换)

✅ 优点

  • 高性能(大文件、并发)
  • 在线扩容(不能缩容)
  • 适合服务器、数据库

❌ 缺点

  • 不支持缩容
  • 修复工具较弱(xfs_repair)
  • 小文件性能不如 ext4

七、总结

场景 建议
数据盘 ✅ 备份 → 格式化 → 恢复
根分区 ✅ 重装系统
原地转换 ❌ 不支持

如果你愿意,可以告诉我:

  • 根分区还是数据盘
  • Ubuntu 版本
  • 是物理机还是虚拟机

我可以给你 更精确的操作步骤或脚本

0