首页 > 系统相关 >制作基于debian的linux live启动u盘(UEFI)

制作基于debian的linux live启动u盘(UEFI)

时间:2024-09-18 11:51:15浏览次数:10  
标签:-- boot apt live vefi UEFI linux debian

参考

方法一: live-build

这是debian官方的live镜像构建工具,此方法相对第二种更简单

  1. 安装:apt install live-build
  2. 新建一个空文件夹,比如liveb,cd进去
  3. 进行配置:lb config --mirror-binary https://mirrors.ustc.edu.cn/debian/ \ --mirror-binary-security https://mirrors.ustc.edu.cn/debian-security/ \ --mirror-bootstrap https://mirrors.ustc.edu.cn/debian/ \ --mirror-chroot-security https://mirrors.ustc.edu.cn/debian-security/ \ --distribution bookworm
    这里的lb就是live-build的简写,这个命令使用了中科大的镜像,不使用镜像会很慢(此处镜像是一会使用lb build下载文件时的镜像),--distribution指定了debian的版本,也可以选择bullseye等别的版本,我选了debian12
  4. 此时可以自定义软件包,在liveb/config/package-lists/下面新建文件:[随便命名].list.chroot里面写上要装的软件包,比如:
vim
network-manager
htop
  • 此方法构建的liveb/chroot目录,直接chroot进去会不能联网,要手动配置/etc/resolv.conf,所以这里我直接在配置文件里写好要安装的软件包
  1. liveb中执行lb build(需要root),一般十几分钟就会完成构建,成功的话有绿色提示,在liveb根目录下有生成的iso文件,liveb/binary下面有iso文件的内容
  2. 按照方法二第11步的方法新建分区,然后把binary下面的东西复制进去,就可以启动live系统了

方法二: 手动构建

此方法全程sudo su执行即可,很多命令都要root权限

  1. apt安装debootstrap squashfs-tools,中间有其他需要的软件包我忘了是什么了,提示找不到命令自己安装一下即可
  2. 使用debootstrap构建基本根目录:
mkdir rootfs
debootstrap bookworm rootfs https://mirrors.ustc.edu.cn/debian/

此处的第一个参数是发行版,我仍然选择bookworm,第二个参数是文件夹,第三个是使用的镜像;大概需要10分钟下载完成,根目录约300MB
3. chroot rootfs,这会切换根目录
ubuntu官方文档里提到了要mount一下设备文件,然后再chroot,但是我测试发现不mount也没问题,命令如下:

mount --bind /sys ./rootfs/sys
mount --bind /proc ./rootfs/proc
mount --bind /dev/pts ./rootfs/dev/pts

卸载(离开chroot之后再卸载):

umount ./rootfs/sys
umount ./rootfs/proc
umount ./rootfs/dev/pts
  1. 为live系统安装内核,有很多方法,最简单的方法是直接apt install linux-image-6.1.0-25-amd64,但是我对内核有特殊要求,所以自己编译了,方法:debian内核编译手册,然后dpkg -i安装编译好的文件
  2. 安装必要软件包:live-boot live-boot-initramfs-tools这两个软件包是必须的!没有将会无法启动live系统
  3. 自定义系统,自己想怎么搞都行,我的脚本:
apt update
echo -e "deb http://mirrors.ustc.edu.cn/debian bookworm main contrib non-free non-free-firmware\ndeb http://mirrors.ustc.edu.cn/debian bookworm-updates main contrib non-free non-free-firmware\ndeb http://mirrors.ustc.edu.cn/debian bookworm-backports main contrib non-free non-free-firmware\ndeb http://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware" > /etc/apt/sources.list
apt install -y lightdm
apt install -y lxqt-core
apt install -y firefox-esr
apt install -y bash-completion vim sudo htop network-manager gparted mpv nm-tray firmware-linux firmware-iwlwifi rfkill pciutils
sed -i '/# enable bash completion in interactive shells/{n;N;N;N;N;N;N;s/^#//gm}' /etc/bash.bashrc
passwd -d root
apt upgrade -y
apt autoclean

我这里用了lxqt的桌面,有几个坑:

  • lxqt-core软件包很小,但是不会自动安装显示管理器,所以要先装一个lightdm
  • debootstrap构建的根目录很小,很多固件都没有,要联网需要安装network-manager nm-tray firmware-iwlwifi rfkill
  1. 更新initrd:update-initramfs -c -k all必须执行,否则initrd会无法启动
  2. exit命令退出chroot
  3. 构建uefi引导:
dd if=/dev/zero of=vefi.img bs=1M count=32 # 创建虚拟硬盘
mkfs.vfat vefi.img # 在虚拟硬盘新建fat32文件系统
mkdir vefi-mnt
mount vefi.img vefi-mnt #挂载虚拟硬盘
mkdir vefi-mnt/boot
grub-install --boot-directory=vefi-mnt/boot --efi-directory=vefi-mnt --removable vefi.img #生成grub的bootx64.efi引导程序和grub.cfg
sed -i 's/^/# /' vefi-mnt/EFI/BOOT/grub.cfg
echo -e "menuentry \"Live system (amd64)\" {\n	linux	/live/vmlinuz boot=live\n	initrd	/live/initrd.img\n}" >> vefi-mnt/EFI/BOOT/grub.cfg # 配置grub
umount vefi.img # 卸载

