使用 build-simple-cdd 快速定制 Debian 安装盘

老子叫甜甜 提交于 2020-03-04 23:40:41
  1. 官方推荐了 build-simple-cdd定制Debian安装盘
sudo apt-get -y install simple-cdd xorriso
  1. 创建基础目录和文件:
# 使用普通用户即可,jessie-iso为光盘根目录
# profiles 为配置文件目录,custom-deb 为定制包目录,extra-file 里的文件会拷贝到光盘的 simple-cdd 目录下。
mkdir -pv ~/jessie-iso/{profiles,custom-deb,extra-file}
dpkg -l |awk '/^[hi]i/{print $2}' | awk -F':' '{print $1}' > ~/jessie-iso/profiles/bilibili.packages
# 会默认使用基础配置文件: /usr/share/simple-cdd/profiles/
ls ~/jessie-iso/profiles/ # 添加额外定制配置
bilibili.conf  # build-simple-cdd 主配置文件
bilibili.downloads  # 指定要下载到光盘里的安装包
bilibili.packages  # 指定将被安装的包
bilibili.preseed  # 执行的自动安装脚本
  1. 下载安装包、生成光盘目录数据,大功告成:
build-simple-cdd -p bilibili
# 默认会有个base系统,定制的配置文件只需要加入自定义部分即可
build-simple-cdd --conf profiles/bilibili.conf --graphical-installer --security-mirror http://mirrors.bilibili.co/debian-security
# 执行完成会自动生成安装光盘:
file ~/jessie-iso/images/debian-8.2-amd64-CD-1.iso 
  1. 也可定制后手动生成光盘镜像ISO文件:
cd ~/jessie-iso/tmp/cd-build/jessie
# boot1 目录下包含了 isolinux 引入所需文件
# CD1 即除去 isolinux 下所有文件,即可按需修改
xorriso -as mkisofs -r -checksum_algorithm_iso md5,sha1 -V 'Debian 8.2 by Bilibili' -o ~/jessie-iso/images/debian-8.2-amd64-CD-1.iso -J -joliet-long -cache-inodes -isohybrid-mbr syslinux/usr/lib/ISOLINUX/isohdpfx.bin -b isolinux/isolinux.bin -c isolinux/boot.cat -boot-load-size 4 -boot-info-table -no-emul-boot -eltorito-alt-boot boot1 CD1
  1. ~/jessie-iso/profiles/bilibili.conf 示例:
ARCH="amd64"
dist="jessie"
profiles_udeb_dist="jessie"
BOOT_TIMEOUT=50
locale="en_US"
keyboard="us"
use_qemu=false
proposed_updates=true
graphical_installer=true
force_preseed=true
KERNEL_PARAMS="vga=788"
vga_normal=false
auto_profiles="bilibili"
qemu_opts="-curses -no-reboot"
debian_mirror="http://mirrors.yun-idc.com/debian"
security_mirror="http://mirrors.yun-idc.com/debian-security"
mirror_components="main contrib non-free"
all_extras="$(find $(pwd)/extra-file -type f)"
local_packages="$(pwd)/custom-deb"
  1. ~/jessie-iso/profiles/bilibili.packages 示例:
# 以下非官方包都手动置入 ~/jessie-iso/custom-deb 目录中
vim
bridge-utils
ifenslave-2.6 # 网卡桥接、绑定
firmware-linux-nonfree # 常用驱动
firmware-bnx2x # 博科10G网卡驱动
megaraid-sas-dkms # Mega的Raid驱动
openssh-server 
build-essential
iproute
bash-completion 
command-not-found
  1. 常见错误
# 不推荐用root执行,但普通用户就提示这个。忽略即可:
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: 
权限不够
# 安全性有点高,这种提示忽略:
缺少“Last-modified”文件头 -- 关闭时间戳标记。
# 有些自定义的包打得不标准,不被拒绝安装:
No section given for 'docker-engine', skipping.
# 这个警告一直有,忽略:
Use of uninitialized value $default_desktop in regexp compilation at ~/jessie-iso/tmp//debian-cd/tools/update_tasks line 239.
# 代表有些指定的安装包缺失,打包失败。不会制作iso。这种情况可能使用对应源,手动安装 vim 也失败
ERROR: missing required packages from profile bilibili:  vim

软件包校验失败

  1. 引导系统中加入驱动,示例:
mkdir -pv ~/jessie-iso/initrd && cd ~/jessie-iso/initrd # 解包
gunzip < ~/jessie-iso/tmp/cd-build/jessie/CD1/install.amd/gtk/initrd.gz | cpio --extract --preserve --verbose # 加驱动
dpkg -X ~/jessie-iso/custom-deb/firmware-linux-nonfree_0.43_all.deb ~/jessie-iso/initrd
dpkg -X ~/jessie-iso/custom-deb/firmware-bnx2x_0.43_all.deb ~/jessie-iso/initrd # 重新打包
find . | cpio --create --'format=newc' | gzip > ~/jessie-iso/tmp/cd-build/jessie/CD1/install.amd/gtk/initrd.gz
~/jessie-iso/tmp/cd-build/jessie/boot1/isolinux/ # 修改引导配置,略
~/jessie-iso/tmp/cd-build/jessie/CD1/ # 修改光盘内容,略
cd tmp/cd-build/jessie/
xorriso -as mkisofs -r -checksum_algorithm_iso md5,sha1 -V 'Debian 8.2 by Bilibili' -o ~/jessie-iso/images/debian-8.2-amd64-CD-1.iso -J -joliet-long -cache-inodes -isohybrid-mbr syslinux/usr/lib/ISOLINUX/isohdpfx.bin -b isolinux/isolinux.bin -c isolinux/boot.cat -boot-load-size 4 -boot-info-table -no-emul-boot -eltorito-alt-boot boot1 CD1
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!