如何使用 fdisk 创建正确的 swap 分区?

2025 年 6 月 14 日
 Lanyangzhi

最近受到了 arch 的感召,尝试装一个 arch 玩玩,按照说明进行安装和分区
感觉 archwiki 还是不太适合我这样的,用了 ds 辅助我安装。分区时 ds 说

4. 创建 Swap 分区( 4GB )
输入 n 新建第二个分区。

选择分区类型(主分区或逻辑分区,默认直接回车)。

起始扇区直接回车(自动接在上一个分区之后)。

结束扇区输入 +4G 。

设置分区类型:

输入 t → 输入 2 (选择分区号)→ 输入 82 ( Linux Swap 的类型码)。

我照做,得到了

之后我尝试了使用82,8200作为类型码,均显示linux root verity(s390)
查询 guid 是{7AC63B47-B25C-463B-8DF8-B4A94E6C90E1}(s390)
之后我选择直接写swap作为类型码,这次类型成功改为了 swap ,但 guid 没有发生变化,同时出现了以下状况

(guid 不对,但仍然被读取为swap,且在 arch 对 s390 修改类型时提示 unchanged,在 ubuntu 上对 netbsd 修改时提示 changed)
我有点郁闷,打开了 ubuntu 做测试,结果和 arch 是一样的,只不过 82 代表的类型不同了{2DB519EC-B10F-11DC-B99B-0019D1879648}(netbsd)

最后的最后,我在 fdisk 里查询类型码,ubuntu 和 arch 均显示为 19 ,同时在 oracle 的指南里也写了使用 fdisk 的 82 获得 swap 分区

作为一个'用了'十年 Linux 还在查命令的菜鸟,我选择把问题抛给各路 dalao😅

4376 次点击
所在节点    Linux
27 条回复
alsa
2025 年 6 月 14 日
cfdisk
yanqiyu
2025 年 6 月 14 日
没必要在这个地方折腾,要创建 swap 分区只需要他是一个分区+格式化成 swap+写 fstab 就行

想要遵循什么管理的话是分区类型 8200 但是风趣 UUID 是 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F (这两个是独立的,要分别调)
sagaxu
2025 年 6 月 14 日
内存都 16G/32G 起步了,你搞个 4G 的 swap 毫无意义啊
ByteCat
2025 年 6 月 14 日
只是安装的话 archinstall 已经很方便了;
swapfile 感觉比 swap 分区更灵活,但如果需要硬盘休眠好像另说
donaldturinglee
2025 年 6 月 14 日
不会 fdisk 建议直接用 cfdisk
momocraft
2025 年 6 月 14 日
短的 parttype 是 MBR 分区表的,长的是 GPT 分区表的
momocraft
2025 年 6 月 14 日
另外 parttype 不对同样可以 mkswap 和 swapon ,不是很重要

GPT 设置正确的 type 可以不写 fstab 自动 swapon
WhatTheBridgeSay
2025 年 6 月 14 日
1. swap 没必要
2. swap 可以是个文件 swap.img 并非必须是个磁盘分区
unused
2025 年 6 月 14 日
类型不重要,直接 swapon 然后 genfstab
baobao1270
2025 年 6 月 14 日
1. 建议用 cfdisk
2. 分区类型直接用 Linux Filesystem 也行,Linux 内核会自动识别
3. 分区为 Linux Filesystem 后直接 mkswap /dev/sda2 && swapon /dev/sda2 就行,然后添加对应的 fstab
baobao1270
2025 年 6 月 14 日
顺便推推我写的 arch linux installer - lty.vc/archinst
Cooky
2025 年 6 月 14 日
19 才是 Linux swap ,怎么成了 82 了
Cooky
2025 年 6 月 14 日
ds 和你查到的都是非常老的版本的 fdisk
sleepm
2025 年 6 月 14 日
作为一个手欠删了 swap 导致开了机,因为找不到 swap 的过来人
给 swap 设置 uuid 用 swaplabel
https://man7.org/linux/man-pages/man8/swaplabel.8.html

swap 本来就是一个文件,没必要专门分个区
sleepm
2025 年 6 月 14 日
导致开不了机
lucifer9
2025 年 6 月 14 日
如果你磁盘是 MBR 模式的话,那确实应该输入 82.
但是图里 fdisk 显示的是类似 “Linux swap”、“Linux root verity (S390)” 这样的 GPT 分区别名而不是传统的 MBR 0xxx 代码,这说明磁盘是 GPT 格式。而 fdisk 会自动检测磁盘的分区表类型,于是就工作在 GPT 模式。这个时候 fdisk 让输入的是别名列表里的条目对应的第几条那个数字( 19 )或者是直接输入 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F 。
另外,GPT 格式磁盘最好用 gdisk 来搞,这个时候就可以输入 8200 ,比较符合习惯
expy
2025 年 6 月 14 日
还是用 zram 吧
KamenReborn
2025 年 6 月 14 日
不要在这里用 ai ,因为你不知道它什么时候就会胡言乱语,现在 archinstall 也非常好用了
webcape233
2025 年 6 月 15 日
swapfile 吧 falloc -l 8G /swap
mkswap /swap
chmod 600 /swap

swapon /swap

再放到 fstab
june4
2025 年 6 月 15 日
现在这时代别搞这个了,真的内存不够用 zram 才是正道

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1138590

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX