系统未挂载交换分区

即使交换分区存在,并设置为在fstab加载,它仍然没有被挂载。

fdisk为交换分区返回:

 file system: /dev/sda5 start: 1 end: 244 blocks: 1951744 id: 82 system: Linux swap / Solaris 

它在我的fstab

 file system: /dev/sda5 mount point: none type: swap options: sw dump: 0 pass: 0 

我可以用swapon /dev/sda5加载它,但它不会在启动时加载。

我可以提供更多信息来帮助排除故障吗? 我不知道其他信息可能有用


根据要求,完整的fstab文件:

 #       proc /proc proc nodev,noexec,nosuid 0 0 /dev/sda6 / ext4 errors=remount-ro 0 1 /dev/sda5 none swap sw 0 0 /dev/sr1 none udf rw,noauto 0 0 

我正在查看系统日志,我看到了这个,不知道它意味着什么,或者它是否正常但是:

 Apr 29 17:57:24 caelan-ubuntu os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/sda5 Apr 29 17:57:24 caelan-ubuntu 50mounted-tests: debug: /dev/sda5 is a swap partition; skipping 

mountall输出

 mountall: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. mountall: Connection is closed 

mountall -v输出

http://pastie.org/private/ras9mc7mf66yudnjoem4w

 swap finished ... local 4/4 remote 0/0 virtual 12/12 swap 0/0 

不确定,仍然没有加载交换…仍然可以在命令行中添加,我的Windows分区正在启动时安装,这也是在fstab中。

这听起来很愚蠢,但尝试一下:重新排序/etc/fstab以将交换分区放在最后。

mountall -v root用户运行时, mountall -v似乎无害地失败,并且其输出可用于诊断mountall在启动时无法正常工作的原因。 mountall -v最后一行输出包括关键线索:

 local 4/4 remote 0/0 virtual 12/12 swap 0/0 

换句话说,安装了0个交换驱动器,在/ etc / fstab中找到了0个交换驱动器。

现在为什么没有mountall找到/ etc / fstab中列出的交换驱动器? 好问题。 这可能是针对mountall的错误。 为了诊断它,我复制了你的/ etc / fstab并以非root用户身份运行了mountall -v 。 通过随机编辑/ etc / fstab并继续测试mountall -v ,我发现如何更改mountall报告的“swap 0/0”。 只需重新排序/ etc / fstab的行足以使其更改为“swap 0/1”,换句话说,在/ etc / fstab中找到1个交换驱动器。 有了它,它可能足以正常启动。 如果没有,请发布mountall -v新结果。

谢谢你的问题。 在我看到它的时候,我发现我的系统在昨天升级到Natty之后遇到了与你的系统相同的问题。 我认为问题是在升级过程中交换分区的UUID发生了变化。 这是我修复它的方法。

  1. 运行sudo blkid 。 这将显示磁盘上所有分区的当前UUID。 我怀疑你会看到你的交换分区的UUID现在与/ etc / fstab中的值不同。

  2. 如果不同,请在sudo下运行一些文本编辑器来编辑/ etc / fstab。 将UUID的值替换为当前实际值,如上面的blkid命令所示。 不要包含引号。

  3. 保存文件并重新启动系统。 运行free -m以确保更改解决了问题:

     $ free -m total used free shared buffers cached Mem: 1001 604 396 0 123 199 -/+ buffers/cache: 281 719 Swap: 1953 0 1953 

我的/etc/fstab (Debian)有以下内容:

 UUID=7b533ab9-cb87-4a30-a4d8-689788f21985 none swap sw 0 0 

你应该根据你告诉我们你的配置的内容:

 /dev/sda5 none swap sw 0 0 

我想知道为什么作为Linux的初学者你会对此感到疑惑。 RAM这些天很便宜。 我有4 GB,并进行Java开发(IntelliJ特别使用大量的RAM),但我从来没有用完它。

