これはどのように可能ですか?同じパーティションが2回マウントされ、各マウントが異なるコンテンツを表示しますか?

これはどのように可能ですか?同じパーティションが2回マウントされ、各マウントが異なるコンテンツを表示しますか?

同じパーティションが 2 回マウントされ、各マウントポイントに異なるコンテンツが表示されます。どうやってこれができますか?

# mkdir /mnt/tmp
# mount -t ext4 -o noatime /dev/block/sda1 /mnt/tmp/

# mount | grep sda1
/dev/block/sda1 on /data type ext4 (rw,seclabel,noatime)
/dev/block/sda1 on /mnt/tmp type ext4 (rw,seclabel,noatime)

# ll /data
drwx------  2 root     root       4096 2021-08-19 18:34 adb
drwxrwxr-x  2 system   system     4096 2021-08-19 18:34 anr
drwxrwx--x  8 system   system     4096 2021-08-21 22:42 app
(...)
drwx--x--x  2 system   system     4096 2021-08-19 18:34 user
drwx--x--x  3 system   system     4096 2021-08-19 18:34 user_de
drwxrwx--x  3 root     root       4096 2021-08-19 18:34 vendor

# ll /mnt/tmp/                                                    
drwxr-xr-x 3 root root 4096 2021-08-19 18:33 android-8.1-r6
drwxr-xr-x 2 root root 4096 2021-08-19 18:33 grub
drwx------ 2 root root 4096 1970-01-01 01:00 lost+found

同じパーティションが/dev/block/sda12回マウントされ、各マウントポイント(/dataおよび/mnt/tmp)に異なる内容が表示されます。

menu.lst背景:android-x86では、GRUBのデバッグモードでのみ使用できるか、またはmountを介してandroid自体で使用できるGRUBファイルを変更したいと思います/dev/block/sda1。これで実際にmenu.lst/mnt/tmp/grub/menu.lst)にアクセスできますが、その仕組みや/dev/block/sda1マウントポイントによって異なるコンテンツを表示する理由は私の能力ではありません。

[編集する:以下のユーザー488112の回答]

/data実際には、「ルート」ではなく/android-8.1-r6/dataサブディレクトリにインストールされているようです。不完全(マウントされた「ルート」ではなくデバイスブロックのみを表示します):/dev/block/sda1dev/block/sda1# mount

# egrep '/data|/mnt/tmp' /proc/self/mountinfo                         
18 15 8:1 /android-8.1-r6/data /data rw,noatime shared:3 - ext4 /dev/block/sda1 rw,seclabel
237 28 8:1 / /mnt/tmp rw,noatime shared:23 - ext4 /dev/block/sda1 rw,seclabel

ベストアンサー1

それだけです:

# cd /tmp
# mkdir foo bar
# mount -B /usr/bin foo
# mount -B /var/log bar
# mount | egrep 'foo|bar'
/dev/sda1 on /tmp/foo type ext4 (rw,relatime,errors=remount-ro)
/dev/sda1 on /tmp/bar type ext4 (rw,relatime,errors=remount-ro)

長すぎます; dr; このコマンドの出力は、mount最新のLinuxバージョンでは信頼できません。代わりにこれを使用してくださいcat /proc/self/mountinfo(フォーマットはリソースに文書化されていますman 5 mountinfo)。これは「デバイス」だけでなく、マウントの「ルート」も表示します。

# egrep 'foo|bar' /proc/self/mountinfo 
380 26 8:1 /usr/bin /tmp/foo rw,relatime shared:1 - ext4 /dev/sda1 rw,errors=remount-ro
457 26 8:1 /var/log /tmp/bar rw,relatime shared:1 - ext4 /dev/sda1 rw,errors=remount-ro

おすすめ記事