同じデバイスを読み取り専用として/サブディレクトリ(/mnt/rootfs)にR / Wとしてマウントします。

同じデバイスを読み取り専用として/サブディレクトリ(/mnt/rootfs)にR / Wとしてマウントします。

UBIFSデバイス/dev/ubi0_1があります。このデバイスはLinux rootfsのルートであり、カーネルの起動時に読み取り専用としてマウントされます。

だから/dev/ubi0_1を/にROとしてマウントしました。

後で、次のコマンドでR / Wモードで/mnt/rootfsに/dev/ubi0_1をマウントしたいと思います。

mount -t ubifs -o rw /dev/ubi0_1 /mnt/rootfs

しかし、EBUSYは失敗しました。

このコマンドは次のとおりです。

mount -t ubifs -o ro /dev/ubi0_1 /mnt/rootfs

成功しました。

したがって、両方のマウントポイントに同じ権限が必要なようです。

再インストールしようとしましたが、常に権限(ROまたはRW)が異なるマウントポイント間で自動的に伝播されます。

私の質問は/をROに、/mnt/rootfsをR/Wにマウントできるかどうかです。

答え1

再インストールしようとしましたが、常に権限(ROまたはRW)が異なるマウントポイント間で自動的に伝播されます。

長い文書を読むか、man mount「読み取り専用」を検索し続けると、バインドマウントを使用するときはそうでないことがわかります。

単一のマウントポイント「(VFSエントリ)」(「rawファイルシステムスーパーブロック」を除く)の状態を変更するには、含まれているbindオプションを使用して再マウントする必要があります。

これが私に効果があったと報告することができて嬉しいです。元のマウントポイントが次のように作成されたかどうかに関係なくbind

次の順序に従うことをお勧めします。

mount -oremount,bind,ro /
mount -oremount,rw /

mount -o bind,rw / /mnt/rootfs

# OR - this should have the same effect as the last command
mount -t ubifs -o rw /dev/ubi0_1 /mnt/rootfs

findmnt各マウントポイントの全体的な有効状態が個別に表示されますrorw

答え2

以下の形式で私に効果的でした(起動後に/はrwで、私がマウントした2番目のマウントポイントのディレクトリは/ layers / rootfsです)。

mount -o remount,ro /
mount --bind / /layers/rootfs
mount -o remount,rw /layers/rootfs

人の引用:

      Note that the filesystem mount options will remain the same as those  on  the  original
      mount  point, and cannot be changed by passing the -o option along with --bind/--rbind.
      The mount options can be changed by a separate remount command, for example:

             mount --bind olddir newdir
             mount -o remount,ro newdir

答え3

もう一つの答えはここにあります(https://unix.stackexchange.com/a/371923/20104)私には効果がありませんでした†しかし、次のアイデアを得ました。

mount -o remount,bind,ro /
mount -t ubifs -o ro /dev/ubi0_1 /mnt/rootfs
mount -o remount,rw /mnt/rootfs

† 動作しません。 「実際の」rootfsが読み取り専用ではないことを意味します。

関連情報