なぜ次のような状況が可能ですか?
root@pkara-pc01:~# mkdir -p /tmp/shared
root@pkara-pc01:~# mount -t tmpfs -o size=1G mymount /tmp/shared/
root@pkara-pc01:~# mount -t tmpfs -o size=1G mymount /tmp/shared/
root@pkara-pc01:~# mount | grep -i shared
mymount on /tmp/shared type tmpfs (rw,relatime,size=1048576k)
mymount on /tmp/shared type tmpfs (rw,relatime,size=1048576k)
編集する: 通常、既にマウントされているファイルシステムをマウントしようとすると失敗(?)するので、この質問をします。
$ mkdir -p mydir
/tmp
$ dd if=/dev/zero of=myfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.563994 s, 1.9 GB/s
/tmp
$ mkfs.ext4 myfile
mke2fs 1.44.1 (24-Mar-2018)
Discarding device blocks: done
Creating filesystem with 256000 4k blocks and 64000 inodes
Filesystem UUID: 95fe153e-a575-4c9a-beef-b7a20a6ae342
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
/tmp
$ sudo mount -o loop myfile /tmp/mydir/
/tmp
$ sudo mount -o loop myfile /tmp/mydir/
mount: /tmp/mydir/: /tmp/myfile is already mounted.
答え1
これはtmpfs
、メタデータを書き込むバックアップストアがなく、不要なため、仮想ファイルシステムです。
代わりに、ext4fs
メタデータを書き込むためにバックアップリポジトリ(画像ファイルでも物理デバイスでも)が必要な永続ファイルシステムです。
したがって、mount
この状況に対するコマンドはtmpfs
次のようになります。再利用同じディレクトリをマウントします。その他(まだtmpfsですが)完全に生のファイルシステムです。これは、ディレクトリがすでに永続ファイルシステムのマウントポイントとして使用されている場合でも許可されますext4
。たとえば、2番目のファイルシステムはmount
単純に古いファイルシステムを上書きするため、2番目のファイルシステムがアンマウントされたシステムのようにファイルが再表示されます。
代わりに、mount
ケースのコマンドはext4
インストールを試みることです。同じバックアップストレージ(myfile
ファイル)を複数回実行し、同じマウントポイントに接続するとエラーメッセージが表示されます.仮想ファイルシステムにはtmpfs
(外部)バックアップストアがまったくないため、これは決して発生しません。実際には、mymount
コマンドのフラグメントはtmpfs
make 構文の内容のプレースホルダーだけです。代わりに任意の文字列をmount
使用できますtmpfs
。myfile
ext4
〜しなければならないシステムにすでに存在し、利用可能なもの。永続ファイルシステムのバックアップストアとして使用されます(対応するバックアップストアを実際の揮発性ファイルシステムに配置しても、コマンドとドライバはそうではありません)tmpfs
。それについて知って/興味を持ってください)。mkfs.ext4
ext4fs
ただし、古代v2.4 Linuxカーネルのおかげで、ファイルシステムを複数回安全にマウントすることも可能ですext4
。をするこれらは別のマウントポイントにインストールされます(例と同じディレクトリではありません)。基本的に、このようないくつかのインストールは1つmount --bind
。前に。 v2.29以降、同じサポートファイルを再利用するかどうかを検出し、それを同等のファイルに自動的に変換します。loop
/dev/loopX
mount -o loop
mount --bind
安全のために、同じバックアップファイルに2.28.x以前のバージョンを複数回使用しないでくださいmount
(-o loop
途中で削除しない限り)。考えられる結果には、ランダムなデータ損失によるカーネル衝突が含まれる。