|
- #!/usr/bin/env bash
-
- # Additional details from
- # https://www.opengeeks.me/2015/04/build-your-hybrid-debian-distro-with-xorriso/
- # https://wiki.archlinux.org/index.php/Chroot
-
- # Install required packages
- apt install debootstrap squashfs-tools syslinux isolinux syslinux-common xorriso
-
- # Make a working dir and a chroot dir
- mkdir -p livebuild/chroot
-
- # Bootstrap Debian into chroot
- cd livebuild
- debootstrap --arch=amd64 testing chroot
-
- # Mount filesystemd and chroot
- mount -t proc /proc chroot/proc/
- mount --rbind /sys chroot/sys/
- mount --rbind /dev chroot/dev/
- mount --rbind /run chroot/run/
- chroot chroot /bin/bash
-
- # Install and configure live system the way you like
- echo "DebianLive" > /etc/hostname
- echo -e '127.0.0.1\tlocalhost' > /etc/hosts
- echo -e '127.0.1.1\tDebianLive' >> /etc/hosts
- echo '' >> /etc/hosts
- echo -e '::1\t\tlocalhost ip6-localhost ip6-loopback' >> /etc/hosts
- echo -e 'ff02::1\t\tip6-allnodes' >> /etc/hosts
- echo -e 'ff02::2\t\tip6-allrouters' >> /etc/hosts
-
- apt install linux-image-amd64 linux-headers-amd64 firmware-* memtest86+ live-boot debian-installer-launcher debootstrap apt-file aria2 bash-completion ntfs-3g btrfs-progs btrfs-compsize btrfs-heatmap btrfsmaintenance build-essential ccache checkinstall chrony cifs-utils cmake command-not-found cryptsetup curl deb-multimedia-keyring dosfstools duperemove e2fsprogs ethtool fail2ban fuse git xfsprogs nano vim man less testdisk wireguard zfs-dkms grub-efi-amd64 grub-pc-bin haveged hwinfo iftop iotop iptables iputils-ping jq localepurge locales lsb-base lshw lz4 net-tools nfs-common network-manager* nodm openconnect pigz python python-pip python-dev python3 python3-pip python3-dev rsync screen smartmontools sudo sshpass strace tcpdump terminology tlp tp-smapi-dkms tshark ttf-mscorefonts-installer wget wireshark xz-utils zlib1g zstd zfs-initramfs
-
- apt autoremove --purge
- apt clean
- apt autoclean
-
- rm -rf /tmp/*
-
- # Exit from chroot
- exit
-
- # Unmount chrooted environment
- umount --recursive chroot
-
- # Start building ISO
- mkdir -p image/{live,isolinux}
- cp chroot/boot/vmlinuz* image/live/vmlinuz
- cp chroot/boot/initrd* image/live/initrd
- cp chroot/boot/memtest86+.bin image/live/memtest86+.bin
- cp chroot/boot/memtest86+_multiboot.bin image/live/memtest86+_multiboot.bin
- cp /usr/lib/ISOLINUX/isolinux.bin image/isolinux/
- cp /usr/lib/syslinux/modules/bios/* image/isolinux/
-
- echo > image/isolinux/isolinux.cfg << EOF
- UI menu.c32
- prompt 0 menu title Debian Live
- timeout 30
- label Debian Live menu label ^Debian Live menu default kernel /live/vmlinuz append initrd=/live/initrd boot=live
- label hdt menu label ^Hardware Detection Tool (HDT) kernel hdt.c32 text help HDT displays low-level information about the systems hardware. endtext
- label Memtest86+ menu label ^Memory Failure Detection (memtest86+)
- /live/memtest86+.bin
- label Memtest86+ (multiboot) menu label ^Memory Failure Detection (memtest86+) /live/memtest86+_multiboot.bin
- EOF
-
- # Make squashfs
- mksquashfs chroot/ image/live/filesystem.squashfs -e boot
-
- # Create hybrid ISO
- xorriso -as mkisofs -r -J -joliet-long -l -cache-inodes -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -partition_offset 16 -A "Debian Live" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o debianlive.iso image
|