根据根分区动态选择挂载哪个分区

根据根分区动态选择挂载哪个分区

我有两个安装了操作系统的只读根分区(例如 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

相关内容