#!/usr/bin/env bash # iso_build.sh # 内核编译 + initramfs/live.squashfs + GRUB ISO + 无人值守安装器 set -euo pipefail IFS=$'\n\t' LFS_WORKDIR="$PWD/lfs_build" ISO_NAME="lfs12_custom_x86_64.iso" CPU_CORES="$(nproc)" ROOTFS="$LFS_WORKDIR/rootfs" info(){ echo -e "\e[34m[INFO]\e[0m $*"; } # 生成 live.squashfs info "生成 live.squashfs ..." mkdir -p "$LFS_WORKDIR/iso/live" mksquashfs "$ROOTFS" "$LFS_WORKDIR/iso/live/rootfs.squashfs" -e boot # 生成 initramfs info "生成 initramfs ..." cd "$LFS_WORKDIR/iso" mkdir -p initramfs cd initramfs mkdir -p {bin,sbin,etc,proc,sys,usr} cp -a "$ROOTFS"/bin/* bin/ cp -a "$ROOTFS"/sbin/* sbin/ cp -a "$ROOTFS"/etc/* etc/ find . | cpio -H newc -o | gzip > "$LFS_WORKDIR/iso/boot/initrd.img" # GRUB 配置 info "生成 GRUB 配置 ..." mkdir -p "$LFS_WORKDIR/iso/boot/grub" cat > "$LFS_WORKDIR/iso/boot/grub/grub.cfg" <