0

7 つのパーティションを持つ 512 MB の NAND フラッシュがあります。UBIFS タイプの rootfs は、4 番目のパーティション (mtdblock03) にマウントされます。また、UBIFS タイプのアップグレード パーティションがあり、6 番目のパーティション (mtdblock06) にマウントされています。mountコマンドの後に表示される情報は次のとおりです。

root@freescale ~$ mount
rootfs on / type rootfs (rw)
ubi0:gpmi-nfc-general-use on / type ubifs (rw,relatime)
proc on /proc type proc (rw,relatime)
sys on /sys type sysfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
shm on /dev/shm type tmpfs (rw,relatime)
rwfs on /mnt/rwfs type tmpfs (rw,relatime,size=512k)
ubi1:upgrade on /mnt/upgrade type ubifs (rw,relatime)

私の質問は、アップグレードがオン/mnt/upgradeになっている場合、天候の一部ではないということです/。全体が/(mtdblock03) にあるので、/mnt/upgrade は (mtdblock06) ではなく (mtdblock03) の一部になりますか?

4

1 に答える 1

1

番号/mnt/upgradeはの一部ではありませんmtdblock03

/および/mnt/upgrade仮想ファイルシステム内のすべての仮想ポイントです。これは、基礎となる物理メディアへの仮想マップにすぎません(この場合はNANDフラッシュ)。

このように見てください:

1. システムの起動時

最初にカーネル bootargs を使用して、rootfs=ファイル
システム全体/がマウントされます。
この時点で、mtdblock03(の指すubi0) が にマウントされ/ます。

初期 rootfs マウント

  • 以下のどこかに書かれているものはすべて/になりmtdblock03ます。

2. その後

手動または init スクリプトを使用して mtdblock06( で示されるubi1) が にマウントさ
/mnt/upgradeます。

別のブロックを搭載

  • / EXCEPT/mnt/upgradeの下に書かれたものはすべてmtdblock03.
    そして、下に書かれたものはすべて/mnt/upgradeになりmtdblock06ます。

2 番目が (を使用して) mountアンマウントされていない限り、umount

へのすべての I/O/mnt/upgradeがリダイレクトされますmtdblock06

はない mtdblock03


1. 上記の図で、赤い点線は 1 つ目のマウント コマンド (rootfs) を表し、青い点線は 2 つ目のマウント コマンド (/mnt/update) を表します。どちらも、基盤となるデバイス、つまり NAND フラッシュとのファイルシステム マッピングを確立します。

2. このmountコマンドは基本的に、システム上に存在する物理デバイスのさまざまな部分を表すファイルシステムなどの仮想マップを確立します。

3. また、このコマンドは、ファイルシステム上の同じノードをマップするmount以前のコマンドをオーバーライドします。mountしたがって、ファイルシステム上の任意のノードはmount、ノードまたはその親を参照する最後に実行されたコマンドによって示される物理デバイスを表します。

4. 単純にするために、図は直接マッピングを示しています。実際には、複数のドライバーが関係しています。つまり、ファイルシステムと基礎となる物理メディアの間に あるvfsubifs、およびnandドライバーです。

于 2013-07-24T12:44:06.183 に答える