From d237e32c3db5634ff475da273bebdd8289409d48 Mon Sep 17 00:00:00 2001 From: Gary Wang Date: Wed, 26 Mar 2025 17:46:46 +0800 Subject: [PATCH] a minimized terminal live iso --- .gitignore | 2 + mkiso-debian.sh | 97 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 .gitignore create mode 100644 mkiso-debian.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9044376 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build-*/ +*.iso \ No newline at end of file diff --git a/mkiso-debian.sh b/mkiso-debian.sh new file mode 100644 index 0000000..f0d4c52 --- /dev/null +++ b/mkiso-debian.sh @@ -0,0 +1,97 @@ +#!/bin/bash + +function mount_rootfs() { + mkdir -p chroot/dev chroot/dev/pts chroot/proc chroot/sys chroot/run + sudo mount --bind /dev chroot/dev + sudo mount --bind /dev/pts chroot/dev/pts + sudo mount --bind /proc chroot/proc + sudo mount --bind /sys chroot/sys + sudo mount --bind /run chroot/run +} + +function unmount_rootfs() { + sudo umount chroot/dev/pts + sudo umount chroot/dev + sudo umount chroot/proc + sudo umount chroot/sys + sudo umount chroot/run +} + +function chroot_cmd() { + sudo env DEBIAN_FRONTEND=noninteractive chroot chroot "$@" +} + +function chroot_apt() { + chroot_cmd apt "$@" +} + +function install_iso_build_deps() { + sudo apt install -y debootstrap squashfs-tools syslinux xorriso p7zip-full +} + +function debootstrap_base() { + sudo debootstrap --arch=amd64 testing chroot https://mirrors.tuna.tsinghua.edu.cn/debian/ +} + +function update_sourcelists() { + echo "deb https://mirrors.tuna.tsinghua.edu.cn/debian/ testing main contrib non-free non-free-firmware" | sudo tee chroot/etc/apt/sources.list + echo "deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ testing main contrib non-free non-free-firmware" | sudo tee -a chroot/etc/apt/sources.list +} + +function chroot_install_base_packages() { + chroot_apt update + chroot_apt upgrade -y + chroot_apt install -y zsh + chroot_apt install -y live-boot live-config-systemd --no-install-recommends + # chroot_apt install -y lxqt-core sddm-theme-debian-elarun + chroot_apt install -y linux-image-amd64 +} + +function chroot_create_live_user() { + chroot_cmd useradd -m -s /bin/bash live + echo "live:live" | chroot_cmd chpasswd +} + +function make_bootable() { + cp "$(ls -1t chroot/boot/vmlinuz-* | head -n 1)" isoroot/vmlinuz + cp "$(ls -1t chroot/boot/initrd.img-* | head -n 1)" isoroot/initrd + mkdir isoroot/isolinux + cp /usr/lib/ISOLINUX/isolinux.bin isoroot/isolinux + cp /usr/lib/syslinux/modules/bios/ldlinux.c32 isoroot/isolinux + cp ../isolinux.cfg isoroot/isolinux/isolinux.cfg + cat > isoroot/isolinux/isolinux.cfg <