51

Если я пытаюсь смонтировать папку, в которой уже есть файлы, выдаст ли мне linux сообщение об ошибке или покажет как смонтированную файловую систему, так и файлы, которые уже были в этой папке?

2 ответа2

109

Когда вы монтируете файловую систему в каталог /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
32

Он будет просто смонтирован, и файлы исчезнут, вернувшись, когда папка будет размонтирована.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .