Ubuntu扩展存储合理分配swap分区


前言

我们在Ubuntu上运行某些大型游戏或者编译一些工程代码的时候,往往会遇到内存或外部存储不够导致编译不成功,例如编译LLVM时需要比较大的内存。

我自己在虚拟机上傻瓜式安装了Ubuntu20,自动分配外存:30GB,内存4GB,单核心的两个处理器,编译llvm到一半就报内存不够(也有可能是swap分区太小),collect2: fatal error: ld terminated with signal 9 [Killed],如下图,Memory分配了8GB,swap分区10GB,还是没有够用。
在这里插入图片描述
本文中将介绍如何更改Ubuntu的存储空间、调整swap分区大小。

ubuntu 可以通过Alt+f2 键入gnome-system-monitor 进入系统监视器 来查看资源占用情况


1. 为Ubuntu扩存(外部存储)

1.1修改存储

  1. Ubuntu处于关机状态,点击硬盘
    在这里插入图片描述

  2. 点击扩展
    在这里插入图片描述

  3. 修改合适的大小
    在这里插入图片描述

1.2 初始化分配的磁盘

  1. 安装分区管理工具
sudo apt-get install gparted
sudo gparted

在这里插入图片描述

  1. 右键根部分区
    在这里插入图片描述
  2. resize,将分区拖到最大
    在这里插入图片描述
  3. 再右键子集目录resize,同样的操作
    在这里插入图片描述
  4. 最后选勾即可完成
    在这里插入图片描述

2.为Ubuntu调整swap分区大小

Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

  1. 找到swap 文件位置
cat /proc/swaps

在这里插入图片描述
说明swap文件名为swapfile ,位于根目录下/

  1. 更改swap大小
# 停止swap文件
sudo swapoff /swapfile
# 删除swap文件
sudo rm /swapfile
# 创建新的swap文件,以创建10GB大小为例
sudo dd if=/dev/zero of=/swapfile bs=1GB count=10

Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=<关键字>,关键字可以有以下11种:
conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swap:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
--help:显示帮助信息
--version:显示版本信息
  1. 启用新的swap文件
# 先修改文件权限
sudo chmod 600 /swapfile

# 然后设置为swap文件
sudo mkswap -f /swapfile

# 最后启用swap文件
sudo swapon /swapfile
  1. 查看当前的swap文件大小
free --giga
用法:
 free [选项]

选项:
 -b, --bytes         以字节显示输出
     --kilo          使用千字节显示输出
     --mega          使用兆字节显示输出
     --giga          使用吉字节显示输出
     --tera          使用太字节显示输出
     --peta          show output in petabytes
 -k, --kibi          show output in kibibytes
 -m, --mebi          show output in mebibytes
 -g, --gibi          show output in gibibytes
     --tebi          show output in tebibytes
     --pebi          show output in pebibytes
 -h, --human         显示人类可读的输出
     --si            使用 1000 的倍数而非使用 1024
 -l, --lohi          show detailed low and high memory statistics
 -t, --total         show total for RAM + swap
 -s N, --seconds N   repeat printing every N seconds
 -c N, --count N     repeat printing N times, then exit
 -w, --wide          宽版输出

     --help     显示此帮助信息并退出
 -V, --version  显示程序版本然后离开

总结

  • 分享即学,方便日后查阅。
  • 参考:https://blog.csdn.net/qq_35395195/article/details/125616388
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟机Ubuntu分配内存的方式可以通过更改存储空间和调整swap分区大小来实现。在虚拟机关机后,可以对虚拟机的硬盘空间进行调整。具体步骤如下: 1. 关闭虚拟机Ubuntu。 2. 调整硬盘空间大小,将原先的空间扩大至所需大小(例如从20GB扩大至50GB)。 3. 启动虚拟机Ubuntu,并进入系统。 4. 打开终端,运行命令`sudo swapoff -a`来关闭swap分区。 5. 运行命令`sudo fdisk /dev/sda`来编辑分区表。 6. 输入`d`删除原先的swap分区。 7. 输入`n`创建一个新的swap分区,按照提示选择分区类型和大小(例如,选择Linux swap类型,设置大小为之前分配的30GB)。 8. 输入`w`保存并退出分区表编辑。 9. 运行命令`sudo mkswap /dev/sda1`来创建新的swap分区。 10. 运行命令`sudo swapon -a`来启用swap分区。 11. 运行命令`sudo nano /etc/fstab`来编辑文件系统表。 12. 找到swap分区的行(可能是`/dev/sda1 none swap sw 0 0`),确保其UUID与新创建的swap分区一致。 13. 按下Ctrl + X,然后按Y保存并退出文件系统表编辑。 通过以上步骤,你可以成功调整虚拟机Ubuntu存储空间和swap分区大小,以满足你的需求。请确保在进行这些操作之前备份重要数据,并谨慎操作。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Ubuntu扩展存储合理分配swap分区](https://blog.csdn.net/qq_43566431/article/details/129867004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [虚拟机为Ubuntu分配空间](https://blog.csdn.net/CHYabc123456hh/article/details/124788909)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值