- 主题:如何生成/boot/efi/EFI/opensuse/grub.cfg
最近安装了opensuse15.4,选择加密硬盘,安装程序自动分两个区,efi分区和luks加密分区,/boot直接放在luks分区。
这和以前的不一样,以前是生成efi分区,boot分区,luks加密分区,启动的时候efi从efi分区读到文件后就寻找/boot分区的/boot/grub2/grub.cfg文件。
现在opensuse是启动的时候首先从EFI分区读取/EFI/opensuse/grub.cfg文件,然后提示输入密码打开luks分区,输入密码后grub打开luks分区,加载/boot里的grub,才开始正常启动。
EFI分区的/EFI/opensuse文件夹曾经被我删过,用rescue的方法进去grub2-install /dev/sda和grub2-mkconfig > /boot/grub2/grub.cfg都无法生成EFI/opensuse/grub.cfg文件。搜了一圈都是用grub2-mkconfig生成/boot/grub2下的grub.cfg而没有生成EFI/opensuse/grub.cfg文件。
请问各位大拿们如何才能生成EFI/opensuse/grub.cfg文件。
PS:我从其它地方拷贝了EFI/opensuse/grub.cfg,这个文件的内容如下
cryptomount -u 72a1f8f38ebf46fc85cd96e87cad50ce
search --fs-uuid --set=root 1406e59c-ca35-409e-b89a-b887ffdea341
set prefix=(${root})/boot/grub2
source "${prefix}/grub.cfg"
--
FROM 59.40.9.*
自己编辑下就行了,就是set root fsfind然后configfile
【 在 ttaudi 的大作中提到: 】
: 最近安装了opensuse15.4,选择加密硬盘,安装程序自动分两个区,efi分区和luks加密分区,/boot直接放在luks分区。
:
: 这和以前的不一样,以前是生成efi分区,boot分区,luks加密分区,启动的时候efi从efi分区读到文件后就寻找/boot分区的/boot/grub2/grub.cfg文件。
: ...................
--来自微微水木3.5.12
--
FROM 39.144.103.*
编辑容易,就是想弄清楚最开始怎么生成的。这样以后可以移植到其它发行版本上。
【 在 yangtou 的大作中提到: 】
: 自己编辑下就行了,就是set root fsfind然后configfile
--
FROM 59.40.9.*
grub-mkconfig会根据当前硬件和文件系统情况生成一个初始版本
【 在 ttaudi 的大作中提到: 】
: 编辑容易,就是想弄清楚最开始怎么生成的。这样以后可以移植到其它发行版本上。
--
FROM 60.186.217.*
你说的grub.cfg文件是引导进入操作系统配置文件。如果把/boot分区放到加密分区里,grub是找不到这个/boot/grub2/grub.cfg文件的。
grub在某个版本之后支持直接打开加密分区,然后读取加密分区里的/boot/grub2/grub.cfg文件,再进入操作系统。但是grub启动的时候需要知道打开哪个加密分区,所以就有了efi文件夹下的grub.cfg。
我说的就是efi文件夹里的grub.cfg,grub启动时,先读这个efi文件夹下的grub.cfg引导,找到对应的加密分区,然后提示输入密码把加密解开,再找到/boot/grub2/grub.cfg文件,再从这个文件引导。
【 在 adoal 的大作中提到: 】
: grub-mkconfig会根据当前硬件和文件系统情况生成一个初始版本
:
--
FROM 59.40.9.*
生成/boot/efi/EFI/opensuse/grub.cfg 的命令找到了,是在yast的log里找到的:
/usr/sbin/shim-install --config-file\=/boot/grub2/grub.cfg
--
FROM 59.40.9.*
安装efi grub的时候生成的
grub-install --target=x86_64-efi --efi-path=/path-to-efi-dir --boot-dir=/path-to-grub-dir
默认自动引用/boot/grub下的grub.cfg,这个用update-grub更新
【 在 ttaudi 的大作中提到: 】
: 编辑容易,就是想弄清楚最开始怎么生成的。这样以后可以移植到其它发行版本上。
:
: 【 在 yangtou 的大作中提到: 】
: ...................
--来自微微水木3.5.12
--
修改:yangtou FROM 116.224.250.*
FROM 116.224.250.*
这个运行了,是不会产生的efi目录下的grub.cfg的。
最近发现运行这条命令后,没有efi的grub.cfg好像也能自己找到对应系统的grub
运行grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --recheck后,只生成grubx64.efi文件,但是实际能找到对应系统的grub(我的是多系统)
【 在 yangtou 的大作中提到: 】
: 安装efi grub的时候生成的
: grub-install --target=x86_64-efi --efi-path=/path-to-efi-dir --boot-dir=/path-to-grub-dir
: 默认自动引用/boot/grub下的grub.cfg,这个用update-grub更新
: ...................
--
FROM 59.40.9.*
怀疑你的结果
我测试了下,Ubuntu上grub-install是会生成grub.cfg的。
efi-directory指定efi分区的挂载目录,这样会在efi分区的/EFI/Ubuntu/下生成grub.efi和grub.cfg。这个目录在Ubuntu上默认是/boot/efi。
确认你的efi分区是否和指定的efi目录匹配,也许你还用的是老的grub安装呢。
【 在 ttaudi 的大作中提到: 】
: 这个运行了,是不会产生的efi目录下的grub.cfg的。
:
: 最近发现运行这条命令后,没有efi的grub.cfg好像也能自己找到对应系统的grub
: ...................
--来自微微水木3.5.12
--
修改:yangtou FROM 116.224.250.*
FROM 116.224.250.*
efi-directory没挂载错,我系统里只有一个EF00,挂载的就是这个,挂在/boot/efi下。
grub版本是也查了版本号2.06。
【 在 yangtou 的大作中提到: 】
: 怀疑你的结果
: 我测试了下,Ubuntu上grub-install是会生成grub.cfg的。
: efi-directory指定efi分区的挂载目录,这样会在efi分区的/EFI/Ubuntu/下生成grub.efi和grub.cfg。这个目录在Ubuntu上默认是/boot/efi。
: ...................
--
FROM 120.229.69.*