这是对 Linux 正确的使用方法么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
shuiguomayi
V2EX    Linux

这是对 Linux 正确的使用方法么?

  •  
  •   shuiguomayi 2023-12-28 13:15:22 +08:00 5256 次点击
    这是一个创建于 652 天前的主题,其中的信息可能已经有所发展或是发生改变。
    划分单独的分区
    - /boot/efi (fat 分区)
    - /home (ext4 或者 xfs)

    1. 使用基于 Release 发行的版本: Fedora, Ubuntu. 直到有一天发现你当前的系统版本已经无法安装你需要的软件了, 说明你该升级系统了, 若能够原地升级则升级, 若升挂了则重装系统.

    2. 使用 manjaro 这种滚动更新的版本, 每个月更新一下, 直到有一天滚挂了, 如果能轻易修复则 Google 查一查资料修复, 如果不容易修复, 直接重装.
    28 条回复    2023-12-29 01:40:47 +08:00
    NessajCN
        1
    NessajCN  
       2023-12-28 13:24:27 +08:00
    如果你只有一块硬盘,/home 不需要单独分区
    如果你有两块及以上的硬盘,
    可以把其中一块(最好是 ssd )分两个区挂载到/boot 和/ ,
    另一块容量大点的挂载到 /home 放用户文件
    yolee599
        2
    yolee599  
       2023-12-28 13:24:46 +08:00 via Android   1
    我是这样:
    - /boot
    - /

    不分 /home ,因为分少了不够用,分多了浪费
    xieshaohu
        3
    xieshaohu  
       2023-12-28 13:28:04 +08:00
    默认分区,去掉/home 单独分区,就是完美的。
    mokiki
        4
    mokiki  
       2023-12-28 13:34:06 +08:00
    不是。
    自己试了觉得合适才是正确的。
    zjp
        5
    zjp  
       2023-12-28 13:34:42 +08:00
    https://wiki.archlinuxcn.org/wiki/EFI_系统分区#挂载分区
    上周折腾了会分区,最后选择将 EFI 系统分区 到 /boot 。内核直接放在 EFI 分区简单省事
    sunnist
        6
    sunnist  
       2023-12-28 13:35:50 +08:00
    没有 /swap 分区??
    shuiguomayi
        7
    shuiguomayi  
    OP
       2023-12-28 13:39:25 +08:00
    @yolee599 单独分出 /boot 和 /home 是为了重装系统方便, 个人数据和配置文件都在/home 下保留.
    @xieshaohu
    @NessajCN
    yolee599
        8
    yolee599  
       2023-12-28 13:52:09 +08:00
    其他发行版不太懂,ArchLinux 是可以在保留 /home 目录重装系统的:
    https://wiki.archlinux.org/title/Partitioning#/home
    NessajCN
        9
    NessajCN  
       2023-12-28 13:56:36 +08:00
    @shuiguomayi 请尽快抛弃用 Windows 后遗留的不良观念和习惯
    vcn8yjOogEL
        10
    vcn8yjOogEL  
       2023-12-28 13:59:12 +08:00
    MicroOS/Silverblue
    kongkongyzt
        11
    kongkongyzt  
       2023-12-28 14:10:41 +08:00
    只有 /boot/efi 和 / 这两个分区
    libook
        12
    libook  
       2023-12-28 14:25:33 +08:00
    实际上没有“正确的使用方法”,只有在充分了解 Linux 的文件系统、结构之后根据需求来规划和使用。

    例如。我目前的主力机,只有一块 512G 的 NVMe:
    - EFI 只支持一些简单的文件系统,如 FAT32 ,因为我打算主要使用一些高级文件系统,所以我需要给 EFI 单独分一个分区。
    - 根目录我选择 Btrfs ,一方面是因为对这个文件系统比较熟悉,另一方面是想要使用它的子卷和快照功能。
    - 因为是笔记本,我需要使用休眠机制来将内存数据存在硬盘上,所以我需要大于等于内存大小的 Swap 。
    那么我的分区就是:
    - 500M FAT32 /boot/efi
    - 434GB Btrfs /
    - 64GB Swap

    但我家里的 NAS 的情况就会有一些区别:
    - 使用 U 盘引导,所以系统盘上并不需要给 boot 或 EFI 单独的分区。
    - 系统以只读模式完全运行在内存里,所以系统盘也不需要使用高级文件系统。
    - 内存足够大,也不需要 Swap 分区。
    - 存储盘全都挂载到/mnt 下。

    一些高级文件系统有子卷和限额机制,如果未来需要调整的话比分区更灵活。比如你希望单独管理 home 可以把/home 分为一个子卷。

    重装系统可以不像过去的 Windows 那样需要格式化系统盘,哪怕系统无法启动也可以使用 liveCD 进入文件系统重装和修复软件包。

    话说我现在用 Windows 也不特意分区了,我现在只有在同一块盘上需要使用不同文件系统的时候才会考虑分区,比如我的移动硬盘一部分是加密的 NTFS ,另一部分是不加密的 exFAT 。
    dog82
        13
    dog82  
       2023-12-28 14:30:35 +08:00
    原来的 linux 服务器,不到迫不得已(比如安全漏洞),绝对不升级。
    现在都是云服务器了,我只管用
    EvineDeng
        14
    EvineDeng  
       2023-12-28 15:15:33 +08:00
    赞同 #12 的说法,分区没有对错,只有确定的场景下最合适的分区。如果你用 ext4/xfs ,并且有重装系统的可能性,那么/home 单独分出来会比较合适,并且未来想更换其他文件系统,这种方式也可以在完全保留旧系统的数据的同时原地安装系统,缺点就是如果 / 分区或者 /home 分区分小了未来没法调整。我之前就是这种方式,保留原来 ext4 分区的/home 数据的同时原地重装并更换到了 btrfs ,用 btrfs 之后,除 efi 分区外就没有分区的必要了,所以我现在是除 efi 分区外,/、/home 、/swap 、/var 、/.snapshots 全部以子卷形式共同使用同一个分区,这样可以最大化利用磁盘空间。虽然是同一个分区,但由于子卷的存在,即使重装系统,也可以保留旧系统中的/home 数据。
    happyxhw101
        15
    happyxhw101  
       2023-12-28 15:59:58 +08:00
    当然要划分 /home, 这样重装系统的时候只需要格式化 / 就可以了,用 linux, 怎少了重装系统
    shuiguomayi
        16
    shuiguomayi  
    OP
       2023-12-28 16:18:27 +08:00 via iPhone
    @libook
    @EvineDeng
    感谢对 btrfs 的推荐,请问,这个 fs 稳定吗?有没有什么坑需要注意的?
    shuiguomayi
        17
    shuiguomayi  
    OP
       2023-12-28 16:19:35 +08:00 via iPhone
    @EvineDeng
    @libook

    linux 和 macos 在分区这点上,越来越像了
    libook
        18
    libook  
       2023-12-28 16:44:25 +08:00
    @shuiguomayi #16 我用 Btrfs 少说有五六年了,用在系统盘,也用在 NAS 存储盘,没遇到过什么问题,在我的视角来说是稳定的。
    历史上 Btrfs 曾经被一些发行版用作默认的文件系统,至少说明当时一些人认为它是比较稳定的。
    Linux 从 v5 和 v6 版本都对 Btrfs 的性能进行了优化,目前一些情况下它的性能表现会比其他一些文件系统好,感兴趣可以去网上找一些压测数据。

    单盘使用和 RAID-0/RAID-1 是比较稳定的,像 unRAID 系统的 Cache Pool 就默认推荐 Btrfs 的 RAID-1 ,其他 RAID 模式处于试验阶段,如果对 RAID 需求较高可以考虑 ZFS 和 XFS 。

    我用 Btrfs 主要是想用它的子卷、快照、COW 和透明压缩,这些功能可能其他一些文件系统也可以提供,也有一些其他文件系统的功能 Btrfs 还没有,具体根据需求选择就行。

    快照可以增量备份,我用 btrbk 脚本自动将一块盘上的子卷增量备份到备份盘中,然后自动打快照,并最多保留近 7 天的历史。

    要说坑,应该也不算坑,就是如果你想在根目录下使用 Btrfs 的各种特性,最好也把根目录创建为一个子卷。

    如果没有高级功能的需求,也可以用一些久经考验的文件系统,比如 Ext4 ,文件系统越简单故障恢复也越容易。
    xieshaohu
        19
    xieshaohu  
       2023-12-28 17:25:09 +08:00
    @libook #12 赞同 Linux 的分区还是需要根据自己的情况去划分,在/挂载点和/home 挂载点大小不确定或在 SSD 上使用 Linux 时,个人习惯不单独挂载/home ,大了、小了调整起来麻烦。

    @happyxhw101 #15 至于重装系统,用 Linux 之后还没有碰到过要重装的,除非系统被 rm 了。否则都有办法恢复,毕竟一切皆文件。

    @shuiguomayi #17 macOS 从 Catalina 开始区分系统卷和数据卷,操作系统会在系统卷的快照上 run 起来,但是看磁盘管理工具,这种系统卷和数据卷的概念又不同于 Linux 和 Windows 里面的分区概念。感觉和 PD 虚拟机 在 macOS 上的文件系统更像,是个影子文件,分配多少空间并不会真正占用空间。
    minami
        20
    minami  
       2023-12-28 17:42:29 +08:00
    Linux 正确的使用方法是扔进虚拟机/容器里面
    sleepm
        21
    sleepm  
       2023-12-28 17:42:40 +08:00
    车到山前必有路
    出现问题,翻日志,尝试修,复原
    没必要轻易就重装
    重装不是解决问题的办法,是没办法的办法
    liuran001
        22
    liuran001  
       2023-12-28 19:01:06 +08:00 via Android
    我是
    - /boot
    - /swap
    - / & /home (btrfs)
    btrfs 有很多高级功能,比如我这边把 /home 单独分一个子卷,这样方便管理,同时还能和根目录共用存储空间
    打快照也方便,比如我用 Arch Linux 滚挂了,只需要回滚一下快照即可
    btrfs 虽然使用率不及 ext4 ,但目前看来已经是一个相对完善和稳定的格式了
    kuanat
        23
    kuanat  
       2023-12-28 19:23:25 +08:00
    分区话题比较复杂,一般性的建议是用发行版默认的文件系统和分区表。

    另外 ESP 比较特殊,取决于 firmware 支持,大部分要求是 FAT32 ,在苹果电脑上要苹果的那个格式。挂载点现在推荐 /efi 或者 /boot ,特别是多系统引导环境,绝大多数情况下 /boot/efi 一样用。

    发行版的 Point/Rolling Release 现在的分界线不是特别明显了,往严格里面说 Debian 这种算 Point Release ,而 Arch 这种算 Rolling ,像 Ubuntu/Fedora 介于二者之间。可能看 LTS 支持会更靠谱一些。我个人的分类是看官方维护的内核是只 backport 补丁,还是会追 mainline 版本。Rolling Release 也可以假装当 Point Release 来用,只要把官方内核版本锁了就行。

    如果你希望系统层面上支持回滚,可以考虑 Fedora Silverblue 这类基于 ostree 的,或者 NixOS 这种声明式的,核心思想都是 Immutable system partition ,升级过程类似安卓设备上常见的 A/B partitions 。
    EvineDeng
        24
    EvineDeng  
       2023-12-28 19:32:36 +08:00
    @shuiguomayi #16
    1. 如果/boot 不是独立的分区,而是跟着根分区的话,那么不能使用 grub 的 GRUB_SAVEDEFAULT 功能;
    2. 推荐的分区可以参考 https://wiki.archlinux.org/title/Snapper#Suggested_filesystem_layout 如果不熟悉可以将/var/log 单独作为子卷,我是直接将/var 直接作为子卷,但是我这样必须将软件包的数据库(比如 arch 的 /var/lib/pacman ,debian 的/var/lib/apt 软连接到根子卷下,这样才能恢复旧的 snapshots ;
    3. 我也用 swap 来休眠,单独挂载了 @swap 子卷。先看完 https://wiki.archlinux.org/title/Btrfshttps://wiki.archlinux.org/title/Snapper 再动手;
    4. 推荐/.snapshots 单独作为顶级子卷 @snapshots
    5. 一些好用的工具:grub-btrfs btrfs-assistant btrfsmaintenance ;
    6. 建议先虚拟机熟悉操作后再动手。
    superchijinpeng
        25
    superchijinpeng  
       2023-12-28 19:36:56 +08:00
    不需要分区
    Cooky
        26
    Cooky  
       2023-12-28 19:46:17 +08:00
    个人习惯性分区

    nvme0n1
    ├─nvme0n1p1 /boot
    ├─nvme0n1p2 /
    ├─nvme0n1p3 /opt
    ├─nvme0n1p4 /var
    ├─nvme0n1p5 [SWAP]
    └─nvme0n1p6 /home
    shuiguomayi
        27
    shuiguomayi  
    OP
       2023-12-28 20:35:43 +08:00 via iPhone
    @liuran001 滚挂了回退,这个办法不错
    bczhc
        28
    bczhc  
       2023-12-29 01:40:47 +08:00
    Archlinux rolling ,EFI 分个区,里面放好几个内核,只要一个内核能进系统就能救回来(

    用 Btrfs ( CoW 爽的!不过现在有个新的 Bcachefs ,还不知道怎样)创建/home 和/root 的子卷。系统坏了什么的直接回滚(虽然我系统到现在一次没挂过,快照主要用于瞎折腾,折腾不来想放弃,直接回滚到之前清爽的系统……)
    甚至,系统启动时直接修改`rootflags=subvol=`参数就能决定进哪个系统。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5148 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 09:21 PVG 17:21 LAX 02:21 JFK 05:21
    Do have faith in what you're doing.
    ubao 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