ubuntu、debian是用的debian-installer程序进行无人值的,通常是preseed.cfg文件
ubuntu16官方文档:

挂载镜像

本地先手动安装镜像ubuntu-16.04-server-amd64.iso,测试该镜像对于当前的硬件环境是否正常兼容
将该镜像挂载到Linux系统中,通过对镜像内容编辑,用linux命令mkisofs生成修改后的镜像

  1. mkdir /mnt/iso
  2. #创建挂载点
  3. mount /dev/sr0 /mnt/iso
  4. #挂载
  5. mkdir -p /work
  6. #创建/work目录, 用于存放iso目录
  7. cp /mnt/iso /work/ubuntu
  8. chmod a+w -R /work/ubuntu
  9. #复制用于编辑
  10. cp /work/ubuntu /work/ubuntu_bak
  11. #备份

修改文件

修改isolinux/isolinux.cfg

  1. # path
  2. include menu.cfg
  3. default vesamenu.c32
  4. prompt 0
  5. timeout 0
  6. #ui gfxboot bootlogo

isolinux.cfg会加载menu.cfg文件,该文件又会加载txt.cfg。我们需要修改txt.cfg文件

:::info ubuntu无需设置卷标,直接/cdrom/路径开头就可以用软件刻录用u盘安装系统。读取根目录的preseed.cfg文件 :::

  1. default install
  2. label install
  3. menu label ^Auto install Server
  4. kernel /install/vmlinuz
  5. append file=/cdrom/preseed.cfg vga=788 auto=true initrd=/install/initrd.gz quiet ---

在/目录创建preseed.cfg文件,简单的preseed.cfg文件

该文件最好写英文注释,去掉中文,避免mkisofs生成出现问题,导致找不到该文件

  1. d-i debian-installer/locale string en_US
  2. d-i console-setup/ask_detect boolean false
  3. d-i console-setup/layoutcode string us
  4. d-i console-setup/variantcode string
  5. d-i keyboard-configuration/layoutcode string us
  6. d-i passwd/root-login boolean true
  7. d-i passwd/root-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
  8. d-i user-setup/allow-password-weak boolean true
  9. d-i passwd/user-fullname string ubuntu
  10. d-i passwd/username string ubuntu
  11. d-i passwd/user-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
  12. d-i user-setup/encrypt-home boolean false
  13. d-i netcfg/enable boolean false
  14. d-i netcfg/get_hostname string ubuntu
  15. d-i netcfg/get_domain string ubuntu
  16. d-i apt-setup/use_mirror boolean false
  17. d-i apt-setup/cdrom/set-first boolean false
  18. d-i apt-setup/cdrom/set-next boolean false
  19. d-i apt-setup/cdrom/set-failed boolean false
  20. d-i clock-setup/utc boolean false
  21. d-i time/zone string Asia/Shanghai
  22. d-i clock-setup/ntp boolean false
  23. tasksel tasksel/first multiselect standard
  24. d-i pkgsel/include string vim openssh-server
  25. d-i pkgsel/upgrade select none
  26. d-i pkgsel/update-policy select none
  27. d-i pkgsel/install-language-support boolean true
  28. d-i grub-installer/skip boolean false
  29. d-i lilo-installer/skip boolean false
  30. d-i grub-installer/only_debian boolean true
  31. d-i grub-installer/timeout string 2
  32. d-i grub-installer/with_other_os boolean true
  33. d-i grub-installer/password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
  34. d-i debian-installer/quiet boolean false
  35. d-i debian-installer/splash boolean false
  36. d-i finish-install/keep-consoles boolean false
  37. d-i finish-install/reboot_in_progress note
  38. d-i cdrom-detect/eject boolean true
  39. d-i debian-installer/exit/halt boolean false
  40. d-i debian-installer/exit/poweroff boolean false

preseed详解

语言

  1. # 英文语言
  2. d-i debian-installer/locale string en_US

键盘

  1. # 英文键盘
  2. d-i console-setup/ask_detect boolean false
  3. d-i console-setup/layoutcode string us
  4. d-i console-setup/variantcode string
  5. d-i keyboard-configuration/layoutcode string us

时钟设置

  1. d-i clock-setup/utc boolean false
  2. d-i time/zone string Asia/Shanghai
  3. d-i clock-setup/ntp boolean false

