Мой /home
раздел находится на /dev/sda1
. Мой /
раздел находится на /dev/sda2
.
Всякий раз, когда я создаю файл в /home
разделе, он отображается в /
разделе под /home
каталогом.
Эквивалентом в Windows является создание файла на диске D, и этот файл также будет виден на диске C.
Как это возможно ?
решение1
Если ваш сегодняшний опыт работы с файловой системой основан на Windows или системах с одним диском/разделом, то вы, возможно, не привыкли к концепции точек монтирования. (Хотя Windows теперь также поддерживает монтирование дисков по пути монтирования, там это не так распространено, как в Linux/Unix)
Ваша файловая система в Linux/Unix представляет собой вложенную иерархию файлов. (папки тоже являются файлами..)
Вы начинаете с /
. Корень всего. В вашем случае это on partition /dev/sda2
. С /home
on /dev/sda1
вы заканчиваете с
/
dev/
pts/
- (вещи)
sys/
home/
rebecca/
txtfile.txt
bob/
и т.д. (есть гораздо больше каталогов, это просто пример)
Итак, путь от /
-> /home/rebecca/textfile.txt
должен быть максимально прозрачным. Так что, хотя кажется, что он textfile.txt
находится в /
разделе, на самом деле это не так. Он находится в /home/
разделе. Просточтораздел находится mounted
в /
каталоге как /home
.
Попробуйте эти три команды:
df /
df /home/
df /home/rebecca/textfile.txt
<-- используйте реальный путь к файлу
Команда df
покажет вам все ваши файловые системы, реальные и виртуальные, которые смонтированы в вашей системе на момент запуска команды. Использование, df
как у меня в примерах выше, служит для фильтрации вывода, чтобы вы могли проверять меньше вещей за раз.
TL;DR- именно так работают точки монтирования Unix и Linux, чтобы все ваши диски отображались вместе как единое связное дерево файлов и каталогов.
решение2
В файловой системе POSIXвсесуществует где-то внутри корня файловой системы, расположенной в /
. На вашем корневом разделе, который вы смонтировали в /
, у вас есть каталог, /home
. Этот каталог (предположительно) используется какТочка монтирования(т.е. место, в котором находится смонтированная файловая система, например раздел) для home
раздела. Файлы, созданные тамявляютсясоздается в home
разделе, содержимое которого видно в точке монтирования этого раздела.
Несмотря на проблемы, вызванные исчезновением содержимого /home
, если бы вы:
# umount /home; mount /dev/sda1 /mnt; ls /mnt
Вы бы увидели содержимое того, чтоимелбыл в /home
, теперь виден в /mnt
.
Не делайте этого на самом деле; это демонстративный мысленный эксперимент.
Вы можете увидеть список файловых систем, смонтированных в тех или иных точках монтирования, посмотрев на вывод команды mount
без параметров.
решение3
Файловая система (раздел), содержащая ваши собственные файлы, может быть размещена в любом месте дерева файловой системы, которое начинается с /
. Обычно она размещается в /home
, и в ней есть каталог, который называется вашим именем пользователя. Например, у вас может быть /home/rebecca
.
Системы на базе UNIX (включая Linux) используют однокорневую файловую систему ( /
). Системы Windows используют многокорневую файловую систему ( C:
, D:
, и т. д.).
Когда вы записываете файл в определенное место, вам обычно не нужно беспокоиться о том, в какой раздел он записывается, если на диске достаточно места для хранения содержимого файла.