如何查看我硬盘上是否有交换分区?

我使用12.04的Live CD将Ubuntu安装到我的Windows 7分区上,并删除了所有内容,所以现在我的笔记本只有Ubuntu。但是由于在安装程序中我选择了简单的“擦除整个磁盘”选项,安装程序是否创建了交换分区,还是我应该在“其他选项”中自己创建?顺便说一下,我有6GB的内存。

1运行 cat /proc/swaps 或者 swapon -s 命令,它会列出当前正在使用的交换分区和交换文件。 - luv.preet
@luv.preet - 这个答案显示了这一点 - sancho.s ReinstateMonicaCellio
8个回答

使用磁盘工具轻松检查的图形方式

  1. 从Dash中打开磁盘工具:

    enter image description here

  2. 在左侧栏中,找到“硬盘”一词,并点击它:

    enter image description here

  3. 在右侧栏中,看看是否能找到“交换空间”。如果是这样,说明您已启用交换空间;您可以点击该部分以查看详细信息。它会类似于以下内容:

    enter image description here


或者,使用Ctrl+Alt+T打开终端,并输入swapon -s;如果您看到类似下面的带有统计数据的行,则表示已启用交换空间:

enter image description here


22如果您没有设置计算机,不确定交换区域位于何处(或者是否使用交换文件而不是交换分区,或者在不同驱动器上进行交换,在压缩的RAM中进行交换等),那么swapon -s是最简单的方法。 - thomasrutter
12swapon -s现已被swapon --show取代,详情请参考来源 - dthor
1看起来cat /proc/swaps是一种常见的方法,详见下面的答案。 - sancho.s ReinstateMonicaCellio

在终端中输入:
free -m

如果你碰巧有交换空间,你可以看到还剩下多少交换内存。

14free -mh 会使其以人类可读的方式显示 - bbodenmiller
2这是不正确的,因为free -m只会显示是否存在交换空间;它不会显示它是一个交换文件还是交换分区。 - Alex Meiburg

使用

cat /proc/swaps

除了大小之外,它还会告诉交换类型(分区/文件)。 它似乎提供与swapon -s完全相同的输出(在这里发布here,但显然已被弃用)。
或者
cat /etc/fstab

在手动添加交换的(不寻常)情况下,这将无法提供正确的信息,正如Carlo Wood的评论所述。

/etc/fstab中的信息既不是保证也不总是可用的。该文件用于在启动时配置交换空间和/或运行swapon -a,但如果您手动添加了交换空间,则不一定会出现在/etc/fstab中。 - Carlo Wood
@CarloWood - 很好了解。所以你说在那些cat /etc/fstab不可靠的情况下,cat /proc/swaps是可靠的? - sancho.s ReinstateMonicaCellio
是的 - 我的/etc/fstab是空的,但是/proc/swaps仍然显示我刚刚手动添加的交换分区。 - Carlo Wood
/proc/swaps 什么都没有显示,free -m 显示交换空间为0,df 也没有显示任何内容,blkid 显示 /dev/sda2lsblk -o name,fstype,size 显示 swap 5 G /dev/sda2。所以我有一个隐藏的交换空间吗?当我执行 systemctl hibernate 时,出现了 Failed to hibernate system via logind: Not enough swap space for hibernation 的错误。我该怎么办?cat /proc/meminfo 显示有6 GB的内存。是不是缺少了1 GB的交换空间? - Timo

我会使用这种方法来验证是否存在交换分区。
打开一个终端,按下CTRL + ALT + T,然后输入。
    sudo blkid | grep swap  

如果你看到一个带有TYPE="swap"的条目,确保你有一个交换分区。
我的输出如下:你可以看到/dev/sda7是一个交换分区。
/dev/sda7: UUID="4656a2a6-4de0-417b-9d08-c4a5b807f8dd" TYPE="swap" 

enter image description here

