Ubuntu如何设置或删除swap虚拟内存

本文介绍了Ubuntu系统中如何设置和删除swap虚拟内存,包括查看swap状态、创建及激活swap文件、设置开机自动启用swap,以及删除swap的步骤。适用于解决内存不足的问题。

什么是swap?

swap 简单的说就是将硬盘当内存用,用于解决内存容量不足的情况。

1、如何设置swap?

  • 1、查看当前系统是否设置了swap

在终端输入以下命令查看是否设置了swap

 free -m
 #swap栏都是 0 0 0 表示没有设置

在这里插入图片描述

  • 2、创建 Swap 文件

使用下面命令创建交换文件。因为要分配硬盘空间,需要一点时间。count=4096 表示创建 4GB 的虚拟内存,单位是 M

#创建swap文件
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
#查看swap文件是否创建好了
ls / | grep swapfile

在这里插入图片描述

设置多大的swap合理呢?

物理内存RAMSwap虚拟内存
RAM<=2GBSWAP = RAM*2
3GB<=RAM<=8GBSWAP = RAM
RAM>8GBSWAP <=4GB

一般物理内存小于2GB就设置为内存的两倍,小于8GB设置为等于内存,大于8GB的设置小于4GB

  • 3、激活 Swap 文件

以次执行下面的两个命令

sudo chmod 600 /swapfile
sudo mkswap /swapfile

执行成功将出现:Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=96b10ad3-8a38-4777-9d1e-e0c36a50fcc5

在这里插入图片描述

  • 4、开启 Swap
sudo swapon /swapfile

执行成功输入free -m 查看内存情况,swap栏显示4GB的swap了
在这里插入图片描述

  • 5、设置系统启动时自动开启 Swap
#编辑fsta文件
sudo vim /etc/fstab
#在最后添加
/swapfile none swap sw 0 0
#保存文件

2、如何删除swap?

#首先输入以下命令停用 SWAP 空间:
sudo swapoff -v /swapfile

#在 /etc/fstab 文件中删除有效 swap 的行

#最后执行以下命令删除 swapfile 文件:
sudo rm /swapfile
<think>嗯,用户之前问过关于删除未成功创建的交换分区的问题,现在又问Ubuntu删除没有创建好的虚拟内存。首先,我需要确认用户提到的“虚拟内存”具体指的是什么。在Linux系统中,虚拟内存通常由交换分区(swap partition)交换文件(swap file)组成。用户可能是在尝试创建交换空间时遇到了问题,导致残留的未完成配置分区。 用户之前的问题是关于交换分区的,所以这次可能类似,但可能涉及到交换文件。需要区分用户是使用交换分区还是交换文件。Ubuntu系统中,交换文件更常见,尤其是新版本。用户可能在创建交换文件时掉线,导致文件不完整,者配置残留。 首先,我需要引导用户确认他们使用的是交换分区还是交换文件。如果是交换文件,删除的步骤和交换分区不同。例如,删除交换文件需要停用交换文件,删除文件条目,并清理/etc/fstab中的配置。 但是用户提到“虚拟内存”,可能更泛指交换空间。需要覆盖两种情况:交换分区和交换文件。用户可能不确定自己用的是哪种,所以回答需要涵盖两种可能性。 接下来,需要检查现有交换空间的状态,使用swapon --show和free -h。如果有残留的交换文件分区,用户需要知道如何识别它们。例如,未成功创建的交换文件可能存在于指定路径,但未被正确激活。 然后,删除的步骤需要分情况处理。如果是交换分区,参考之前的步骤,使用fdiskparted删除分区。如果是交换文件,需要停用它,删除文件,并清理/etc/fstab中的条目。 此外,用户可能在创建过程中修改了/etc/fstab,导致系统尝试挂载不存在的交换空间,从而引发错误。需要提醒用户检查并清理这些配置。 还要注意权限问题,用户可能需要使用sudo执行命令,特别是修改系统文件和分区的时候。同时,提醒用户备份重要数据,避免误操作导致数据丢失。 可能用户遇到的具体问题包括:未完成的mkswap操作,残留的交换文件,者错误的分区表。需要指导用户逐步检查,确认问题所在,再执行相应的删除步骤。 最后,确保回答结构清晰,分步骤说明,让用户能够跟随操作,避免技术术语过多,同时提供验证步骤,确保问题解决。还要包括预防措施,帮助用户未来避免类似问题。</think>以下是处理Ubuntu系统中未成功创建的虚拟内存交换空间)残留问题的完整解决方案: ### 一、确认虚拟内存类型 先确定您创建的是**交换分区**还是**交换文件**: ```bash sudo swapon --show # 查看已激活的交换空间 free -h # 查看内存交换空间使用情况 ``` ### 二、处理未完成的交换分区 #### 场景1:分区已创建但未初始化 1. **定位残留分区**: ```bash lsblk -f | grep -i 'swap' # 查找带swap标识的分区 sudo blkid | grep swap # 检测交换分区签名 ``` 2. **删除分区**(以/dev/sdb1为例): ```bash sudo fdisk /dev/sdb ``` ```bash Command (m for help): d # 删除分区 Command (m for help): w # 写入更改 ``` 3. **清除残留标识**: ```bash sudo wipefs -a /dev/sdb1 # 擦除分区签名 ``` #### 场景2:分区已部分初始化 1. **强制关闭交换空间**: ```bash sudo swapoff -v /dev/sdb1 # 即使未完全初始化也尝试关闭 ``` 2. **清除内核缓存**: ```bash sudo partprobe /dev/sdb # 刷新分区表 ``` ### 三、处理未完成的交换文件 #### 场景:交换文件创建中断 1. **定位残留文件**: ```bash sudo find / -name '*.swap' # 查找.swap后缀文件 ``` 2. **停用并删除**(以/swapfile为例): ```bash sudo swapoff /swapfile # 停用交换文件 sudo rm -f /swapfile # 删除文件 sudo chattr -i /swapfile # 解除不可变属性(如果存在) ``` 3. **清理fstab配置**: ```bash sudo nano /etc/fstab ``` 删除包含以下内容的行: ```bash /swapfile none swap sw 0 0 ``` ### 四、修复系统配置 1. **重置swappiness值**: ```bash sudo sysctl vm.swappiness=60 # 恢复默认值 ``` 2. **清除临时交换记录**: ```bash sudo systemctl restart systemd-swap # 重启交换服务 ``` 3. **修复GRUB配置**: ```bash sudo update-grub # 防止启动时加载残留配置 ``` ### 五、验证修复结果 ```bash sudo swapon --show # 应显示空列表正常交换空间 sudo lsblk -f | grep -i swap # 只应显示有效交换分区 journalctl -b | grep swap # 检查启动日志中的错误信息 ``` ### 六、安全重建指南 推荐改用交换文件方案(更易管理): ```bash sudo fallocate -l 4G /swapfile # 创建4G文件 sudo chmod 600 /swapfile # 设置权限 sudo mkswap /swapfile # 格式化 sudo swapon /swapfile # 启用 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # 永久生效 ``` **注意事项**: 1. 操作前务必执行数据备份 2. 避免在已挂载的设备上操作分区 3. 建议使用`lsblk`确认设备标识符 4. 若使用SSD,建议将swappiness调至更低值(10-30) 如果操作后仍出现`/etc/fstab`加载错误,可进入恢复模式执行: ```bash sudo mount -o remount,rw / # 重新挂载为可写 sudo nano /etc/fstab # 手动修复配置 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值