一部のファイルを含む/homeという既存のディレクトリがあります。 /etc/fstabを使用してこのディレクトリにパーティションをマウントしました。
UUID=10CD7304CE71E381 /home ntfs defaults 0 2
これまでは問題ありません。
何も削除せずに/homeの元のコンテンツにアクセスする方法。明らかに/homeパーティションをアンマウントできません。
答え1
Linuxでは、そのディレクトリを別のディレクトリにアンマウントすることでこれを行うことができます。マウントネームスペースインストール伝播フラグは次のように設定されます。プライベート:
# truncate -s 3G blob
# mkfs.ext4 blob
...
# mkdir dir
# echo below > dir/file
# mount blob dir
# echo above > dir/file
# cat dir/file
above
# unshare --mount --fork --propagation private sh -c 'umount dir; cat dir/file'
below
# cat dir/file
above
# unshare --mount --fork --propagation private sh -c '
umount dir
for f in dir/file /dev/fd/7; do
realpath --relative-to=. "$f"; cat "$f"
done
' 7<dir/file
dir/file
below
dir/file
above
注:この--propagation private
フラグは少なくとも最新バージョンのデフォルト値ですunshare(1)
。強調するために追加しました。
答え2
バンドルでインストールする方が簡単です。unshare
ソリューションが機能しません。忙しいファイルシステムをアンマウントしたくありません。
mkdir /mnt/tmproot
mount --bind / /mnt/tmproot
ls /home # Still shows contents of mounted /home partition
ls /mnt/tmproot/home # pre-mount contents of mountpoint /home dir
元の答えに対するクレジット:https://superuser.com/a/977082/111432
答え3
簡単な答えは、リアルタイムシステムを使用することです。
ルートパーティションに別のパーティションがマウントされている場合、/home
実際にはマウントを解除したりマウントを再バインドしたりすることはできません。ただし、ライブシステムには独自の/home/があり、通常はルートファイルシステムを提供するパーティションを使用しません。したがって、ライブシステムでは、ルートファイルシステムをマウントするだけで、そこから元の/homeディレクトリにアクセスできます。
ライブシステムを見つけることは難しくありません。これは、かなりの数のディストリビューションがCDに書き込んだり、USBドライブに挿入して起動できるライブCDイメージを提供しているためです。この機能を提供する一部のディストリビューションには、Debian、Knoppix、MX Linux があります。