毛毛虫
2024-06-21 16:17 deepin
qq4945286:
将原来的subvol=/ 改成 /@
这个没看懂,改成那里换成什么
这个地方我也没太明白,如果重启都可以进系统了,那么修改这个地方是什么意思呢?难道重启后挂载的还是原来的系统吗?如果是那么rootflags=subvol=@的配置意义又是什么呢?这个地方只看大家都说要改改改,就是没有一个说清楚的
Reply Like 0 View the author
将原来的subvol=/ 改成 /@
这个没看懂,改成那里换成什么
这个地方我也没太明白,如果重启都可以进系统了,那么修改这个地方是什么意思呢?难道重启后挂载的还是原来的系统吗?如果是那么rootflags=subvol=@的配置意义又是什么呢?这个地方只看大家都说要改改改,就是没有一个说清楚的
一、有不够优雅的情况—有原系统文件冗余:
1、这一步是在@子卷外层的原系统文件中修改的,所以启动时读的仍然是原系统文件中的grub.cfg
修改/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT这行追加rootflags=subvol=@参数
2、按照楼主的操作后,efi文件里面的grub.cfg,仍然使用的是原系统文件中的grub.cfg
3、home已经修改为子卷挂载,但原来的/@/home目录中仍有残留文件
二、我打下补丁:
针对问题1、2—
#修改efi配置
find /boot/efi/EFI -name grub.cfg | xargs sed -i 's|/boot|/@/boot|'
#修改@子卷中的grub.cfg
sed -ri 's|root=UUID.*$|\0 rootflags=subvol=@|' /@/boot/grub/grub.cfg
#重启系统进到@子卷为根的环境下
reboot
#重新生成grub.cfg
update-grub
#删除原系统文件
mount `df | grep -w / | awk '{print $1}'` /mnt
cd /mnt
shopt -s extglob
rm -r !(@|@home)
针对问题3—
首先进到livecd或者initramfs,然后手工把/@/home下面文件清空掉。
非常不错的教程,我这也有一个关于debian12使用timeshift回档的教程:https://www.ytca.top/guidance/linux/730/
Popular Events
More
先手动分区安装,分区结构如下:
安装完成后进行如下操作:
#创建/@子卷(必须,timeshift需要)
sudo btrfs subvolume snapshot / /@
#创建@home子卷(必须,timeshift需要)
sudo btrfs subvolume create /@home
#复制/home数据到@home
sudo cp -a /home/* /@home
修改/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT这行追加rootflags=subvol=@参数
如下:
执行
sudo update-grub
更新grub引导然后先重启1次会进入子卷的初始快照,重启后执行下面操作。
!!!以下操作重启后进行!!!
!!!以下操作重启后进行!!!
!!!以下操作重启后进行!!!
修改/etc/fstab文件(此时处于@子卷)
直接原有的 / 上修改,删除subvolid=x字段,将原来的subvol=/改成/@
UUID=xxxx-xxxx-xxxx-xxxx / btrfs rw,relatime,ssd,space_cache,subvol=/@ 0 0
复制上一条进行修改,将/改成/home ,subvol=/@改成/@home(注意不能有subvolid=x字段)
UUID=xxxx-xxxx-xxxx-xxxx /home btrfs rw,relatime,ssd,space_cache,subvol=/@home 0 0
再把/boot挂载注释掉(隔离初始的boot分区,如果要升级内核就到
grub
菜单按e
删除rootflags=subvol=@
进入原始环境安装新内核后执行
cp -av /lib/modules/* /@/lib/modules
,主要是为了防止不同快照之间安装和卸载内核操作导致找不到内核模块无法进入系统,如果出现这种情况需要复制当前原始环境/lib/modules里面的文件到/@/lib/modules即可)如图:
最后再重启,安装timeshift就可以正常开启快照功能了
timeshift下载地址:https://github.com/teejee2008/timeshift/releases/download/v22.06.1/timeshift_22.06.1_amd64.deb
timeshift_24.01.1_amd64.zip