为什么我无法挂载交换分区?

为什么我无法挂载交换分区?

当我尝试时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 个值82Linux 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 而不是设备名称。

相关内容