66 lines
1.7 KiB
Bash
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 |