用户

  1. # 允许root登录:允许
  2. d-i passwd/root-login boolean true
  3. # root密码,使用grub-md5-crypt命令生成密文
  4. d-i passwd/root-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
  5. #
  6. d-i user-setup/allow-password-weak boolean true
  7. #用户全名
  8. d-i passwd/user-fullname string ubuntu
  9. #用户
  10. d-i passwd/username string ubuntu
  11. #用户密码
  12. d-i passwd/user-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
  13. #加密用户家目录:不加密
  14. d-i user-setup/encrypt-home boolean false

网络

  1. # 网络
  2. # 跳过网络设置,不使用dhcp也不使用配置静态,也不会出现界面让你选择,这个步骤直接跳过了
  3. # 如果你不想跳过,想直接手动通过界面修改,那么注释该语句
  4. d-i netcfg/enable boolean false
  5. # 主机名
  6. d-i netcfg/get_hostname string ubuntu
  7. # 域名
  8. d-i netcfg/get_domain string ubuntu

apt源

  1. # 以下语句关闭apt源,这样不会因为网络原因去检测apt源是否可用,因为这个会卡在无人值页面,由用户去设置,所以一定要屏蔽掉
  2. # 但是这样安装完的apt源/etc/apt/source.list有问题的,如果你需要可用的源
  3. # 可以下载阿里源、镜像源,也可以改回之前正常的源
  4. d-i apt-setup/use_mirror boolean false
  5. d-i apt-setup/cdrom/set-first boolean false
  6. d-i apt-setup/cdrom/set-next boolean false
  7. d-i apt-setup/cdrom/set-failed boolean false

安装软件

  1. tasksel tasksel/first multiselect standard
  2. d-i pkgsel/include string vim openssh-server
  3. d-i pkgsel/upgrade select none
  4. d-i pkgsel/update-policy select none
  5. d-i pkgsel/install-language-support boolean true

GRUB引导

  1. d-i grub-installer/skip boolean false
  2. d-i lilo-installer/skip boolean false
  3. d-i grub-installer/only_debian boolean true
  4. d-i grub-installer/timeout string 2
  5. d-i grub-installer/with_other_os boolean true
  6. d-i grub-installer/password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
  7. d-i debian-installer/quiet boolean false
  8. d-i debian-installer/splash boolean false

安装完设置

  1. d-i finish-install/keep-consoles boolean false
  2. d-i finish-install/reboot_in_progress note
  3. d-i cdrom-detect/eject boolean true
  4. d-i debian-installer/exit/halt boolean false
  5. d-i debian-installer/exit/poweroff boolean false
  1. ## 预配置
  2. 预配置是在安装系统前可以使用基础的命令,如fdisk命令,可以用于实现判断磁盘大小
  3. ## 后配置
  4. 预配置是在安装系后的操作
  5. ## 精简软件包
  6. 脚本的作用是 进入deb目录,如果系统有这个软件保留,没有这个软件则删除
  7. find语句我发现没有用,这个是删除关于d大小为0的文件,所以我注释了
  8. rm语句注释,如果发现查找的文件没有问题,再开启,避免误删文件
  9. 因为是在原有的基础上,减少软件包无需生成release
  10. ```bash
  11. #!/bin/bash
  12. for j in *
  13. do
  14. cd $j
  15. for k in *
  16. do
  17. cd $k
  18. for l in *.deb
  19. do
  20. if [ $l != "*.deb" ]
  21. then
  22. n=$(dpkg -l $(echo $l | cut -f1 -d"_") 2> /dev/null| grep "^ii")
  23. if [ -z "$n" ]
  24. then
  25. # rm $l
  26. echo $l
  27. fi
  28. fi
  29. done
  30. cd ..
  31. done
  32. cd ..
  33. done
  34. #find -depth -type d -empty -exec rmdir {} \;

改回正常的源 http://security.ubuntu.com/ubuntu
我这边修改的是阿里源,本地source.list文件

apt install debconf-utils

debconf-get-selections —installer > file

磁盘小于2T用MBR,大于2T必须用gpt格式

生成ISO镜像

生成md5

  1. find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt

生成镜像

  1. apt -y install genisoimage
  2. mkisofs -r -V "linux" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /root/test-4.iso /cola1/

不配置网络

  1. sed -i 's@PermitRootLogin prohibit-password@PermitRootLogin yes@' /etc/ssh/sshd_config

瓦雀