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
各マウントポイントの全体的な有効状態が個別に表示されますro
。rw
答え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が読み取り専用ではないことを意味します。