ubuntu、debian是用的debian-installer程序进行无人值的,通常是preseed.cfg
文件
ubuntu16官方文档:
挂载镜像
本地先手动安装镜像ubuntu-16.04-server-amd64.iso
,测试该镜像对于当前的硬件环境是否正常兼容
将该镜像挂载到Linux系统中,通过对镜像内容编辑,用linux命令mkisofs
生成修改后的镜像
mkdir /mnt/iso
#创建挂载点
mount /dev/sr0 /mnt/iso
#挂载
mkdir -p /work
#创建/work目录, 用于存放iso目录
cp /mnt/iso /work/ubuntu
chmod a+w -R /work/ubuntu
#复制用于编辑
cp /work/ubuntu /work/ubuntu_bak
#备份
修改文件
修改isolinux/isolinux.cfg
# path
include menu.cfg
default vesamenu.c32
prompt 0
timeout 0
#ui gfxboot bootlogo
isolinux.cfg
会加载menu.cfg
文件,该文件又会加载txt.cfg
。我们需要修改txt.cfg文件
:::info ubuntu无需设置卷标,直接/cdrom/路径开头就可以用软件刻录用u盘安装系统。读取根目录的preseed.cfg文件 :::
default install
label install
menu label ^Auto install Server
kernel /install/vmlinuz
append file=/cdrom/preseed.cfg vga=788 auto=true initrd=/install/initrd.gz quiet ---
在/目录创建preseed.cfg文件,简单的preseed.cfg文件
该文件最好写英文注释,去掉中文,避免mkisofs生成出现问题,导致找不到该文件
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/variantcode string
d-i keyboard-configuration/layoutcode string us
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
d-i user-setup/allow-password-weak boolean true
d-i passwd/user-fullname string ubuntu
d-i passwd/username string ubuntu
d-i passwd/user-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
d-i user-setup/encrypt-home boolean false
d-i netcfg/enable boolean false
d-i netcfg/get_hostname string ubuntu
d-i netcfg/get_domain string ubuntu
d-i apt-setup/use_mirror boolean false
d-i apt-setup/cdrom/set-first boolean false
d-i apt-setup/cdrom/set-next boolean false
d-i apt-setup/cdrom/set-failed boolean false
d-i clock-setup/utc boolean false
d-i time/zone string Asia/Shanghai
d-i clock-setup/ntp boolean false
tasksel tasksel/first multiselect standard
d-i pkgsel/include string vim openssh-server
d-i pkgsel/upgrade select none
d-i pkgsel/update-policy select none
d-i pkgsel/install-language-support boolean true
d-i grub-installer/skip boolean false
d-i lilo-installer/skip boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/timeout string 2
d-i grub-installer/with_other_os boolean true
d-i grub-installer/password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
d-i debian-installer/quiet boolean false
d-i debian-installer/splash boolean false
d-i finish-install/keep-consoles boolean false
d-i finish-install/reboot_in_progress note
d-i cdrom-detect/eject boolean true
d-i debian-installer/exit/halt boolean false
d-i debian-installer/exit/poweroff boolean false
preseed详解
语言
# 英文语言
d-i debian-installer/locale string en_US
键盘
# 英文键盘
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/variantcode string
d-i keyboard-configuration/layoutcode string us
时钟设置
d-i clock-setup/utc boolean false
d-i time/zone string Asia/Shanghai
d-i clock-setup/ntp boolean false
用户
# 允许root登录:允许
d-i passwd/root-login boolean true
# root密码,使用grub-md5-crypt命令生成密文
d-i passwd/root-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
#
d-i user-setup/allow-password-weak boolean true
#用户全名
d-i passwd/user-fullname string ubuntu
#用户
d-i passwd/username string ubuntu
#用户密码
d-i passwd/user-password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
#加密用户家目录:不加密
d-i user-setup/encrypt-home boolean false
网络
# 网络
# 跳过网络设置,不使用dhcp也不使用配置静态,也不会出现界面让你选择,这个步骤直接跳过了
# 如果你不想跳过,想直接手动通过界面修改,那么注释该语句
d-i netcfg/enable boolean false
# 主机名
d-i netcfg/get_hostname string ubuntu
# 域名
d-i netcfg/get_domain string ubuntu
apt源
# 以下语句关闭apt源,这样不会因为网络原因去检测apt源是否可用,因为这个会卡在无人值页面,由用户去设置,所以一定要屏蔽掉
# 但是这样安装完的apt源/etc/apt/source.list有问题的,如果你需要可用的源
# 可以下载阿里源、镜像源,也可以改回之前正常的源
d-i apt-setup/use_mirror boolean false
d-i apt-setup/cdrom/set-first boolean false
d-i apt-setup/cdrom/set-next boolean false
d-i apt-setup/cdrom/set-failed boolean false
安装软件
tasksel tasksel/first multiselect standard
d-i pkgsel/include string vim openssh-server
d-i pkgsel/upgrade select none
d-i pkgsel/update-policy select none
d-i pkgsel/install-language-support boolean true
GRUB引导
d-i grub-installer/skip boolean false
d-i lilo-installer/skip boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/timeout string 2
d-i grub-installer/with_other_os boolean true
d-i grub-installer/password-crypted password $1$hZzTN1$dFKO/okBaidPvfVGTDha51
d-i debian-installer/quiet boolean false
d-i debian-installer/splash boolean false
安装完设置
d-i finish-install/keep-consoles boolean false
d-i finish-install/reboot_in_progress note
d-i cdrom-detect/eject boolean true
d-i debian-installer/exit/halt boolean false
d-i debian-installer/exit/poweroff boolean false
## 预配置
预配置是在安装系统前可以使用基础的命令,如fdisk命令,可以用于实现判断磁盘大小
## 后配置
预配置是在安装系后的操作
## 精简软件包
脚本的作用是 进入deb目录,如果系统有这个软件保留,没有这个软件则删除
find语句我发现没有用,这个是删除关于d大小为0的文件,所以我注释了
把rm语句注释,如果发现查找的文件没有问题,再开启,避免误删文件
因为是在原有的基础上,减少软件包无需生成release
```bash
#!/bin/bash
for j in *
do
cd $j
for k in *
do
cd $k
for l in *.deb
do
if [ $l != "*.deb" ]
then
n=$(dpkg -l $(echo $l | cut -f1 -d"_") 2> /dev/null| grep "^ii")
if [ -z "$n" ]
then
# rm $l
echo $l
fi
fi
done
cd ..
done
cd ..
done
#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
find . -type f -print0 | xargs -0 md5sum | grep -v "\./md5sum.txt" > md5sum.txt
生成镜像
apt -y install genisoimage
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/
不配置网络
sed -i 's@PermitRootLogin prohibit-password@PermitRootLogin yes@' /etc/ssh/sshd_config