UBIFSデバイス/ dev/ubi0_1を持っています。デバイスはLinuxrootfsのルートであり、読み取り専用としてカーネルブートにマウントされます。
だから私は/ dev/ubi0_1をROとして/にマウントしています。
後で、コマンドによって/ dev/ubi0_1を/ mnt/rootfsにR/Wとしてマウントしたいと思います。
mount -t ubifs -o rw /dev/ubi0_1 /mnt/rootfs
しかし、EBUSYでは失敗します。
このコマンド:
mount -t ubifs -o ro /dev/ubi0_1 /mnt/rootfs
成功しています。
したがって、両方のマウントポイントに同じ権限が必要であるように見えます。
再マウントを試みましたが、常に権限(ROまたはRW)が別々のマウントポイント間で自動的に伝播されます。
私の質問は、/ as ROおよび/ mnt/rootfsをR/Wとしてマウントする可能性があるかどうかです。
再マウントを試みましたが、常に権限(ROまたはRW)が別々のマウントポイント間で自動的に伝播されます。
man mount
の非常に長いドキュメントを読んだ場合(または「読み取り専用」を検索し続ける場合)、バインドマウントを使用する場合はこれが当てはまらないことがわかります。
「元のファイルシステムスーパーブロック」ではなく、個々のマウントポイント「(VFSエントリ)」のステータスを変更するには、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
)を個別に表示します。
以下に示す形式で機能しました(起動後、/は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