首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Live USB棒,带debian、squashfs和grub

Live USB棒,带debian、squashfs和grub
EN

Unix & Linux用户
提问于 2022-10-31 01:39:34
回答 1查看 428关注 0票数 1

我想创建我自己的Debian引导棒,它是从chroot (debootstrap)环境创建的。

根文件系统应该以squashfs的形式挂载,grub应该能够从单个EFI分区启动系统。

到目前为止,我对chroot环境、vmlinuz和initrd.img有一个squashfs映像。但是,我不知道如何配置grub,使它不会启动我的本地系统(尝试使用:grub.)但取而代之的是USB棒上的南瓜。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-11-02 18:45:13

我解决了问题!

首先,chroot环境必须具有加载shquashfs映像所需的帧。为此,我简单地在chroot中安装了实时引导包,然后更新了initframes。/proc、/dev /pt、/dev、/sys应该在chroot中可用,这样才能工作。

代码语言:javascript
复制
# @ 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
代码语言:javascript
复制
# @ root in chroot
apt install live-boot live-boot-initramfs-tools
update-initramfs -u

这样做后,应该卸载这些目录,并将shquashfs创建到/target/live/filystem.squashfs。

代码语言:javascript
复制
# @ root on localhost
umount /debootstrap/proc
umount /debootstrap/dev
umount /debootstrap/dev/pts
umount /debootstrap/sys
代码语言:javascript
复制
# @ root on localhost
mksquashfs -comp xz /debootstrap /target/live/filesystem.squashfs

我在fat32中格式化了USB卡,并将它安装在/target中。现在可以安装Grub了。

代码语言:javascript
复制
# @ 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,如下所示。

代码语言:javascript
复制
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
}

就是这样,你的电脑应该能够启动这支棍子。

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

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

复制
相关文章

相似问题

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