我不得不说,我很惊讶你有这种问题。 你没有使用默认选项运行Ubuntu安装程序吗?

或者也许你因双启动(Win / Lin)而遇到所有这些问题?

我没有任何快速的答案,但我捅了一下,发现了一些你可以检查的东西,试图缩小问题的范围:

  • / etc / fstab(5)应该列出交换分区(你的看起来很好)
  • /etc/init/mountall.conf应包含该行emits all-swaps
  • 如果你以非root用户身份运行mountall ,它的回复应包括swapon: /dev/sda5: open failed: Permission denied
  • dmesg | less dmesg | less应该包括我的东西:

[2.272092] sda:sda1 sda2 sda3

[2.272924] sd 1:0:0:0:[sda]附加的SCSI磁盘

…(关于安装sda1,sda2的更多行)…

[20.298550]在/ dev / sda3上添加10239996k交换。 优先级:-1范围:1对:10239996k

  • free报告像Swap: 10239996 0 10239996

我在Ubuntu 12.04(Precise)上遇到了类似的问题,但我的/etc/fstab已经正确了。 事实certificate,我的交换分区格式出现了一些问题,导致blkidmountall无法检测交换分区。

细节:

  • 我的交换分区是/dev/mapper/foo-swap_1 – 加密(LUKS)分区上的LVM逻辑卷。
  • 交换分区永远不会在启动时处于活动状态。
  • 手动运行swapon -a工作。
  • lsblk显示了交换分区
  • blkid没有显示交换分区
  • blkid -p /dev/mapper/foo-swap_1打印了以下消息:

     /dev/mapper/foo-swap_1: ambivalent result (probably more filesystems on the device, use wipefs(8) to see more details) 
  • wipefs -n /dev/mapper/foo-swap_1显示了两个不同的文件系统签名!

Nuking两个签名( wipefs -a )和重新格式化交换( mkswap )为我解决了问题。

这是一个自动修复的脚本:

 #!/bin/sh # helper functions log() { printf %s\\n "$*"; } error() { log "ERROR: $*" >&2; } fatal() { error "$*"; exit 1; } try() { "$@" || fatal "'$*' failed"; } # path to the swap partition SWAP=/dev/mapper/foo-swap_1 # remember the UUID of the swap partition UUID=$(try sed -e 's/RESUME=UUID=//' /etc/initramfs-tools/conf.d/resume) || exit 1 [ -n "${UUID}" ] || fatal "couldn't read UUID" # delete filesystem/raid signatures from the swap partition try wipefs -a "${SWAP}" # format the swap partition try mkswap -f -U "${UUID}" "${SWAP}" 

升级到12.04后,发生了一些小exception,没什么大不了的。 我没有意识到我的交换分区没有工作,直到我从我的奥林巴斯e330尝试Gimp 1400万像素的jpg。 让人惊讶。

论坛救援。 线索:

blkid节目

 /dev/sdb6: UUID="3e0550cf-4a55-4aa8-80fa-24103c1b25a7" TYPE="swap" 

但根据系统监视器,它没有活动,mmm’kay。

UUID绝对是对的,但没有去……不确定我是如何得到这个命令的:

 # blkid -p /dev/mapper/foo-swap_1 error: /dev/mapper/foo-swap_1: No such file or directory 

文件管理器向我展示了一个0字节的图标,文件名控制, – 所以应该写在那里? 通过什么方式?

 $ sudo swapon --all --verbose yielded swapon: cannot find the device for UUID=3e0550cf-4a55-4aa80fa-24103c1b25a7 

我编辑了/ etc / fstab文件添加

 /dev/sdb6 none swap sw 0 0 

重启和系统监视器显示它是活动的,是的。

好的,我一定在这里找到了命令

 blkid -p /dev/mapper/foo-swap_1 

所以这对于比我更聪明的人来说是一个线索。 希望能帮助到你。

在UUID之后:

# Turn off swap swapoff "${SWAP}"

在末尾:

swapon "${SWAP}"