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

Linux 分区

  •  
  •   mingtdlb · 2021-01-26 10:35:18 +08:00 · 2145 次点击
    这是一个创建于 1157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初学 linux,想问下 /boot 和 /boot/efi,有什么关联?区别?

    ubuntu 试了下,只分 / /boot/efi swap,安装成功并启动了,没分 /boot

    10 条回复    2021-02-07 13:08:15 +08:00
    zeroDev
        1
    zeroDev  
       2021-01-26 10:47:59 +08:00 via Android   ❤️ 1
    efi 是用来存 efi 文件的文件夹,只要你能让 grub 找得到 efi 文件就行,分不分区,怎么分区都不是那么重要
    一般单独分一个 efi 分区挂到 /boot/efi 就行
    mingtdlb
        2
    mingtdlb  
    OP
       2021-01-26 11:10:45 +08:00
    @zeroDev 正常不是要分 boot 分区么,我只分了 efi
    zeroDev
        3
    zeroDev  
       2021-01-26 11:21:03 +08:00 via Android
    @mingtdlb Linux 系统你可以看做只有文件夹,分区挂载上了也是文件夹罢了
    另外只要 boot 能读到 efi 文件就能启动了,你就算只分一个根分区也可以,只是说 boot 软件能读的文件系统很少
    XiaoxiaoPu
        4
    XiaoxiaoPu  
       2021-01-26 11:28:17 +08:00
    boot 分区不是必须的。BIOS 模式下,可以不要 boot 分区,因为这个模式下引导代码在 MBR (主引导记录,位于磁盘第一个扇区)里,启动器会把自己的引导代码写入 MBR 。EFI 模式下,EFI 系统分区是必须的,固件会从 EFI 系统分区加载 EFI 应用。
    Osk
        5
    Osk  
       2021-01-26 11:47:24 +08:00 via Android   ❤️ 2
    先说为啥要 /boot 单独 (部分理由):
    1, 印象中是老旧电脑 bios bug,无法读超过一定范围的 lba(好像是 512MB 后),所以为了兼容搞一个独立的小容量的 boot 分区。

    2. / 分区用了过多骚操作,比如 lvm,xxx-cache, sub vol, luks 等,bootloader(grub, syslinux 等)无法处理这么复杂的情况,所以创建一个纯粹的分区或 bootloader 支持操作的独立 boot 分区 放内核和 initramfs 。


    传统引导,grub2 为例:mbr -> mbr 后面的嵌入区的代码(grub) -> 内核
    efi 引导: /efi/grub/shim.efi 或 grub.efi -> 内核

    关键就是: grub 的代码要能读取到内核等需要的文件,不支持才需要 /boot 分区
    ysc3839
        6
    ysc3839  
       2021-01-27 03:31:56 +08:00 via Android
    @Osk 印象中一些使用 uboot 的嵌入式设备会单独分一个 FAT32 的 /boot 分区来存放内核等文件,可能是 uboot 不支持 ext4 等复杂的文件系统?
    ungrown
        7
    ungrown  
       2021-01-27 11:48:01 +08:00
    @ysc3839 #6 有些引导程序确实不支持 ext4,有些甚至连 NTFS 都不支持
    Osk
        8
    Osk  
       2021-01-27 12:29:18 +08:00 via Android
    @ysc3839 新版 u-boot 支持,可能老版不支持?
    AoEiuV020
        9
    AoEiuV020  
       2021-01-28 10:18:42 +08:00
    efi 启动的话独立的 efi 分区基本是必需的,默认挂载到 /boot/efi 里,放引导的 grub,
    其他分区都无所谓的,
    LinusXu
        10
    LinusXu  
       2021-02-07 13:08:15 +08:00
    /boot/efi 一般要单独分出来一个 FAT 的分区在硬盘开头处( macOS 的磁盘工具在操作 GPT 硬盘时会自动并强制创建这一分区),但如果 grub 有配置应该也支持非 FAT 的分区。
    /boot 的话如果 /在 LVM 里面的话似乎是建议单独放在 LVM 之外但不分也可以安装。

    之前装 Fedora 的时候安装器有专门给 Mac 的优化(我是 15 的 13' MBP ),会尝试创建一个特殊文件系统的 EFI 分区,然后它有警告 /boot 在 LVM 内但可以忽略错误安装。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   957 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:43 · PVG 05:43 · LAX 14:43 · JFK 17:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.