23.3 UFS 文件系统

关于 UFS

UFS 全称是 Unix File System,即 UNIX 文件系统,基于 UNIX v7。过去,macOS 也使用该文件系统作为 root 文件系统。目前 FreeBSD 在使用的是 UFS2。Linux 对 UFS 的读写支持也不完整。这个文件系统只能扩大不能被缩小。

注意

UFS 文件系统和手机等设备中使用的 UFS 存储完全不是一回事,那个 UFS 是 Universal Flash Storage(通用闪存存储)的缩写,已经出到 4.0 了(FreeBSD 于 10.4 支持 eMMC;而 UFS 出现在 FreeBSD 15.0 的开发计划中,尚不支持)。而作为文件系统的 UFS 版本号才是 2。而且手机内部的系统也不可能是 UFS 文件系统,因为基于 Linux 的安卓根本不支持 UFS 这个文件系统,这些设备一般的根文件系统是 ext4(一些新设备是 F2FS)。

警告

UFS 只能扩大不能缩小!

磁盘扩容

注意

此方案仅适用于向后扩展,如果 freebsd-ufs 分区前面有空余空间则无法使用此方法扩展。

  • gpart show 查看磁盘分区

root@freebsd:~ # gpart show
=>       3  41943035  da0  GPT  (20G)
         3       122    1  freebsd-boot  (61K)
       125     66584    2  efi  (33M)
     66709   2097152    3  freebsd-swap  (1.0G)
   2163861  10486633    4  freebsd-ufs  (5.0G)
  12650494  29292544       - free -  (14G)

查看系统盘大小只有 5G,显示 da0 只有这一个盘。

  • 执行扩容命令

警告

如果你使用的是 GPT 分区表,上边的扩容操作(在虚拟机或云服务器上的)会破坏 GPT 分区表,所以需要先恢复之:

# gpart recover da0

执行后下面步骤相同。

i 为要扩容的分区,这里扩容 / 分区 freebsd-ufs

root@freebsd:~ #  gpart resize -i 4 da0
da0p4 resized
  • 启动 growfs 服务,自动完成扩展

root@freebsd:~ # service growfs onestart
Growing root partition to fill device
da0 recovering is not needed
da0p4 resized
growfs: no room to allocate last cylinder group; leaving 7.7MB unused
super-block backups (for fsck_ffs -b #) at:
 11544384, 12827072, 14109760, 15392448, 16675136, 17957824, 19240512, 20523200, 21805888, 23088576, 24371264,
 25653952, 26936640, 28219328, 29502016, 30784704, 32067392, 33350080, 34632768, 35915456, 37198144, 38480832
  • df -h 命令查看结果。

root@freebsd:~ # df -hl
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/gpt/rootfs     18G    4.8G     12G    29%    /
devfs              1.0K      0B    1.0K     0%    /dev
/dev/gpt/efiesp     32M    651K     31M     2%    /boot/efi
tmpfs               20M    4.0K     20M     0%    /tmp
tmpfs               32M    156K     32M     0%    /var

分区扩展完成。

最后更新于

这有帮助吗?