安装程序应自动创建交换分区。还要注意,除非您使用“休眠”功能或同时使用更多应用程序,否则您可能永远不需要交换分区。您可以查看关于交换大小的有趣问题。

我有16GB的RAM。我需要32GB的交换空间吗?

什么是交换空间,我应该创建多大的交换分区?

如果发生这种情况,您没有创建交换分区,请查看此问题以获取帮助。

如何为休眠创建交换分区?


另请参阅:http://askubuntu.com/questions/33697/adding-swap-partition-after-system-installation(如果无法分区,则使用交换文件)和http://askubuntu.com/questions/126018/adding-a-new-swap-file-how-to-edit-fstab-to-enable-swap-after-reboot - Takkat
正如Anwar Shah所提到的,这可以向您显示您是否有指定为交换区的分区,但这并不意味着您正在使用它。执行此操作以查找交换分区,并通过idx建议的'swapon -s'进行验证,以确保它们匹配,将是一个很好的解决方案。 - mightypile

执行lsblk命令并在末尾检查SWAP。
简单来说,执行lsblk | grep SWAP命令
输出:
├─sdb2   8:18   0   7.6G  0 part [SWAP]

如果您不熟悉lsblklsblk将列出分区、它们的挂载点、大小等信息。

1你能解释得更清楚一点吗?并不是每个人都熟悉终端命令。如果你能解释一下这意味着什么,可能会对其他人有所帮助。比如,lsblk是什么,它的作用是什么?输出结果代表什么意思?类似这样的问题 :) - AnotherKiwiGuy
在Debian上,我需要运行lsblk -o fstype, size命令来显示swap - Timo
@AnotherKiwiGuy,使用“man lsblk”命令可以给你一个启动的推动。 - Timo

在终端中打开gparted:
sudo gparted
它会显示所有的分区,你可以看到是否有交换分区。 你还可以使用gparted来进行'swapon'或'swapoff'操作。

你可以像前面的帖子中所说的那样使用 gparted 来查看系统上的所有分区,包括交换分区。 gparted 与 LiveCD 一起提供,但如果你不使用 LiveCD,则需要安装它。执行此操作的命令是
sudo apt-get update && sudo apt-get install gparted

或者,您也可以在终端中使用sudo fdisk -l来查看所有分区。

nits@nits-excalibur:~$ sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x27edc0d3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   188743679    94268416    7  HPFS/NTFS/exFAT
/dev/sda3       224569342   976771071   376100865    5  Extended
/dev/sda4       188743680   224567295    17911808   83  Linux
/dev/sda5       224569344   434284543   104857600    7  HPFS/NTFS/exFAT
/dev/sda6       434286592   644001791   104857600   83  Linux
/dev/sda7       644003840   684001279    19998720   83  Linux
/dev/sda8       684003328   704002047     9999360   83  Linux
/dev/sda9       804003840   972767231    84381696   83  Linux
/dev/sda10      704004096   744001535    19998720   83  Linux
/dev/sda11      744003584   803987455    29991936   83  Linux
/dev/sda12      972769280   976771071     2000896   82  Linux swap / Solaris

Partition table entries are not in disk order

文件系统类型为Linux Swap/ Solaris的那一行是交换分区(在我的情况下是最后一行)。你也可以查看你的/etc/fstab文件,看看是否默认启用了交换分区。如果它是在安装过程中创建的,你几乎总能在这里找到它。
nits@nits-excalibur:~$ cat /etc/fstab | grep -i swap
# swap was on /dev/sda12 during installation
UUID=5604929a-9d9e-4ab0-907f-b9479a3b55e5 none            swap    sw              0       0

1使用 lubuntu 18.04.1 版本时,sudo fdisk -l 命令未显示交换分区,但 swapon --show 命令正常工作。 - AjayKumarBasuthkar

默认安装会创建一个SWAP分区,从Dash主页打开系统监视器并切换到资源选项卡,这是一种验证的替代方法。如果需要更详细的分区操作,可以选择“其他选项”。