Якщо я спробую змонтувати папку, у якій вже є файли, чи може 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шнаніганах.