Якщо я спробую змонтувати папку, у якій вже є файли, чи може Linux надіслати мені повідомлення про помилку чи продовжувати показувати як змонтовану файлову систему, так і файли, які вже були в папці?
Якщо я спробую змонтувати папку, у якій вже є файли, чи може Linux надіслати мені повідомлення про помилку чи продовжувати показувати як змонтовану файлову систему, так і файли, які вже були в папці?
Відповіді:
Він просто змонтується, і файли зникають, повертаючись, коли папка вимкнена.
Коли ви монтуєте файлову систему в каталозі /mount-point
, ви більше не можете отримувати доступ до файлів під /mount-point
. Вони все ще існують, але /mount-point
тепер посилається на корінь змонтованої файлової системи, а не на каталог, який служив точкою монтування, тому до вмісту цього каталогу не можна отримати доступ, принаймні таким чином. Наприклад:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
Існують способи отримати об'єднаний вигляд змонтованої файлової системи та даних, які вже були присутні, але вам потрібен додатковий шар, який називається файловою системою об'єднання .
У Linux є спосіб побачити приховані файли. Ви можете використовувати mount --bind
інший вигляд файлової системи, де знаходиться точка монтування. Наприклад
mount --bind / /other-root-view
Ви побачите всі файли в кореневій файловій системі під /other-root-view
.
# cat /other-root-view/etc/hostname
darkstar
Зокрема, /mount-point
тепер він буде доступний як /other-root-view/mount-point
, і оскільки /other-root-view/mount-point
це не місце монтування, ви можете побачити його вміст там:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
/mount-point/1/
тоді монтується інша файлова система /mount-point/
, чи можу я все-таки отримати доступ /mount-point/1/
?
mkdir /r; mount --bind / /r; du -sh /r/*
. Спасибі
du -x
(еквівалентно du --one-file-system
) зробив би це без необхідності в --bind
шнаніганах.