系统安装后如何添加swap?

183 swap

我没有在 Ubuntu 安装期间创建交换分区。后来,我释放了一些空间并做了一个交换分区。现在每次启动后,我都手动打开gparted以右键单击交换分区以打开“交换”选项。

如何在启动时自动启用交换分区?

另外,如果我没有创建交换分区,我的其他选择是什么?

use*_*124 153

您需要编辑/etc/fstab并添加新的交换分区。

sudo nano /etc/fstab
Run Code Online (Sandbox Code Playgroud)

你需要添加一行看起来像

UUID=735b3be3-779c-4d21-a944-b033225f3ab4 none   swap    sw      0       0
Run Code Online (Sandbox Code Playgroud)

然后使用命令获取 UUID

sudo blkid /dev/sda3
Run Code Online (Sandbox Code Playgroud)

(替代/dev/sda3用适当的设备名称,才能看到相应的设备名称,我们可以使用lsblk-如说在这里)。

有关的:

  • 要找到适当的设备名称:`sudo fdisk -l`(来自:http://askubuntu.com/questions/182446/how-do-i-view-all-available-hdds-partitions)然后查找类型: Linux 交换。 (3认同)

Tak*_*kat 120

要在安装后创建交换分区,请创建一个空分区。它应该没有孔。然后,您可以使用以下命令格式化此分区:

sudo mkswap /dev/sdX
Run Code Online (Sandbox Code Playgroud)

替换/dev/sdX您的分区。将此分区挂载为交换

sudo swapon -U UUID
Run Code Online (Sandbox Code Playgroud)

/dev/sdX从这里读取的UUID 是您的 UUID :

blkid /dev/sdX
Run Code Online (Sandbox Code Playgroud)

/etc/fstab通过添加以下行来绑定您的新交换:

UUID=xxx    none    swap    sw      0   0
Run Code Online (Sandbox Code Playgroud)

如果您想将交换用于休眠,则需要/etc/initramfs-tools/conf.d/resume使用此内容更新 UUID RESUME=UUID=xxx。不要忘记$ sudo update-initramfs -u

完成事项:如果您没有备用分区,也可以创建交换文件。这个答案让您了解如何创建交换文件并在启动时启用它。

  • 查看 `gparted` 以调整分区大小。 (2认同)

ken*_*orb 75

如果您不想或不确定如何创建交换分区,您可以创建一个交换文件,该文件的工作方式与分区相同。以下是步骤(使用终端):

  1. 创建一个空文件 (1K * 4M = 4 GiB)。

    sudo mkdir -v /var/cache/swap
    cd /var/cache/swap
    sudo dd if=/dev/zero of=swapfile bs=1K count=4M
    sudo chmod 600 swapfile
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将新创建的文件转换为交换空间文件。

    sudo mkswap swapfile
    
    Run Code Online (Sandbox Code Playgroud)
  3. 启用文件进行分页和交换。

    sudo swapon swapfile
    
    Run Code Online (Sandbox Code Playgroud)

    验证方式:swapon -stop

    top -bn1 | grep -i swap
    
    Run Code Online (Sandbox Code Playgroud)

    应显示如下行: KiB Swap: 4194300 total, 4194300 free

    要禁用,请使用sudo swapoff swapfile命令。

  4. 将它添加到fstab文件中,使其在下次系统启动时持久化。

    echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
    
    Run Code Online (Sandbox Code Playgroud)
  5. 通过以下方式在启动时重新测试交换文件:

    sudo swapoff swapfile
    sudo swapon -va
    
    Run Code Online (Sandbox Code Playgroud)

    注意:以上命令会重新检查fstab文件的语法,否则您的 Linux 将无法正常启动。

  • 感谢您使用交换文件而不是交换分区的唯一答案。在这种情况下,我无法创建分区。这些命令效果很好。 (16认同)
  • 对于那些需要更大大小的交换空间的人,将 count=4M 增加到 XM,以获得 X GiB 交换空间。万一有人错过了。 (2认同)
  • 啊我现在明白了。您需要在重新启动之前执行此操作。我在启动时就被甩了。 (2认同)
  • 这对于磁盘实际上是虚拟设备并且您无法控制分区的远程 VPS 非常有用。谢谢! (2认同)

小智 16

使用 gparted 有一种图形方式可以做到这一点。

运行 Gparted:

sudo gparted
Run Code Online (Sandbox Code Playgroud)

如果你没有安装它,你可以使用安装它

sudo apt-get install gparted
Run Code Online (Sandbox Code Playgroud)

一旦 gparted 运行:

  1. 通过右键单击任何未分配的块并单击 new
  2. 将分区格式化为 linux-swap
  3. 右键单击分区,然后单击swapon

完成后,您的分区名称旁边应该有一个钥匙图标

  • 要使其永久化,您仍然必须像@user4124 的回答一样编辑 fstab 文件 (3认同)
  • 问题已经说他们这样做了。 (3认同)
  • 这根本没有回答这个问题。 (2认同)