swap 配置、扩容以及永久关闭

本文详细介绍了如何在Linux系统中创建swap分区,包括通过新建磁盘分区和添加交换文件两种方式,并提供了扩容swap的方法。此外,还阐述了永久关闭swap分区的步骤,涉及编辑fstab文件、删除逻辑卷以及更新GRUB配置等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、创建swap

1)新添加盘创建swap
#分区
fdisk /dev/sd* -> n -> p -> 1 -> 默认全部大小 -> t(分区格式) -> 82(Linux swap 分区) -> w
#分区表生效
partprobe 
#格式化成swap分区    
mkswap /dev/sd*1
#启用新的swap 分区    
swapon /dev/sd*1
#开机自动挂载
echo ‘/dev/sd*1  swap  swap  defaults  0  0' >> /etc/fstab
2)添加交换文件方式创建
#创建大小为2G的交换文件
dd if=/dev/zero of=/swapfile bs=1M count=2048
#使用 mkswap 命令来设置交换文件
mkswap /swapfile
#启用交换分区
swapon /swapfile
#使其开机自动挂载
echo ‘/swapfile   swap  swap  defaults  0  0' >> /etc/fstab

2、扩容swap

1)新添加盘创建扩容swap
#分区
fdisk /dev/sd* -> n -> p -> 1 -> 默认全部大小 -> t(分区格式) -> 82(Linux swap 分区) -> w
#分区表生效
partprobe 
#格式化成swap分区    
mkswap /dev/sd*1
#启用新的swap 分区    
swapon /dev/sd*1
#开机自动挂载
echo ‘/dev/sd*1  swap  swap  defaults  0  0' >> /etc/fstab
2)添加交换文件方式
#创建大小为2G的交换文件
dd if=/dev/zero of=/swapfile bs=1M count=2048
#使用 mkswap 命令来设置交换文件
mkswap /swapfile
#启用交换分区
swapon /swapfile
#使其开机自动挂载
echo ‘/swapfile   swap  swap  defaults  0  0' >> /etc/fstab

3、swap分区永久关闭
参考如下方法:

1.关于swap分区的使用,并在/etc/fstab注释掉swap分区
#swapoff swap分区
#vim /etc/fstab
2.删除swap的lv
#lvremove
3.备份/boot 分区内容
4.检查修改/boot/grub2/grub.cfg及/etc/default/grub内容
确认swap的lv信息已经删除,然后更新grub.cfg的配置文件
#grub2-mkconfig -o /boot/grub2/grub.cfg
5. 重新制作initrd
#mkinird
6. 重启系统
如果您当前有测试环境,建议在测试环境中验证后,在到生产系统中应用
<think>好的,用户的问题是关于在Ubuntu虚拟机扩容时遇到没有swapoff的问题,需要解决方案。首先,我得理解swapoff的作用。swapoff是用于关闭交换分区或交换文件的命令,通常在调整交换空间大小前需要执行,避免系统在使用交换空间时进行修改。 用户可能在扩容时发现无法调整交换分区,因为没有正确关闭交换空间。可能的情况包括:直接使用工具调整分区但未先禁用swap,或者系统自动挂载了交换分区导致操作被锁定。接下来需要思考常见的解决方案步骤。 首先,检查当前交换空间的使用情况。用户可以使用`free -h`或`swapon --show`来确认是否有活动的交换分区。如果有,就需要用swapoff命令关闭它们,可能需要使用sudo权限。 如果用户执行swapoff失败,可能原因包括权限不足、有进程正在使用交换空间,或者交换空间被系统锁定。此时需要终止相关进程,或者重启系统进入恢复模式进行操作。例如,使用`sudo swapoff -a`关闭所有交换空间,如果失败,可能需要检查是否有进程占用,使用`lsof /swapfile`(假设交换文件路径)查找并终止进程。 另外,用户可能在调整分区前没有正确卸载交换分区,导致工具无法调整。此时可能需要先卸载交换分区,调整大小后再重新启用。对于使用交换文件的情况,可能需要先禁用交换文件,调整文件大小,再重新创建并启用。 如果用户使用的是LVM管理分区,扩容步骤可能涉及调整逻辑卷的大小。需要先关闭交换空间,调整逻辑卷,再重新格式化并启用交换空间。 此外,用户可能在扩容过程中遇到依赖问题,比如软件包冲突,如引用[2]中提到的源配置错误导致依赖问题。需要确保系统源正确,避免软件包版本冲突,这可能影响相关工具的正常运行。 最后,可能需要更新initramfs和grub,以确保系统启动时正确识别新的分区布局。例如,使用`sudo update-initramfs -u`和`sudo update-grub`命令。 总结步骤可能是:检查交换状态,关闭交换空间,调整分区或文件大小,重新启用交换,处理依赖问题。需要根据用户的具体情况,比如使用的是交换分区还是交换文件,是否使用LVM等,提供对应的解决方案。</think>### Ubuntu虚拟机扩容swapoff问题解决方案 #### 1. 确认当前swap使用状态 执行命令查看交换空间挂载情况: ```bash free -h && swapon --show ``` 若输出包含`swap`分区或文件,说明系统当前启用了交换空间[^1]。 #### 2. 强制关闭swap(无需swapoff) 若系统提示`swapoff: Not superuser`或缺少swapoff命令,尝试: ```bash sudo swapoff -a # 关闭所有swap分区/文件 sudo systemctl mask dev-sdX.swap # 禁用自动挂载(sdX为swap设备名) ``` #### 3. 调整分区时的特殊处理 若使用**交换文件**扩容: ```bash sudo fallocate -l 4G /swapfile # 创建新交换文件 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile ``` 若调整**物理swap分区**: ```bash sudo parted /dev/sda # 进入分区工具 (parted) resizepart 分区编号 新大小 # 例如resizepart 5 16GB sudo mkswap /dev/sdaX # 重新格式化分区 ``` #### 4. 处理依赖冲突(参考引用[2]) 若出现软件包依赖错误: 1. 检查`/etc/apt/sources.list`中的源是否匹配当前Ubuntu版本 2. 执行: ```bash sudo apt update --fix-missing sudo apt install --fix-broken ``` #### 5. 永久配置(参考引用[3]) 更新fstab配置: ```bash sudo nano /etc/fstab # 注释旧的swap挂载项 # 添加新配置:/swapfile none swap sw 0 0 ``` #### 6. 验证扩容结果 ```bash sudo swapon --show free -h lsblk # 验证分区调整 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值