当我尝试时sudo swapon -a
收到此消息:
swapon: /dev/sdb4: read swap header failed: Invalid argument
sdb4
就是我的交换分区所在的位置。
sudo blkid
返回这个:
/dev/sdb1: UUID="75622b47-3265-48a6-a697-265b44bdfe55" TYPE="ext4"
/dev/sdb3: UUID="d638620e-b8b1-49ae-b234-7e89aa0de676" TYPE="ext4"
/dev/sdb5: UUID="E656-2CAB" TYPE="vfat"
/dev/mapper/cryptswap1: UUID="83e2e318-eee6-4864-a1c4-330bd16bc6a7" TYPE="swap"
这是内容fstab
:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sdb1 during installation
UUID=75622b47-3265-48a6-a697-265b44bdfe55 / ext4 errors=remount-ro 0 1
# swap was on /dev/sdb4 during installation
#UUID=86d7eebb-b840-4fb0-a1fc-a84074062cb2 none swap sw 0 0
#/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
/dev/sdb4 none swap sw 0 0
答案1
检查交换分区是否设置正确
执行命令sudo fdisk -l
。这将列出所有分区及其分区类型。在 Ubuntu 中,交换分区将列出类似以下内容:
/dev/sdb4 7295 8268 7811072 82 Linux swap / Solaris
如果您没有看到最后 2 个值82
和Linux Swap
,那么它就没有设置为交换分区。
设置交换分区
确保您要使用的分区(例如 /dev/sdb4)在转换为交换分区之前不是具有真实数据的真实分区,否则所有数据将丢失。
以下步骤将设置交换分区:
sudo swapoff -a
如果不同,请将 /dev/sdb4 替换为正确的分区名称:
sudo /sbin/mkswap /dev/sdb4
启用刚刚设置的交换分区:
sudo swapon -a
如需详细帮助,请参阅 https://help.ubuntu.com/community/SwapFaq
答案2
很简单:您没有 sdb4 分区!您的交换似乎位于 /dev/mapper/cryptswap1 上。看起来您设置了 cryptswap,因此您需要修复 fstab 以指向新的交换分区,最好通过 UUID 而不是设备名称。