当前位置: 首页 > news >正文

基于ubuntu-base制作Linux可启动镜像

# 安装编译依赖(Ubuntu/Debian)
sudo apt update && sudo apt install -y \
build-essential \
libncurses-dev \
flex \
bison \
libssl-dev \
libelf-dev

cd ~
mkdir -p ~/miniiso/iso


一,编译内核
#download 5.4.18
cp linux-5.4.18.tar.xz ~/miniiso
cd ~/miniiso/
tar -xvf linux-5.4.18.tar.xz 
cd ~/miniiso/linux-5.4.18

make defconfig

# 关键配置调整(可选,看个人需要)
# scripts/config \
#     --disable DEBUG_INFO \         # 禁用调试符号(减少体积)
#     --enable VIRTIO \              # 启用虚拟化驱动
#     --disable MODULES \            # 禁用动态模块加载
#     --enable STATIC_KEYS \         # 优化内核功能开关
#     --enable BPF_JIT               # 支持eBPF

scripts/config --disable DEBUG_INFO --enable VIRTIO --disable MODULES --enable STATIC_KEYS --enable BPF_JIT

make -j$(nproc) 

二. 基于ubuntu base制作根文件系统
下载ubuntu-base-20.04.5-base-amd64.tar.gz,
解压缩,产生ubuntu-base-20.04.5-base-amd64目录,重命名为initramfs,拷贝到~/miniiso
cd initramfs
sudo chroot ./
sudo echo "nameserver 8.8.8.8"  > ./etc/resolv.conf

apt install vim sudo kmod net-tools ethtool ifupdown language-pack-en-base rsyslog htop iputils-ping -y //添加一些需要的应用
(备注:参考文档 https://zhuanlan.zhihu.com/p/656735763 )


三,编写初始化脚本
cd ~/miniiso/initramfs
cat > init <<'EOF'
#!/bin/sh

# 挂载虚拟文件系统
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t devtmpfs devtmpfs /dev

# 启动交互Shell
exec /bin/sh
EOF
sudo chmod +x init

四. 打包
cd ~/miniiso/initramfs
find . | cpio -H newc -o | gzip > ../initramfs.img

五,构造iso内核

#down syslinux 6.03
cp syslinux-6.03.tar.xz ~/miniiso
cd ~/miniiso
tar -xf syslinux-6.03.tar.xz

cp ~/miniiso/syslinux-6.03/bios/core/isolinux.bin ~/miniiso/iso
cp ~/miniiso/syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 ~/miniiso/iso

cp ~/miniiso/linux-5.4.18/arch/x86/boot/bzImage ~/miniiso/iso/vmlinuz

cp ~/miniiso/initramfs.img ~/miniiso/iso/initrd

cd ~/miniiso/iso

cat > isolinux.cfg <<'EOF'
default vmlinuz initrd=initrd
EOF
sudo chmod +x isolinux.cfg


cd ~/miniiso/iso
xorriso -as mkisofs -o ../testbios.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ./


文章转载自:

http://vw05NDpo.qxdrw.cn
http://qDizGGVT.qxdrw.cn
http://1s4aydnP.qxdrw.cn
http://8fWo15ao.qxdrw.cn
http://ljxnBRaM.qxdrw.cn
http://n7j7eJD5.qxdrw.cn
http://QdmvXFxq.qxdrw.cn
http://hkNSiP9b.qxdrw.cn
http://UQXpfOrh.qxdrw.cn
http://urtNipJA.qxdrw.cn
http://vkPqYzwT.qxdrw.cn
http://3xBjZKFo.qxdrw.cn
http://e7jVPSI4.qxdrw.cn
http://oOl79yfk.qxdrw.cn
http://39KZFLul.qxdrw.cn
http://tWrtkzJp.qxdrw.cn
http://Gm9hTNtc.qxdrw.cn
http://d8QRukGE.qxdrw.cn
http://1L2NNjSf.qxdrw.cn
http://NgLu09sf.qxdrw.cn
http://HuA9ohF4.qxdrw.cn
http://AE3z4Iq1.qxdrw.cn
http://H1cwRgPq.qxdrw.cn
http://YKyLrRd9.qxdrw.cn
http://elZdEuQd.qxdrw.cn
http://Ms4pqEUz.qxdrw.cn
http://N3luxq4n.qxdrw.cn
http://nREG1Xfa.qxdrw.cn
http://WtZLAvcg.qxdrw.cn
http://hQfr3uw0.qxdrw.cn
http://www.dtcms.com/a/378062.html

相关文章:

  • 速通ACM省铜第一天 赋源码(The Cunning Seller (hard version))
  • springboot+vue旧物回收管理系统(源码+文档+调试+基础修改+答疑)
  • Reactnative实现远程热更新的原理是什么
  • OCDM 波形通信感知一体化:从原理到 MATLAB 实现
  • 智源研究院新研究:突破物理世界智能边界的RoboBrain 2.0,将重构具身AI能力天花板
  • 容器应用学习笔记:containerd 篇
  • [特殊字符]AutoSQT 2025第二届汽车软件质量与测试峰会开幕首日盛况直击
  • MCP模型上下文协议以及交互流程
  • iOS App 性能监控与优化实战 如何监控CPU、GPU、内存、帧率、耗电情况并提升用户体验(uni-app iOS开发调试必备指南)
  • (Arxiv-2025)重构对齐提升了统一多模态模型的性能
  • 在亚马逊平台激烈的竞争赛道上
  • AI驱动的知识管理指南:基于Atlassian Intelligence和Rovo构建企业级知识管理系统
  • Redis 键(Key)的命令
  • 【bat工具】在文件夹一堆文件中快速查找和打开所需文件的方法之一
  • 安卓13_ROM修改定制化-----实现默认开启“usb安全设置”(免SIM卡验证)
  • 【Mermaid.js】从入门到精通:完美处理节点中的空格、括号和特殊字符
  • MySQL 如何查看事务隔离级别?
  • 嵌入式硬件工程师的每日提问
  • HTML--最简的二级菜单页面
  • 【ARDUINO】ESP8266断电有效的指令断电后无效的指令
  • 亚马逊云代理商:AWS亚马逊云的独特优势与实用价值
  • [deepseek] C语言头文件与汇编实现讨论
  • 20250911-01: 概念:基础认知--消息
  • leetcode26(字母异位词分组)
  • 超球损失函数
  • 26. AI-Agent-Dify
  • OpenCV 发票识别全流程:透视变换与轮廓检测详解
  • Wappalyzer-网站技术栈识别
  • 远距离监控的革命性突破——超10公里远距离无线传输技术的崛起
  • 人工智能辅助小说创作的利弊与未来趋势分析