grub-install这个命令默认选择本机的efi和boot目录,不要无参数执行,否则会更新本机的grub
10. 构建squashfs:mksquashfs rootfs/ filesystem.squashfs这会在执行目录下生成filesystem.squashfs文件,live环境一般有manifest文件,但是我没加也成功了,具体怎么生成可以参考开头那几个链接
11. 创建启动u盘:确定自己的u盘已经是gpt分区表,不是的改一下,新建一个fat32分区,我的带lxqt桌面的live系统只有1.1g,分区新建4g应该是够的,这几步用windows的diskgenius操作就行,具体操作百度即可
12. 复制文件:我的u盘目录结构(注意是刚才新建的fat32分区),initrd.img和vmlinuz是rootfs/boot下面的两个文件重命名复制来的(分别是初始文件系统和内核镜像):

main@n960kp:/media/main/linux-live$ ls -R
.:
EFI  live

./EFI:
BOOT

./EFI/BOOT:
BOOTX64.CSV  BOOTX64.EFI  grub.cfg  grubx64.efi  mmx64.efi

./live:
filesystem.squashfs  initrd.img  vmlinuz
  • EFI和boot文件夹在vefi.img虚拟硬盘里,挂载之后再复制到u盘里,不挂载看不到文件夹
  • live这个文件夹名称不固定,但是要和grub.cfg里写的对应
  1. 完成,进入电脑bios启动吧

后记

  • ubuntu那边有一个叫cubic的软件,应该比这种手动方法方便,但是debian好像没有
  • 关于启动u盘,我只会做uefi启动的,bios启动的u盘制作应该更复杂;很多教程都要求烧写u盘,其实这对于uefi启动u盘不必要(bios启动有要求),新建分区把引导文件放进去即可,这样还可以制作多个启动选项的u盘
  • vefi-mnt/boot/grub下面有x86_64-efi i386-efi两个文件夹,下面文件很多,我也不知道有什么用,反正没复制他也能启动,u盘速度慢的可以不复制
  • live-boot live-boot-initramfs-tools两个软件包会修改initrd.img,使他可以在live环境中正常启动

标签:--,boot,apt,live,vefi,UEFI,linux,debian
From: https://www.cnblogs.com/elight2/p/18418013

相关文章

  • 项目发布后项目时间和linux时间不一致
     查阅了很多资料,本来总以为是项目的问题,启动前端,连接不同的后台,本地项目时间是正确的,部署到linuxDocker容器就不行。很纳闷......基于以上,还是决定记下来,以便后来的人查阅,解决问题。    Docker部署后,进入容器,这里假设docker容器Id为  123456.    ......
  • 240908-Linux通过ln设置软链接关联大模型文件
    在Linux中,您可以使用ln命令来创建软链接(符号链接)。软链接是一种特殊类型的文件,它指向另一个文件或目录。以下是如何设置软链接的步骤:创建软链接基本语法:ln-s[目标文件或目录][软链接的名称]示例:创建文件的软链接:假设您有一个名为/home/user/original_file.txt的文件,您想在/home/......
  • Linux(Centos7)更换为阿里yum源
    1、替换Centos-Base.repo(1)备份cp/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bak(2)更换为阿里yum源:wget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo或手动创建编辑文件:/etc/yum.repos.d/CentOS-Base.repo#......
  • WPF LiveChart 图表详解
    引用LiveChart.Wpf在使用的界面当中引用LiveChart.Wpf的类库xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"以直方图、折线图为例,都属于CartesianChart下的一种Series类型,例如折线图,如下:<lvc:CartesianChart><lvc:CartesianCh......
  • Linux内核源码介绍-贡献Linux内核社区
    建议点击这里查看个人主页上的最新原文作者:陈孝松主页:chenxiaosong.com哔哩哔哩:陈孝松课程:chenxiaosong.com/courses博客:chenxiaosong.com/blog贡献:chenxiaosong.com/contributions邮箱:[email protected]交流群:544216206,点击查看群介绍点......
  • Linux下eCal测试计划及进度记录
    完整的源代码包:#安装依赖sudoapt-getinstallgitcmakedoxygengraphvizbuild-essentialzlib1g-devsudoapt-getinstalllibhdf5-devlibprotobuf-devlibprotoc-devprotobuf-compilersudoapt-getinstalllibcurl4-openssl-devlibqwt-qt5-devlibyaml-cpp-dev......
  • 初学者学好linux的方法二
    Linux操作系统启动流程:初学者对Linux操作系统启动流程的理解,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题。Linux操作系统启动流程如图3-4所示:图3-4系统启动流程(1) 加载BIOS计算机电源加电质检,首先加载基本输入输出系统(BasicInputOutputSystem,BIO......
  • Linux内核中cpu_capacity是什么?
    cpu_capacity在Linux内核中,cpu_capacity是用于表示每个CPU的处理能力的一个参数,通常用于调度器的负载均衡。它表明不同的CPU核心在计算资源分配中的相对性能,尤其在异构多核架构(如ARM的big.LITTLE架构)中,不同的核心可能具有不同的计算能力。主要概念同构和异构架构:在同构架......
  • CSP初赛知识点:Linux 系统
    CSP初赛知识点:Linux系统前言近年CSP初赛几乎前5道选择题都有一两道有关Linux系统的使用,所以作为备战CSP-J/S2024的资料,整理下来啦。祝各位今年所有考试都能考出自己满意的成绩!1、常用文件操作命令以下设文件名均为csp,需要复制或修改成的文件名均为rp。功能......
  • Linux基础3-基础工具4(git,冯诺依曼计算机体系结构)
    上篇文章:Linux基础3-基础工具3(make,makefile,gdb详解)-CSDN博客本章重点:1.git简易使用2.冯诺依曼计算机体系结构介绍一.git使用 1.1什么是git?    git是用于管理代码版本的一种工具,我们在如GitHub,Gitee中创立自己的仓库后。        我们在本地使......