问题
为什么我的交换分区在重启后被使用?
语境
我的系统在 Linux Ubuntu 中有两个交换区域:
sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/nvme0n1p7 partition 977M 0B -2
/media/EXT4/swapfile file 4G 0B -3
我禁用了交换分区:
sudo swapon --show
NAME TYPE SIZE USED PRIO
/media/EXT4/swapfile file 4G 0B -3
并编辑/etc/fstab:
UUID=8a098c42-9f6a-4f04-8dac-87298f1f460d / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=CC3B-B509 /boot/efi vfat umask=0077 0 1
# swap was on /dev/nvme0n1p7 during installation
# UUID=0379c3e0-faa9-4bd8-a7ce-4bc1d2d1d9a2 none swap sw 0 0
# 4TB HDD, linux partition
UUID="847df9cc-ba11-469f-a36e-ac4228c005f8" /media/EXT4 ext4 user,errors=remount-ro,auto,exec,rw
# 4TB HDD, windows partition
UUID="2A2506563E8741C6" /media/NTFS ntfs user,errors=remount-ro,auto,exec,rw,uid=1000,gid=1000
/media/EXT4/swapfile none swap sw 0 0
问题
重启后该分区将用作交换区域:
sudo swapon --show
NAME TYPE SIZE USED PRIO
/dev/nvme0n1p7 partition 977M 0B -2
/media/EXT4/swapfile file 4G 0B -3
更多信息
以下是linux-swap的信息:
它显示 fstab 中的 UUID 已被注释掉用于交换分区。
这些是 linux-swap 的标志: (均未使用)
我没有 Autofs安装在我的系统上。
答案1
除了@Raffa 的建议之外,您可能还需要禁用 systemd 中检测到的交换空间在启动时的自动激活,为此,请通过运行以下命令找出负责的 .swap 单元:
sudo systemctl --type swap
然后应该会以以下格式列出当前交换单元(在我的情况下,交换单元名称是dev-sda7.swap
):
UNIT LOAD ACTIVE SUB DESCRIPTION
dev-sda7.swap loaded active active Swap Partition
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
通过屏蔽该交换单元来禁止其在启动时启动:
sudo systemctl mask dev-sda7.swap
答案2
看来您确实在文件中禁用了该交换分区/etc/fstab
。
然而,我建议再采取一步措施。
请先关闭所有交换
swapoff -a
。然后在终端中输入:sudo nano /etc/initramfs-tools/conf.d/resume
检查文件中是否存在已禁用交换的 UUID。
如果是,请在该行前添加注释#
。保存文件并退出。
重新创建启动映像:
sudo update-initramfs -u -k all
更新 GRUB:
sudo update-grub
然后,请重新启动并查看是否有效。
您可能还想删除交换分区,然后扩展系统分区以利用未使用的空间。
答案3
@PJConnol,
谢谢,你太完美了!这帮我解决了这个问题。
首先禁用交换条目/etc/fstab:
执行
# Be careful, if possible reboot before then execute next steps
swapoff -a
sudo systemctl --type swap
UNIT LOAD ACTIVE SUB DESCRIPTION
dev-sda7.swap loaded active active Swap Partition
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
然后禁用它:
sudo systemctl mask dev-sda7.swap
然后重新启动并验证
free -m
total used free shared buff/cache available
Mem: 7933 1560 5011 3 1361 6130
Swap: 0 0 0