我想创建我自己的Debian引导棒,它是从chroot (debootstrap)环境创建的。
根文件系统应该以squashfs的形式挂载,grub应该能够从单个EFI分区启动系统。
到目前为止,我对chroot环境、vmlinuz和initrd.img有一个squashfs映像。但是,我不知道如何配置grub,使它不会启动我的本地系统(尝试使用:grub.)但取而代之的是USB棒上的南瓜。
发布于 2022-11-02 18:45:13
我解决了问题!
首先,chroot环境必须具有加载shquashfs映像所需的帧。为此,我简单地在chroot中安装了实时引导包,然后更新了initframes。/proc、/dev /pt、/dev、/sys应该在chroot中可用,这样才能工作。
# @ root on localhost
mount -o bind /proc /debootstrap/proc
mount -o bind /dev /debootstrap/dev
mount -o bind /dev/pts /debootstrap/dev/pts
mount -o bind /sys /debootstrap/sys# @ root in chroot
apt install live-boot live-boot-initramfs-tools
update-initramfs -u这样做后,应该卸载这些目录,并将shquashfs创建到/target/live/filystem.squashfs。
# @ root on localhost
umount /debootstrap/proc
umount /debootstrap/dev
umount /debootstrap/dev/pts
umount /debootstrap/sys# @ root on localhost
mksquashfs -comp xz /debootstrap /target/live/filesystem.squashfs我在fat32中格式化了USB卡,并将它安装在/target中。现在可以安装Grub了。
# @ root on localhost
grub-install --target=x86_64-efi --root-directory=/target完成之后,将vmlinuz和initrd.img复制到/target/ grub.cfg,并在/target/boot/grub/grub.cfg中创建grub.cfg,如下所示。
insmod all_video
set default=0
set timeout=0
menuentry "debian live" {
linux /boot/vmlinuz boot=live toram=filesystem.squashfs quiet
initrd /boot/initrd.img
}就是这样,你的电脑应该能够启动这支棍子。
https://unix.stackexchange.com/questions/723063
复制相似问题