[deepin exploration] 最简单的移除ostree方案,实体机操作成功
Tofloor
poster avatar
文盲振伟🍀
deepin
2026-01-30 00:29
Author

上次发的方案需要2倍磁盘空间折腾,但是我的系统分区只有50G。于是再进一步,在实体机上操作,更简单的实现方案

1,安装v25,注意,磁盘根分区直接选择Btrfs分区

2,安装完成后在/下创建@子卷和@home子卷。然后用rsync命令把数据复制到子卷中

sudo rsync -aAXv --exclude={"/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/*","/lost+found","/ostree","/persistent","/sysroot","/home","/@","/@home

"} / /@

sudo rsync -aAXv /home/ /@home

3修改一级引导,使其指向@子卷

/boot/efi/EFI/deepin/grub.cfg

里面/boot改为/@/boot

4修改2级引导,使其指向@里面的内核

/@/boot/grub/grub.cfg

找到引导项,添加启动参数rootflags=subvol=@

然后/boot改为/@/boot

5.修改fstab以便于加载home

/@/etc/fstab

里面/的行subvol=/改成=/@,去掉subvolid=5

复制一下,新行/改为/home,/@改为/@home

文本都需要仔细检查,如果挂了记得用live捞回来。如果看不到操作系统选择页面,是一级引导不对。如果选择系统之后异常,是二级引导不对,如果输入登录密码后又返回登录界面,是fstab指定home错误

6重启登进去,cd /确认下面没有@和@home,说明/已经在@子卷了。此时可以mount Btrfs分区的根目录到mnt,例如

sudo mount /dev/nvme0n1p6 /mnt

进到/mnt删除除了@和@home以外的所有。有个signture什么的文件删不掉,错误信息贴给豆包,它知道怎么删,大致是要取消一个什么i属性,然后就可以sudo rm了。

7后续优化

可以手动压缩一下磁盘,17g变成11g,据说压缩以后因为io变少了,反而对整体性能有提升 把compress=zstd:3写到fstab里面以后的文件自动压缩

Btrfs balance一下,把不再使用的空间释放一下

再fstrim一下,把未使用空间标记为0

live盘dd | gzip备份一下,用过fstrim命令可以减少镜像体积

现在可以愉快的玩timeshift了,万一折腾挂了用你的磁盘镜像恢复

也可以直接进live系统 用snaper命令把timeshift保存的快照恢复到@子卷

最后提醒一下,看我上个帖子有word文档和压缩包,还是最好替换一下update-grub相关文件,免得升级内核,系统自动重建引导把二级引导弄坏了

Reply Favorite View the author
All Replies

No replies yet