Debian/Linux系统如何制作swap(虚拟内存)分区?

ShowUNow 发布于 2024-12-04 144 次阅读


写在前面

之前后买华为云服务器为了凑单,不得不加了10G数据盘,结果后面续费每次都必须给这个数据盘续上,并且不能取消续订。这10G大小很尴尬,说大不大,说小不小,非常难受。于是索性直接把这10G数据盘全当做swap分区来用算了。

实现准备:

确认硬盘设备

lsblk

这会显示所有可用的存储设备和它们的分区信息。假设你想将 /dev/sda 硬盘上的某个分区用作 swap 分区。

1.首先,卸载已挂载的分区(如果有)

sudo umount /data

2.创建swap分区:

sudo fdisk /dev/sda

在fdisk中,按照以下步骤操作:

  • 输入 o 创建新的分区表
  • 输入 n 创建新分区
  • 选择 p 创建主分区
  • 选择分区号(如1)
  • 直接回车选择默认起始扇区
  • 输入想要创建的swap分区大小。直接回车选择使用整个磁盘空间
  • 输入 t 改变分区类型
  • 输入 82(Linux swap类型)
  • 输入 w 写入分区表

3.格式化为swap分区

sudo mkswap /dev/sda1

4.启用swap分区

sudo swapon /dev/sda1

5.永久挂载swap,编辑 /etc/fstab

sudo nano /etc/fstab

添加这一行:

/dev/sda1 none swap sw 0 0

6.验证swap状态

sudo swapon --show
free -h

若输出

root@hcss-ecs-db78:~# sudo swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/sda1 partition  10G   0B   -2
root@hcss-ecs-db78:~# free -h
               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       872Mi       708Mi       102Mi       388Mi       842Mi
Swap:            9Gi          0B         9Gi

则说明已成功创建并挂载swap分区,大小为10G。上下两个大小有误差属于正常现象。

如何解除swap分区?

1.禁用swap分区

sudo swapoff /dev/sda1

2.从 /etc/fstab 中移除swap挂载项

sudo nano /etc/fstab

删除之前添加的 /dev/sda1 none swap sw 0 0 这一行

3.使用 fdisk 删除swap分区

sudo fdisk /dev/sda

在 fdisk 中:

  • d 删除分区
  • 选择分区号(通常是1)
  • w 写入更改并退出

4.重新创建分区表(可选)

sudo parted /dev/sda mklabel msdos

5.验证分区状态

lsblk

临时起意搭建的博客,不知道能坚持下去多久。
最后更新于 2024-12-05