Debian 实现自动安装
两种方式
- https://fai-project.org/ 适合大规模的安装,使用 https://fai-project.org/FAIme/ 在线构建安装包
- 使用 preseed 预配置文件安装
在 Debian Linux 中,可以使用预置文件(Preseed)来实现自动化安装。预置文件包含了一系列的配置选项,可以在安装过程中自动回答安装程序的问题,从而实现无人值守的安装。
以下是使用预置文件实现 Debian 自动安装的步骤:
1. 创建预置文件
首先,创建一个预置文件(例如 preseed.cfg
),其中包含了你希望在安装过程中自动回答的配置选项。以下是一个简单的预置文件示例:
# 选择语言和区域设置
d-i debian-installer/locale string en_US
d-i keyboard-configuration/xkb-keymap select us
# 配置网络
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string debian
d-i netcfg/get_domain string example.com
# 设置镜像源
d-i mirror/country string manual
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
# 设置用户和密码
d-i passwd/user-fullname string Debian User
d-i passwd/username string debian
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
# 分区设置
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# 安装基础系统
d-i base-installer/kernel/image string linux-image-amd64
# 安装引导加载程序
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/bootdev string /dev/sda
# 完成安装
d-i finish-install/reboot_in_progress note
2. 将预置文件放入安装介质
将预置文件放入 Debian 安装介质中。你可以通过以下几种方式实现:
- USB 安装介质:将
preseed.cfg
文件放入 USB 驱动器的根目录。 - 网络安装:将预置文件放在一个可以通过 HTTP 或 FTP 访问的服务器上。
3. 修改引导参数
在启动安装介质时,修改引导参数以指定预置文件的位置。例如:
USB 安装介质:
linux /install.amd/vmlinuz preseed/file=/cdrom/preseed.cfg
网络安装:
linux /install.amd/vmlinuz preseed/url=http://example.com/preseed.cfg
4. 启动安装
启动安装介质,安装程序将自动读取预置文件并根据其中的配置进行安装。
5. 完成安装
安装完成后,系统将自动重启,并根据预置文件中的配置进行初始化设置。
注意事项
- 预置文件中的密码应以明文形式存储,因此在实际生产环境中应谨慎处理。
- 预置文件中的配置选项应根据实际需求进行调整。
通过以上步骤,你可以使用预置文件实现 Debian Linux 的自动安装。
要基于 preseed.cfg
文件构建一个自定义的 Debian 安装镜像,你可以按照以下步骤操作。这种方法允许你创建一个包含预配置的 ISO 文件,从而实现完全自动化的安装。
根据preseed.cfg构建安装镜像
1:准备工作
安装依赖工具:
确保你的系统上安装了以下工具:sudo apt update sudo apt install debian-archive-keyring debootstrap xorriso isolinux syslinux-utils
- 下载官方 Debian ISO:
从 Debian 官方网站 下载一个官方的 Debian ISO 文件(例如debian-XX.X.X-amd64-netinst.iso
)。 创建工作目录:
创建一个工作目录,用于构建自定义镜像:mkdir ~/custom-debian-iso cd ~/custom-debian-iso
2:提取官方 ISO 文件
挂载官方 ISO 文件:
sudo mount -o loop /path/to/debian-XX.X.X-amd64-netinst.iso /mnt
将 ISO 内容复制到工作目录:
mkdir iso rsync -a /mnt/ iso/ sudo umount /mnt
3:添加预置文件
将你的
preseed.cfg
文件放入 ISO 的根目录:cp /path/to/preseed.cfg ~/custom-debian-iso/iso/
修改引导配置以加载预置文件:
编辑isolinux/isolinux.cfg
文件,在default
引导条目中添加preseed/file=/cdrom/preseed.cfg
:label install menu label ^Install kernel /install.amd/vmlinuz append vga=788 initrd=/install.amd/initrd.gz preseed/file=/cdrom/preseed.cfg ---
如果你希望通过网络加载预置文件,可以使用
preseed/url
:append vga=788 initrd=/install.amd/initrd.gz preseed/url=http://example.com/preseed.cfg ---
4:重新生成 ISO 文件
使用
xorriso
重新生成 ISO 文件:xorriso -as mkisofs \ -r -V "Custom Debian ISO" \ -o custom-debian.iso \ -J -J -joliet-long \ -b isolinux/isolinux.bin \ -c isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -eltorito-alt-boot \ -e boot/grub/efi.img \ -no-emul-boot \ iso
生成 ISO 文件的 MD5 校验和:
cd ~/custom-debian-iso md5sum custom-debian.iso > custom-debian.iso.md5
5:测试自定义 ISO
将生成的
custom-debian.iso
文件写入 USB 驱动器或虚拟机中:写入 USB 驱动器:
sudo dd if=custom-debian.iso of=/dev/sdX bs=4M status=progress
- 在虚拟机中加载 ISO 文件。
- 启动安装程序,验证是否自动加载了预置文件并完成安装。
注意事项
- 预置文件路径:
确保preseed.cfg
文件的路径在 ISO 中正确,并且在引导参数中正确指定。 - 网络安装:
如果使用网络安装,确保预置文件的 URL 可以通过网络访问。 - 兼容性:
确保预置文件中的配置选项与目标 Debian 版本兼容。 - 安全性:
预置文件中的敏感信息(如密码)应以加密方式存储,或在安装后手动修改。
通过以上步骤,你可以成功构建一个包含预置文件的 Debian 安装镜像,实现自动化安装。