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

发布于:2025-09-12 ⋅ 阅读:(23) ⋅ 点赞:(0)

# 安装编译依赖(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 ./


网站公告

今日签到

点亮在社区的每一天
去签到