原文链接:https://ovea-y.cn/switch_the_disk_to_f2fs_file_system_and_encrypt_it/

背景

对于SSD和SMR技术的机械硬盘,使用F2FS可以更好的利用它们的性能。

💡 下图可以看到采用SMR技术的机械硬盘也支持Trim(/dev/sda) ![fewf3r3t1tg1t1g](https://s2.loli.net/2024/01/20/Hn6wxC5AU1TFpl4.png)

步骤

0. *如果有使用的swap,先停止swap使用,并且取消默认挂载

ewqe2r3t2esfewg
grwef32rfr23wer32g

1. 安装F2FS Tools

sudo apt install f2fs-tools

2. 先将要格式化的磁盘取消挂载

bgwg2tsf

3. 然后上锁

hreg4t2f

4. 使用F2FS格式化磁盘

gr3rfd283
gt32r43tg
herg4t2tef
hg4t3f3r
grwet23rgy34

5. 配置加密磁盘的label,并让其自动挂载和设置挂载点

u65ut3tg
gg2t23rrg3y

F2FS就不用添加luks,discard了,因为F2FS自带trim功能。

目前这块SMR技术的HDD也支持trim,只有Ext4系统添加discard参数后才会被fstrim.service服务自动执行trim

注:下图修改为luks,discard是不必要的行为
j6u6y32tg

修改完名字之后需要将磁盘锁定再解锁重启一次!(当然,也可以重启一次)

jk76i43tg34t
io67h45y4y
gh5yt42rt
vgret3gh2h

6. 执行sudo mount -a或直接重启完成挂载

挂载前
n4tf23r3t

挂载后
gh4t3r23f

分区表的样子
gh3y34tfr3

7. *重新创建交换分区

gi76it3grt

最后别忘了设置自动挂载
tg2r23tgwf

重启后,我的系统挂掉了,以下是修复方法

1.1 点击Enter键进入维护模式

tgy2r23t23

1.2 怀疑是fstab写错了,因此直接重新挂载根目录,并且修改fstab

mount -o remount,rw /

rg32rgds23t

1.3 发现swap分区在挂载它对应的设备根节点时就试图挂载,修改挂载顺序

gr32t2ed21esfq

修改后
xasdr132tg

退出
xde2r32tgg

1.4 退出维护模式,并按Ctrl+ALT+DEL重启

za32rgtwer23

2.1 结果又启动出错,通过journalctl -xb查看log,发现有个磁盘节点等待超时

2.2 检查所有磁盘的UUID,没有发现有超时的那个磁盘

ar2rg4tgs

2.3 检查自动解锁磁盘的配置文件(/etc/crypttab)

qr23rg34t
f2t31dsfew123r

发现是切换到F2FS前旧的配置没有被删除!并且8d583745开头的这个UUID刚好是日志中记录等待失败的ID!

2.4 删除旧的自动解锁配置

修改成下面这样子
t32tqwe21tg

2.5 退出维护模式并重启系统,此时电脑可以启动成功了!

oewr2t32rfw

附录

sudo systemctl start fstrim.service 可以执行trim

sudo systemctl status fstrim.service 可以看到执行的log

kjt32r5tf2

参考资料

Solid state drive - ArchWiki

原文链接:https://ovea-y.cn/switch_the_disk_to_f2fs_file_system_and_encrypt_it/