初学 linux,想问下 /boot 和 /boot/efi,有什么关联?区别?
ubuntu 试了下,只分 / /boot/efi swap,安装成功并启动了,没分 /boot
1
zeroDev 2021-01-26 10:47:59 +08:00 via Android 1
efi 是用来存 efi 文件的文件夹,只要你能让 grub 找得到 efi 文件就行,分不分区,怎么分区都不是那么重要
一般单独分一个 efi 分区挂到 /boot/efi 就行 |
3
zeroDev 2021-01-26 11:21:03 +08:00 via Android
@mingtdlb Linux 系统你可以看做只有文件夹,分区挂载上了也是文件夹罢了
另外只要 boot 能读到 efi 文件就能启动了,你就算只分一个根分区也可以,只是说 boot 软件能读的文件系统很少 |
4
XiaoxiaoPu 2021-01-26 11:28:17 +08:00
boot 分区不是必须的。BIOS 模式下,可以不要 boot 分区,因为这个模式下引导代码在 MBR (主引导记录,位于磁盘第一个扇区)里,启动器会把自己的引导代码写入 MBR 。EFI 模式下,EFI 系统分区是必须的,固件会从 EFI 系统分区加载 EFI 应用。
|
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 分区 |
6
ysc3839 2021-01-27 03:31:56 +08:00 via Android
@Osk 印象中一些使用 uboot 的嵌入式设备会单独分一个 FAT32 的 /boot 分区来存放内核等文件,可能是 uboot 不支持 ext4 等复杂的文件系统?
|
9
AoEiuV020 2021-01-28 10:18:42 +08:00
efi 启动的话独立的 efi 分区基本是必需的,默认挂载到 /boot/efi 里,放引导的 grub,
其他分区都无所谓的, |
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 内但可以忽略错误安装。 |