V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Lanyangzhi
V2EX  ›  Linux

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

  •  
  •   Lanyangzhi · 35 天前 · 2515 次点击
    这是一个创建于 35 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近受到了 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  
       35 天前 via Android
    cfdisk
    yanqiyu
        2
    yanqiyu  
       35 天前
    没必要在这个地方折腾,要创建 swap 分区只需要他是一个分区+格式化成 swap+写 fstab 就行

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

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

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

    swapon /swap

    再放到 fstab
    june4
        20
    june4  
       34 天前
    现在这时代别搞这个了,真的内存不够用 zram 才是正道
    linhua
        21
    linhua  
       34 天前
    刚开始也是用的 swap ,但是一旦内存用完,开始用 swap 的时候,系统就卡顿。现在用 zram 了,zstd 压缩,设置成 真实内存( 16G ,比较小)的 3 倍,没有出现卡顿的情况了。
    nuk
        22
    nuk  
       34 天前
    那个你输 82 的地方,直接输 swap 就行
    msg7086
        23
    msg7086  
       34 天前
    MBR 里
    82 Linux swap / So
    GPT 里
    19 Linux swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
    mark2025
        24
    mark2025  
       33 天前
    @linhua 3 倍内存是不是大了呢。好像推荐值一般是物理内存 30%-80%
    zjvbqla
        25
    zjvbqla  
       33 天前
    我刚刚也在折腾,但是年纪大了,没耐心搞了。还是装了 Debian 。哈哈
    lucifer9
        26
    lucifer9  
       33 天前
    有 hibernate 需求的话还是需要 swap 的
    xuwen
        27
    xuwen  
       33 天前
    用 zram 当 swap
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2454 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:45 · PVG 23:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.