最近我添加了一个新的 40GB 硬盘作为交换。我希望在计算机登录时启用交换。我按照说明操作这里使 swap 命令在启动时运行。
我添加swaps.desktop
了/etc/xdg/autostart/
以及/usr/share/applications/
。里面swaps.desktop
是这样的:
[Desktop Entry]
Name=Swap Drive Autostart
Exec=swapon -p 32767 /dev/sda5
Type=Application
Terminal=false
我确信显示的命令(swapon -p 32767 /dev/sda5
)可以自行运行,但当我重新启动计算机时,交换功能并未启用。
然后我让这个文件可以以我自己的身份运行(使用这),因为该文件在启动时没有运行:
sudo chown root:root /etc/xdg/autostart/
sudo chmod 700 /etc/xdg/autostart/
sudo chown root:root /usr/share/applications/
sudo chmod 700 /usr/share/applications/
我也这样做了sudo visudo
,并添加了以下几行:
administrator ALL=(ALL) NOPASSWD: /etc/xdg/autostart/swaps.desktop
administrator ALL=(ALL) NOPASSWD: /usr/share/applications/swaps.desktop
whoami
说 我 是administrator
.
最终结果:当我尝试swaps.desktop
单独运行任一文件时,我得到了Error: Permission denied.
但是当我使用“以根用户身份打开当前文件夹”运行文件时,它运行完美并且我的交换空间显示在cat /proc/swaps
。
我做错了什么?我该如何让它正确工作,以便每次登录时都可以启用交换?
答案1
您需要在 fstab 中添加条目/etc/fstab
它需要与您的 UUID 一起提及
这是我的 fstab 条目示例
# swap was on /dev/sda5 during installation
UUID=c44126db-1f07-4dfa-a836-e478fecdd8d0 none swap sw 0 0
这是我的自动创建的交换条目,您需要输入此处显示的值
如果你需要知道驱动器的 UUID,请运行命令
#blkid /dev/yourdrive
然后你会得到这样的值:
/dev/sda5: UUID="c44126db-1f07-4dfa-a836-e478fecdd8d0" TYPE="swap"
看看我是如何在电脑上运行它的:
root@system99:/home/sysadmin# blkid /dev/sda5
/dev/sda5: UUID="c44126db-1f07-4dfa-a836-e478fecdd8d0" TYPE="swap"