A/B Partition

2019-09-19 19:09:35

       打5.3内核的猫猫出来挨打!(不是(为了早点吃上GNOME3.34,最近开了testing。然而一滚就炸…. NVIDIA的内核模块无法加载。(或许和我patch过的Xorg,奇妙的udev rule和模块参数有关(反正就是炸了….. 为了世界的和平(防止内核的爆炸),我决定尝试在Arch上使用A/B分区加以应对(btrfs用户表示A/B分区不是简简单单…..(

       一个新subvolume,改下fstab,再添个boot entry,Plan B启动!(又炸了….(草(忘了esp是共用的….(起先尝试了只在一个subvolume中的fstab里留esp的entry,然而底裤又自动帮我挂上去了…(不愧是您。虽说大概加个kernel cmdline就好了,但是这样会带来两个subvolume来回同步的麻烦。故而我转向了overlayfs,将一个subvolume作为另一个subvolume的upperdir,如果没有问题就可以commit到lowerdir了。

       但overlayfs也带来了新的问题:lowerdir无法跨mount point。比如将subvol0挂载于/mnt,subvol1挂载于/mnt/sub,整个/mnt作为lowerdir。在这样的配置下,在merged中只能看到subvol0中的文件,subvol1被忽略了。另外,为了能将/sys等特殊文件系统挂载于overlayfs之上,还需要hack一下initramfs中的hook(又是一个我不愿使用的脏操作…..

       TL;DR:我放弃了。A/B分区会是个有意思的想法,但要root on overlayfs会有不少阻碍,个人觉得相对比较合适的是只将pacman负责的目录置于overlayfs之下(也即/etc,/usr,/var/lib,/etc与/opt)(P.S. GNOME3.34真香….