Я использую плату BeagleBone с Linux.
Когда я ввожу команду "дф -х", я вижу, что tmpfs монтируется несколько раз.
Означает ли это, что все эти записи монтируются в одном и том же месте или в разных частях tmpfs?
Это приводит меня к другой вещи, которую я не совсем понимаю. Где эта файловая система tmpfs на самом деле создается в первую очередь? Я думаю, это происходит при загрузке Linux. Должен ли я найти скрипт, который создает эту файловую систему?
tmpfs 242.4M 0 242.4M 0% /dev/shm
tmpfs 242.4M 8.3M 234.2M 3% /run
tmpfs 242.4M 0 242.4M 0% /sys/fs/cgroup
tmpfs 242.4M 36.0K 242.4M 0% /tmp
tmpfs 242.4M 16.0K 242.4M 0% /var/volatile
tmpfs 242.4M 16.0K 242.4M 0% /var/lib
решение1
Это все разные файловые системы. Общее у них — тип файловой системы: они используют драйвер tmpfs
, который хранит данные в памяти¹. Нет «супер-tmpfs», частью которого они все являются: все экземпляры независимы.
«Столбец устройства» отображается, tmpfs
потому что многие конфигурации неизобретательны и используют одну и ту же строку для имени устройства и для типа файловой системы. Драйвер tmpfs игнорирует «имя устройства», поскольку он не загружает данные откуда-либо.
Эти файловые системы создаются путем их монтирования и уничтожаются путем их размонтирования. Например, следующая команда создает файловую систему tmpfs, содержимое которой представляет собой только корневой каталог (все файловые системы tmpfs начинаются таким образом), владельцем которого является root и с правами доступа rwxrwxrwt
, а максимальный размер составляет 100 МБ:
mount -t tmpfs -o size=100Mi,mode=1777 some_arbitrary_name /mnt
Вызовы монтирования выполняются в скриптах загрузки. Раньше можно было найти вызовы команды mount
в скриптах оболочки, выполняемых во время запуска. /var/lib
необычно как точка монтирования tmpfs и может быть настроено через /etc/fstab
. В наши дни большинство из них, если не все, монтируются systemd.
¹ Это виртуальная память: ОЗУ или подкачка.