![根据根分区动态选择挂载哪个分区](https://linux22.com/image/217548/%E6%A0%B9%E6%8D%AE%E6%A0%B9%E5%88%86%E5%8C%BA%E5%8A%A8%E6%80%81%E9%80%89%E6%8B%A9%E6%8C%82%E8%BD%BD%E5%93%AA%E4%B8%AA%E5%88%86%E5%8C%BA.png)
我有两个安装了操作系统的只读根分区(例如 roota 和 rootb)。这是一个基本的 A/B 分区更新方案,更新我的系统后,这些分区将被选择以循环方式启动。
我还有另外两个分区(比如 data1 和 data2),我想根据我启动的分区挂载这些分区。
所以,场景是这样的:
我从roota启动,自动安装data1。我更新了系统,将更新的映像写入 rootb。我从 rootb 启动,data2 会自动挂载。我再次更新了系统,将更新的映像写入 roota,我从 roota 启动并安装了 data1...等等。
roota 和 rootb 分区是只读的 (squashfs)。 data1和data2是rw分区。对于 Debian 11 bullseye,我怎样才能以优雅的方式实现这种行为?
答案1
不知道你的配置是什么,但脚本基本上是这样的:
#! /bin/bash
default=/dev/partition1
root=`mount | grep -w / | awk '{print $1}'` # verify this works for you
test "$root" = "partitionB" && default=/dev/partition2
mount $default /mnt/somewhere