更改交换大小并耗尽空间后 Ubuntu 无法启动

更改交换大小并耗尽空间后 Ubuntu 无法启动

我正在用 Python 做一个内存占用很大的项目,一直出现错误(137 SIGKILL 9,类似这样的错误),所以我查找了一个解决方案,它说要更改交换大小。我将找到的命令复制并粘贴到终端中,它开始复制一些文件:

# disable the use of swap
sudo swapoff -a

# create the SWAP file. Make sure you have enough space on the hard disk.
# here is my size, the total size is bs*count B
sudo dd if=/dev/zero of=/swapfile bs=1024 count=136314880 status=progress
# output:
# 139458259968 bytes (139 GB, 130 GiB) copied, 472 s, 295 MB/s
# 136314880+0 records in
# 136314880+0 records out
# 139586437120 bytes (140 GB, 130 GiB) copied, 472.372 s, 296 MB/s

# Mark the file as SWAP space:
sudo mkswap /swapfile
# output:
# Setting up swapspace version 1, size = 130 GiB (139586433024 bytes)
# no label, UUID=25a565d9-d19c-4913-87a5-f02750ab625d

# enable the SWAP.
sudo swapon /swapfile

# check if SWAP is created
sudo swapon --show
# output:
# NAME      TYPE SIZE USED PRIO
# /swapfile file 130G   0B   -2

# Once everything is set, you must set the SWAP file as permanent, else you will lose the SWAP after reboot. Run this command:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

过了一会儿(我认为它已经达到了大约 40 GB),我的系统给我一条消息,说空间不足。然后终端完成了工作,我粘贴了其余命令来设置交换,然后重新启动了计算机。然后,当我再次启动时,显示以下消息:

/dev/nvme0n1p6: clean, 1090638/907808 files, 35521979/36801792 blocks

此后它无法启动。我以恢复模式启动它,尝试了那里的一些选项(例如清理 - 尝试释放一些空间等),但没有任何效果。这是系统摘要:

显示磁盘使用情况的屏幕截图

显示内存使用情况的屏幕截图

我认为在进行交换更改之前,我应该检查磁盘上是否有足够的空间。另外,我认为这将我的交换升级到 40 + GB,而我希望它最大达到 8 GB...我该如何解决这个问题并保存我的数据?这个项目对我来说真的很重要,我不想失去它...我可以在恢复模式下撤消我在终端中所做的更改吗?提前致谢!!!

答案1

似乎您已要求计算机创建 130GB 的交换文件,而不是 8GB 的​​文件。您需要执行以下操作:

  1. 启动恢复系统(或使用 Live USB 驱动器)
  2. 确认您没有使用交换文件:
    sudo swapoff -a
    
  3. 删除您创建的超大交换文件:
    sudo rm -f /swappyswapswap
    
    重要的:您需要将此命令中的文件名从 更改swappyswapswap为目录中大交换文件的正确名称/。此命令中的文件名是故意错误的,以便您 —希望— 不要盲目复制sudo rm命令,因为无法撤消。
  4. 确认您的系统现在有空间:
    df -h
    
  5. 创建一个 8GB 的​​全是零的文件,它将成为你的交换文件:
    sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress
    
  6. 将新文件设置为交换文件:
    sudo mkswap /swapfile
    
  7. 将新的交换文件添加到您的/etc/fstab文件中:
    sudo vi /etc/fstab
    
    笔记:您可以随意使用您选择的任何文本编辑器来修改此文件。只需记住使用 打开文件,sudo因为它的所有者是root

    在底部添加以下行:
    /swapfile    none    swap    sw    0    0
    
    这将确保每次重新启动时都挂载交换文件。
  8. 正常重启系统。

在复制/粘贴这些步骤之前,请务必阅读、理解并同意每一个步骤。

相关内容