我有 Ubuntu 12.04 LTS,我试图升级到 Ubuntu 12.10。当我单击更新管理器升级时,出现了一个消息框:
无法运行升级。这通常是由于系统中的 /tmp 以 noexec 方式挂载所致。请重新挂载而不使用 noexec,然后再次运行升级。
我尝试使用/tmp
以下命令在终端中使其可执行:
mount -o remount,exec /tmp /var/tmp
我按下了Enter并从终端收到以下消息:
mount: only root can do that
我现在应该做什么才能使之/tmp
可执行并升级操作系统?
答案1
您需要具有 root 权限。为此,请sudo
在命令前面输入:
sudo mount -o remount,exec /tmp
当要求输入密码时,只需输入您的常用用户密码。
答案2
它显示您的系统/tmp
已作为 noexec 安装,因此请尝试使用exec
选项安装它以使您的升级正常工作。
exec / noexec - Permit/Prevent the execution of binaries from the filesystem.
以 root身份打开 /etc/fstab
文件,例如运行
sudoedit /etc/fstab
将下面的行(/tmp
我的 fstab 上的条目如下所示)从
tmpfs /tmp tmpfs defaults,noatime,mode=1777,nosuid,size=512M,noexec 0 0
到
tmpfs /tmp tmpfs defaults,noatime,mode=1777,nosuid,size=512M,exec 0 0
或者,如果您的行看起来不同,只需删除并noexec
在第四列替换为exec
。
保存该文件,然后重新启动系统。现在尝试再次升级。
答案3
你会尝试这个命令吗?就我而言,这个命令有效。
sudo mount -t tmpfs -o exec tmpfs /tmp
然后检查它是否有效。
mount
答案4
其他答案告诉您如何/tmp
临时使可执行文件。 要保留此设置:
- 编辑
/etc/systemd/system/tmp.mount
(sudo systemctl edit tmp.mount --full
)。 - 找到带有挂载选项的行(如
Options=mode=1777,relatime,nodev,nosuid,noexec
)。 - 删除
noexec
选项。
从现在开始,/tmp
即使重启后您的文件仍可执行!