Files
mkiso/mkiso.sh
2026-01-05 11:38:22 +08:00

66 lines
1.7 KiB
Bash

#!/bin/bash
# prepare needed packages
sudo apt install debootstrap squashfs-tools syslinux isolinux xorriso
# create base env
mkdir build
cd build
sudo debootstrap --arch=amd64 beige chroot https://community-packages.deepin.com/beige/
# chroot
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
sudo chroot chroot
# prepare sourcelist
echo "deb https://community-packages.deepin.com/beige/ beige main commercial community" > /etc/apt/sources.list
echo "deb-src https://community-packages.deepin.com/beige/ beige main commercial community" >> /etc/apt/sources.list
# install packages
apt update
apt upgrade -y
apt install deepin-desktop-environment-core
apt install linux-image-deepin-hwe-amd64
#
# create user for *live* system
useradd -m -s /bin/bash live
echo "live:live" | chpasswd
# since we don't have an installer...
systemctl enable lightdm.service
# exit chroot
exit
sudo umount chroot/dev/pts
sudo umount chroot/dev
sudo umount chroot/proc
sudo umount chroot/sys
sudo umount chroot/run
# create squashfs file system
mkdir live
sudo mksquashfs chroot/ live/filesystem.squashfs -comp xz -e boot
# bootable (and isolinux)
cp chroot/boot/vmlinuz-* live/vmlinuz
cp chroot/boot/initrd.img-* live/initrd
mkdir isolinux
cp /usr/lib/ISOLINUX/isolinux.bin isolinux
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 isolinux
cp ../isolinux.cfg isolinux/isolinux.cfg
# create iso
xorriso -as mkisofs -o ../live.iso -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot \
-exclude chroot \
-boot-load-size 4 -boot-info-table \
./
# try iso
qemu-system-x86_64