如何使用 fdisk 创建正确的 swap 分区? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Lanyangzhi
V2EX    Linux

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

  •  
  •   Lanyangzhi 2025 年 6 月 14 日 3961 次点击
    这是一个创建于 316 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4. 创建 Swap 分区( 4GB ) 输入 n 新建第二个分区。 选择分区类型(主分区或逻辑分区,默认直接回车)。 起始扇区直接回车(自动接在上一个分区之后)。 结束扇区输入 +4G 。 设置分区类型: 输入 t → 输入 2 (选择分区号)→ 输入 82 ( Linux Swap 的类型码)。 

    我照做,得到了
    zZPbc.png
    之后我尝试了使用82,8200作为类型码,均显示linux root verity(s390)
    查询 guid 是{7AC63B47-B25C-463B-8DF8-B4A94E6C90E1}(s390)
    之后我选择直接写swap作为类型码,这次类型成功改为了 swap ,但 guid 没有发生变化,同时出现了以下状况
    zZDi9.png zZQnp.png
    (guid 不对,但仍然被读取为swap,且在 arch 对 s390 修改类型时提示 unchanged,在 ubuntu 上对 netbsd 修改时提示 changed)
    我有点郁闷,打开了 ubuntu 做测试,结果和 arch 是一样的,只不过 82 代表的类型不同了{2DB519EC-B10F-11DC-B99B-0019D1879648}(netbsd)
    zZWB6.png

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

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

    27 条回复    2025-06-16 14:08:27 +08:00
    alsa
        1
    alsa  
       2025 年 6 月 14 日 via Android
    cfdisk
    yanqiyu
        2
    yanqiyu  
       2025 年 6 月 14 日
    没必要在这个地方折腾,要创建 swap 分区只需要他是一个分区+格式化成 swap+写 fstab 就行

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

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

    swap 本来就是一个文件,没必要专门分个区
    sleepm
        15
    sleepm  
       2025 年 6 月 14 日
    导致开不了机
    lucifer9
        16
    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
        17
    expy  
       2025 年 6 月 14 日
    还是用 zram 吧
    KamenReborn
        18
    KamenReborn  
       2025 年 6 月 14 日
    不要在这里用 ai ,因为你不知道它什么时候就会胡言乱语,现在 archinstall 也非常好用了
    webcape233
        19
    webcape233  
       2025 年 6 月 15 日 via iPhone
    swapfile 吧 falloc -l 8G /swap
    mkswap /swap
    chmod 600 /swap

    swapon /swap

    再放到 fstab
    june4
        20
    june4  
       2025 年 6 月 15 日
    现在这时代别搞这个了,真的内存不够用 zram 才是正道
    linhua
        21
    linhua  
       2025 年 6 月 15 日
    刚开始也是用的 swap ,但是一旦内存用完,开始用 swap 的时候,系统就卡顿。现在用 zram 了,zstd 压缩,设置成 真实内存( 16G ,比较小)的 3 倍,没有出现卡顿的情况了。
    nuk
        22
    nuk  
       2025 年 6 月 15 日
    那个你输 82 的地方,直接输 swap 就行
    msg7086
        23
    msg7086  
       2025 年 6 月 15 日
    MBR 里
    82 Linux swap / So
    GPT 里
    19 Linux swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
    mark2025
        24
    mark2025  
       2025 年 6 月 16 日
    @linhua 3 倍内存是不是大了呢。好像推荐值一般是物理内存 30%-80%
    zjvbqla
        25
    zjvbqla  
       2025 年 6 月 16 日
    我刚刚也在折腾,但是年纪大了,没耐心搞了。还是装了 Debian 。哈哈
    lucifer9
        26
    lucifer9  
       2025 年 6 月 16 日
    有 hibernate 需求的话还是需要 swap 的
    kazumaa
        27
    kazumaa  
       2025 年 6 月 16 日
    用 zram 当 swap
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2655 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 79ms UTC 10:43 PVG 18:43 LAX 03:43 JFK 06:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86