Linux 分区

2021-01-26 10:35:18 +08:00
 mingtdlb

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

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

2170 次点击
所在节点    Linux
10 条回复
zeroDev
2021-01-26 10:47:59 +08:00
efi 是用来存 efi 文件的文件夹,只要你能让 grub 找得到 efi 文件就行,分不分区,怎么分区都不是那么重要
一般单独分一个 efi 分区挂到 /boot/efi 就行
mingtdlb
2021-01-26 11:10:45 +08:00
@zeroDev 正常不是要分 boot 分区么,我只分了 efi
zeroDev
2021-01-26 11:21:03 +08:00
@mingtdlb Linux 系统你可以看做只有文件夹,分区挂载上了也是文件夹罢了
另外只要 boot 能读到 efi 文件就能启动了,你就算只分一个根分区也可以,只是说 boot 软件能读的文件系统很少
XiaoxiaoPu
2021-01-26 11:28:17 +08:00
boot 分区不是必须的。BIOS 模式下,可以不要 boot 分区,因为这个模式下引导代码在 MBR (主引导记录,位于磁盘第一个扇区)里,启动器会把自己的引导代码写入 MBR 。EFI 模式下,EFI 系统分区是必须的,固件会从 EFI 系统分区加载 EFI 应用。
Osk
2021-01-26 11:47:24 +08:00
先说为啥要 /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
2021-01-27 03:31:56 +08:00
@Osk 印象中一些使用 uboot 的嵌入式设备会单独分一个 FAT32 的 /boot 分区来存放内核等文件,可能是 uboot 不支持 ext4 等复杂的文件系统?
ungrown
2021-01-27 11:48:01 +08:00
@ysc3839 #6 有些引导程序确实不支持 ext4,有些甚至连 NTFS 都不支持
Osk
2021-01-27 12:29:18 +08:00
@ysc3839 新版 u-boot 支持,可能老版不支持?
AoEiuV020
2021-01-28 10:18:42 +08:00
efi 启动的话独立的 efi 分区基本是必需的,默认挂载到 /boot/efi 里,放引导的 grub,
其他分区都无所谓的,
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 内但可以忽略错误安装。

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

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

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

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

© 2021 V2EX