如何tmpfs
禁用/run/shm
?我搜索了 initscripts 并发现以下代码检查了 中的条目fstab
,但是我应该更改什么以使其不挂载/run/shm
?我正在运行 Debian sid。
/lib/init/mount-functions.sh
read_fstab_entry () {
# Not found by default.
found=1
for file in "$(eval ls $(fstab_files))"; do
if [ -f "$file" ]; then
while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
case "$MNT_FSNAME" in
""|\#*)
continue;
;;
esac
if [ "$MNT_DIR" = "$1" ]; then
if [ -n "$2" ]; then
[ "$MNT_TYPE" = "$2" ] || continue;
fi
found=0
break 2
fi
done < "$file"
fi
done
return $found
函数调用点
if read_fstab_entry /run/lock; then
if [ "$MNT_TYPE" = "tmpfs" ] ; then
RAMLOCK="yes"
else
RAMLOCK="no"
fi
fi
之后
if [ yes = "$RAMLOCK" ]; then
domount "$MNTMODE" tmpfs shmfs /run/lock tmpfs "-o${NODEV}noexec,nosuid$LOCK_OPT"
# Make sure we don't get cleaned
touch /run/lock/.tmpfs
else
chmod "$LOCK_MODE" /run/lock
fi
答案1
目前尚不清楚您想要实现什么目标。默认情况下(至少在 Debian wheezy 上),/run/shm
是 的子目录/run
,挂载为 tmpfs。因此,如果您不想/run/shm
成为挂载点,请不要更改默认配置。如果您为/run/shm
in创建一个条目/etc/fstab
,则仅当您指定文件系统类型时才会挂载该条目;否则/dev/shm
绑定安装在那里。没有/run/shm
tmpfs 不是受支持的配置。如果您想使用其他文件系统类型,请创建一个 fstab 条目并编辑/etc/init.d/mountall.sh
,/etc/init.d/mountdevsubfs.sh
以便它们使用或mount_shm
以外的参数进行调用。无论您做什么,请确保模式为 1777,并且没有上次启动留下的文件。mount
mount_update
/run/shm
答案2
放在#
fstab-Entry 前面,将其标记为注释。
continue
如果您查看将触发 - 语句中的 -分支的脚本case
,使其跳过该行。
答案3
阅读 上的注释/etc/default/tmpfs
,编辑文件(添加RAMSHM=no
),保存并重新启动。