我的 Debian 系统使用 tmfs 来做一些事情,特别是 /tmp
而且它占用的空间相当小。在我的 /etc/fstab 中找不到它
我想我只需在 fstab 中添加条目它就会生效,但我真的很想了解发生了什么。
山:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=219602,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=207432k,mode=755)
/dev/disk/by-uuid/xxx on / type ext4 (rw,noatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=414864k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,relatime,size=414864k)
/dev/md0 on /DATA type ext4 (rw,noatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
fstab:
proc /proc proc defaults 0 0
UUID=xxx / ext4 noatime,errors=remount-ro 0 1
UUID=zzz none swap sw 0 0
/dev/md0 /DATA ext4 noatime,errors=remount-ro 0 0
我可以理解 /sys /proc /dev 是由 fstab 以外的其他东西启动的,我也可以理解 /tmp 和 /run 作为 fstmp 的好处……但是它在哪里定义?
这些坐骑是从哪里来的?
答案1
/run
是 Debian 内存中的一个通用 tmpfs,其他(lock
等)是符号链接。默认情况下,tmpfs 的大小/run
设置为您的身体的记忆。
/tmp
RAMTMP=yes
仅当,或检测到只读根文件系统时,才会成为 tmpfs 。
根据Debian 维基/run
,这些是安装、等的步骤/tmp
,由启动脚本和initramfs 工具:
阶段 #1:初始包安装
- /run 在软件包安装时创建
- /var/run 已绑定挂载到 /run
- /var/lock 已绑定安装到 /run/lock
- /dev/shm 已绑定到 /run/shm
这确保 /run 层次结构存在,但 /var/run 和 /var/lock 仍用于存储通过 /run 访问的文件和目录。
第二阶段:系统重启后
- tmpfs 已挂载在 /run 上
- (可选)如果配置了 RAMLOCK,则在 /run/lock 上安装 tmpfs
- (可选)如果配置了 RAMSHM,则在 /run/shm 上安装 tmpfs
- (可选)如果配置了 RAMTMP,则 tmpfs 会挂载在 /tmp 上
- 创建符号链接 /var/run → /run (如果符号链接失败,则返回绑定挂载)
- 创建符号链接 /var/lock → /run/lock (如果符号链接失败,则返回绑定挂载)
- 创建符号链接 /dev/shm → /run/shm(如果符号链接失败,则返回绑定挂载)