Ubuntu From Scratch 自定义设置实战指南
一 核心思路与目录结构
二 环境与构建准备
sudo apt-get install binutils debootstrap squashfs-tools xorriso grub-pc-bin grub-efi-amd64-bin mtoolssudo debootstrap --arch=amd64 --variant=minbase focal $HOME/live-ubuntu-from-scratch/chroot http://us.archive.ubuntu.com/ubuntu/sudo mount --bind /dev chroot/dev && sudo mount --bind /run chroot/runsudo chroot chrootmount -t proc proc /proc && mount -t sysfs sys /sys && mount -t devpts devpts /dev/ptsexport HOME=/root && export LC_ALL=Cecho "ubuntu-fs-live" > /etc/hostnamecat > /etc/apt/sources.list <<EOF ... EOFapt-get updateapt-get install -y libterm-readline-gnu-perl systemd-sysvdbus-uuidgen > /etc/machine-id && ln -fs /etc/machine-id /var/lib/dbus/machine-iddpkg-divert --local --rename --add /sbin/initctl && ln -s /bin/true /sbin/initctl三 常用自定义项与配置位置
apt-get install -y <pkg1> <pkg2> ...linux /casper/vmlinuz boot=casper nopersistent toram quiet splash ---linux /casper/vmlinuz boot=casper only-ubiquity quiet splash ---linux16 /install/memtest86+sudo chroot chroot dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee image/casper/filesystem.manifestcp image/casper/filesystem.manifest image/casper/filesystem.manifest-desktopubiquity、casper、discover、laptop-detect、os-probersudo apt-get install gnome-tweak-tool四 生成镜像与启动测试
sudo mksquashfs chroot image/casper/filesystem.squashfsprintf $(sudo du -sx --block-size=1 chroot | cut -f1) > image/casper/filesystem.sizeimage/README.diskdefines(示例含 DISKNAME、ARCH=amd64 等)grub-mkstandalone --format=x86_64-efi --output=isolinux/bootx64.efi "boot/grub/grub.cfg=isolinux/grub.cfg"grub-mkstandalone --format=i386-pc --output=isolinux/core.img ...cat /usr/lib/grub/i386-pc/cdboot.img isolinux/core.img > isolinux/bios.imgsudo xorriso -as mkisofs -iso-level 3 -full-iso9660-filenames -volid "Ubuntu from scratch" -output "../ubuntu-from-scratch.iso" -eltorito-boot boot/grub/bios.img -no-emul-boot -boot-load-size 4 -boot-info-table --eltorito-catalog boot/grub/boot.cat --grub2-boot-info --grub2-mbr /usr/lib/grub/i386-pc/boot_hybrid.img -eltorito-alt-boot -e EFI/efiboot.img -no-emul-boot -append_partition 2 0xef isolinux/efiboot.img -m "isolinux/efiboot.img" -m "isolinux/bios.img" -graft-points "/EFI/efiboot.img=isolinux/efiboot.img" "/boot/grub/bios.img=isolinux/bios.img" "."find image -type f -print0 | xargs -0 md5sum | grep -v -e 'md5sum.txt' -e 'bios.img' -e 'efiboot.img' > image/md5sum.txt五 进阶与替代方案
sudo apt-add-repository ppa:cubic-wizard/release && sudo apt install --no-install-recommends cubicsudo apt-get install build-essential./configure → make → sudo make install