想要把 grub2 改装在一个单独分区

我的笔记本有 win8 (64bit) 和 opensuse,都是通过 EFI 启动。
opensuse 目前的是 15.0,从 13 一路升级上来的。
现在想通过全新安装 opensuse 15.1 ,不从旧版升级。
原本的挂载和分区方式是//boot/efi分开,而//boot/grub2/boot/grub在同一分区。

现在想在不动 win8 的情况下重装 opensuse 顺便把 grub2 分到一个单独分区,那么,仅需要把/boot/grub2装到一个单独分区就行了吗?/boot/grub要不要管(它是干嘛的?)

用 diskgenius 删除 EFI 分区的 openSUSE 目录 ,再删掉 UEFI 启动引导的 openSUSE ,就可以重装全新了。

grub2 现在有点复杂我也理不清了,反正只需要 /boot/efi/ 分区就可以正常启动,我一直这么装。

/boot/efi 没必要单独分区,已有 windows 系统就已有 EFI 分区,咱挂载上去就行,千万别格式化!

再删掉 UEFI 启动引导的 openSUSE

这一项是储存在 BIOS 芯片里的么?用什么软件删它

/boot 分个 100M 足够了 我刚折腾完 记得用 parted 标记成 esp

1赞

efibootmgr 应该叫这个

我一年前专门又买了块硬盘来装 Linux,因为我的 windows 盘是 nvme 盘而且有 bitlocker,配置起来极其麻烦

我装的也是默认的,只分了 / 和 /boot/efi 分区,/boot/efi 默认只有 100M,貌似只能有 1 个还原点
我的 /boot/efi 分区在磁盘上的位置在 / 前,在不重装的情况下,能不能增加 /boot/efi 的空间大小,我想把 /boot/efi 改成 500M???

也是 diskgenius 有个菜单叫设置 UEFI 启动选项

完全没必要 /boot 里面俩系统共存都用不了百兆

不是多系统问题,是你更新系统,它里面会有老的版本的,像我跟新内核到 5.5, 它里面会有 5.5 之前的内核,grub 启动时可以选。
但是 /boot/efi 默认 100M,里面只有一个最新 ,一个比较新的,不能再多了

内核是在你的 /boot 目录下,不是 /boot/efi

/boot作一个分区,包含/boot/grub2在其中的,我不明白,这样内核不是和 grub 在同一分区了?

如果我要装多个 Linux 发行版,那不就把不同发行版的内核混在一起了?各发行版各自维护/boot/grub2的时候不会互相覆盖别人的 grub?

我的想法是搞一个单独的 grub,不管我同时装多少个 Linux 发行版,它都能独立存在。能不能实现?我是 boot 菜鸟

'/boot’就是用来放内核的,不用单独分区
'/boot/efi’是一个空文件夹,用来挂载 EFI 分区
EFI 分区必须单分

@moonjourney @howdoudo @tommyvct 晚上我回家看看,我当时记得安装时,选的自己分区,efi 分区 我记得挂载点 只能选 /boot/efi

没看到 /boot/grub,只有 grub2。
grub 的可执行文件,在 efi 下是放在 efi 分区里的。其它 mod 字体背景 menu 之类的是放在 /boot/grub2/ 里的。

@moonjourney @howdoudo @tommyvct @runapp
看了下 /boot/efi/EFI/opensuse/ 目录下有 initrd vmlinuz 等文件,占了 60 多 M


硬盘挂载:
/dev/sdb5 109G 17G 87G 16% /
/dev/sdb2 96M 89M 7.8M 92% /boot/efi

你是不是自己运行过 grub2 命令?正常应是这样 ……

Screenshot_20200119_192047

你这么一说,好像真的运行过。。。。
现在还能改过来吗???
我仔细看了,貌似 /boot/efi/EFI/opensuse/ 下面的都是旧的,我手动删了试试

grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda
内核版本那个可以修改配置文件保留几个版本的 具体那个我给忘记了

我的 leap 没有,就是标准的:

./boot
./boot/bootx64.efi
./boot/fallback.efi
./opensuse
./opensuse/MokManager.efi
./opensuse/grub.efi
./opensuse/shim.efi
./opensuse/boot.csv
./opensuse/grub.cfg
./opensuse/grubx64.efi

shim.efi 应该是开了可信引导才会有?MokManager 我倒是以前没见过。
你这个应该是不小心跑 mkinitrd 的时候什么东西设置错了跑到 efi 分区了。