首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian 11活动映像上的GRUB安装无法获得“覆盖”的规范路径

Debian 11活动映像上的GRUB安装无法获得“覆盖”的规范路径
EN

Unix & Linux用户
提问于 2021-12-21 20:52:21
回答 1查看 1.5K关注 0票数 0

我们正在开发一种基于Debian的产品。为了简化工厂中的构建,我正在尝试构建一个可以安装主操作系统的活动磁盘。我们有一个旧的产品使用这个过程,但是基于Debian 7。我使用Debian 11。我的Debian 11恢复过程和图像的Debian 7之一。两者都使用live-build。Debian11系统将操作系统从主线bullseye repos中提取出来,再加上我对承载我们比特的一个包的回购。这是一个多步骤的过程,我们运行live-build来构建操作系统的OS,将其压缩到一个squashfs中,然后围绕它构建一个活动的OS,该脚本可以将驱动的、取消压缩的squashfs文件分割到适当的分区,最重要的是不起作用的是应用GRUB。

构建的一部分是:

代码语言:javascript
复制
install -d /boot/seed
grub-mkimage -Ox86_64-efi -o /boot/seed/BOOTX64.EFI -p '(hd0,1)/EFI/BOOT/grub' \
    part_gpt part_msdos fat
grub-mkimage -Oi386-pc -o /boot/seed/mbr-core.img -p '(hd0,msdos1)/biosgrub' \
    part_msdos fat biosdisk
grub-mkimage -Oi386-pc -o /boot/seed/gpt-core.img -p '(hd0,gpt1)/biosgrub' \
    part_gpt fat biosdisk
cp -a /usr/lib/grub/i386-pc/boot.img /boot/seed/boot.img
cp -a /usr/lib/grub/i386-pc/modinfo.sh /boot/seed/modinfo.sh
grub-editenv /boot/seed/grubenv create

在尝试安装GRUB之前,这些文件将被复制到ESP分区。这些文件和所有不同的GRUB模块都是在安装脚本的中途复制的。

在后面的脚本中,我们调用grub-install

代码语言:javascript
复制
grub-install \
    --directory /mnt/biosgrub \
    --boot-image boot.img \
    --core-image core_img \
    /dev/sda

这里的问题是,较新版本的grub-install不再支持core-imageboot-image交换机,就像Debian 7中的版本那样,这会立即失败。我取出了boot-imagecore-image交换机,现在它失败了:

代码语言:javascript
复制
grub-install: error: failed to get canonical path of `overlay'.

是的,在overlay上确实有一个开场的单引号和结束单引号。

我尝试删除GRUB步骤,让它打开所有的东西,然后引导到一个运行Manjaro (如果它躺着的话)的图形化的活动磁盘,试图获得更多关于GRUB情况的信息。在那里运行grub-install也会以同样的方式失败。

通过谷歌搜索,我了解到这是因为grub-install认为目标设备使用的是一个覆盖层,无法确定实际使用哪种设备,但我不太确定从哪里开始,也不确定该问什么问题。我很高兴提供更多的细节,虽然有些事情将不得不修改,因为专有软件的原因。

如果重要的话,手动挂载创建的OS分区离开系统会显示一切都在正确的位置,我们的代码已经到位,如果有引导程序,我们的代码可能会运行良好。

ETA:我在这里取得了一些进展,将未压缩的操作系统安装到活动磁盘中的目录中,将/proc/sys/dev安装到该目录,将我的EFI分区安装到该目录中,并将chrooting安装到该目录中。然后运行grub-install /dev/sda,但grub在启动时仍然缺失。

EN

回答 1

Unix & Linux用户

发布于 2022-12-21 19:28:17

在收到关于这个问题的大量流量的通知后,我想我会发帖说,我们最终通过使用debos构建的映像和闪光图像来解决这个问题,而不是尝试使用我在问题中描述的过程。

Debos:https://github.com/go-debos/debos

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/683405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档