仅当从 Live CD 尝试 Ubuntu 时,交换才会被识别

仅当从 Live CD 尝试 Ubuntu 时,交换才会被识别

我最近在笔记本电脑上为 ubuntu 增加了空间和交换空间。尽管空间增加了,但我的交换空间未被识别。它显示为 0 字节空间。然而,有趣的是,当我从 live cd 启动并单击尝试 ubuntu 时,交换空间被识别。

什么原因导致了这个奇怪的问题?

正常启动: 在此处输入图片描述

bhaarat@bhaarat-laptop ~ % free
             total       used       free     shared    buffers     cached
Mem:       1015780     954008      61772          0      49836     449444
-/+ buffers/cache:     454728     561052
Swap:            0          0          0

实时 CD 启动 在此处输入图片描述

ubuntu@ubuntu:~$ free
             total       used       free     shared    buffers     cached
Mem:       1015780     983500      32280          0      87408     558984
-/+ buffers/cache:     337108     678672
Swap:     13590952        384   13590568

Live CD 启动中的输出

输出grep swap /etc/fstab

/dev/sda6 swap swap defaults 0 0

输出sudo fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes
240 heads, 63 sectors/track, 10337 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2bd2c32a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda2               1       10338    78149632    5  Extended
/dev/sda5   *           1        8539    64551936   83  Linux
/dev/sda6            8540       10338    13590958+  82  Linux swap / Solaris

输出sudo swapon -a 无输出

Gparted截图: 在此处输入图片描述

更新cat /proc/swaps修复后 的内容为:

 Filename Type Size Used Priority 
 /dev/sda6 partition 13590952 0 -1

答案1

交换功能是否已启用? swapon <device>

cat /proc/swaps

如果列出,则表示已启用。如果没有,则表示系统未将其用作交换区。

blkid | grep swap

您的 fstab 条目似乎不正确。

尝试使用以下行:

/dev/sda6 none swap sw 0 0

然后sudo swapon -a

您可以尝试使用从上面的 blkid 命令获取的 UUID,并将其放在 /dev/sda6 的位置。

答案2

尝试添加/dev/sda6 none swap sw 0 0/etc/fstab,您可以使用以下命令来执行此操作(在终端中输入它们):

  1. sudo su
    (现在应该要求您输入密码。输入密码并按回车键继续)
  2. echo "/dev/sda6 none swap sw 0 0" >> /etc/fstab

此后,重新启动系统并再次检查。


对于那些想知道我为什么使用sudo su, 而不是su;的人来说,su它似乎在 Ubuntu 12.04 中不再适用于我。

答案3

当您调整交换大小时,它会更改 中的 UUID 名称/etc/fstab。如果您的文件中没有标签(例如 /dev/sda5),/etc/fstab它将无法识别新的交换。正如 fstab 文件中所解释的那样,在某些情况下使用 UUID 更为可靠(显然不是在这种情况下)。

卸载交换驱动器并复制其 UUID:

>sudo swapoff -av
swapoff on /dev/sda5

>sudo mkswap /dev/sda5
Setting up swapspace version 1, size = 16604156 KiB
no label, UUID=f0ac7203-dac5-479b-a33a-be7a3dca6aae

将交换的 UUID 更新/etc/fstab为上述步骤中的新值:

>sudo vim /etc/fstab

现在重新安装,注意相同swapsizedevsize

>sudo swapon -a --verbose
swapon on /dev/sda5
swapon: /dev/sda5: found swap signature: version 1, page-size 4, same byte order
swapon: /dev/sda5: pagesize=4096, swapsize=17002659840, devsize=17002659840

虽然看了上面接受的答案,我现在明白了我需要知道什么,但我想在找到答案后在这里更明确地说明Pollox 的帖子

对我的问题的大多数回复都建议将“/etc/fstab”行更改为使用标签而不是 UUID。我犹豫不决,因此无法解决问题,直到我发现 UUID 也会发生变化。

相关内容