Ubuntu 无人值守安装项目教程

Ubuntu 无人值守安装项目教程

1. 项目的目录结构及介绍

ubuntu-unattended/
├── LICENSE
├── README.md
├── create-unattended-iso.sh
├── ks.cfg
├── preseed.cfg
└── scripts/
    ├── 00-apt-get-update.sh
    ├── 01-apt-get-upgrade.sh
    ├── 02-install-additional-software.sh
    └── 03-cleanup.sh
  • LICENSE: 项目许可证文件。
  • README.md: 项目说明文档。
  • create-unattended-iso.sh: 主要脚本文件,用于创建无人值守安装的ISO镜像。
  • ks.cfg: Kickstart配置文件,用于Red Hat系列系统的无人值守安装。
  • preseed.cfg: Preseed配置文件,用于Debian系列系统的无人值守安装。
  • scripts/: 包含一系列脚本文件,用于在安装过程中执行特定的任务,如更新、升级和清理。

2. 项目的启动文件介绍

create-unattended-iso.sh

该脚本是项目的核心文件,用于创建无人值守安装的ISO镜像。主要功能包括:

  • 下载Ubuntu ISO镜像。
  • 挂载ISO镜像。
  • 复制ISO内容到临时目录。
  • 修改启动菜单和配置文件。
  • 创建新的ISO镜像。

脚本的关键部分如下:

#!/bin/bash

# 下载ISO镜像
wget -O ubuntu.iso http://releases.ubuntu.com/20.04/ubuntu-20.04-desktop-amd64.iso

# 挂载ISO镜像
mkdir -p /mnt/iso
mount -o loop ubuntu.iso /mnt/iso

# 复制ISO内容到临时目录
mkdir -p /tmp/iso
cp -r /mnt/iso/* /tmp/iso/

# 修改启动菜单和配置文件
cp preseed.cfg /tmp/iso/preseed/
sed -i 's|file=/cdrom/preseed/ubuntu.seed|file=/cdrom/preseed/preseed.cfg|g' /tmp/iso/isolinux/txt.cfg

# 创建新的ISO镜像
mkisofs -D -r -V "UNATTENDED_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o unattended-ubuntu.iso /tmp/iso

3. 项目的配置文件介绍

preseed.cfg

该文件是Preseed配置文件,用于在安装过程中自动回答各种问题。主要配置项包括:

  • 语言和地区设置

    d-i debian-installer/locale string en_US
    d-i localechooser/supported-locales multiselect en_US.UTF-8
    
  • 键盘布局

    d-i keyboard-configuration/xkb-keymap select us
    
  • 网络配置

    d-i netcfg/choose_interface select auto
    d-i netcfg/get_hostname string ubuntu
    d-i netcfg/get_domain string localdomain
    
  • 用户和密码

    d-i passwd/user-fullname string Ubuntu User
    d-i passwd/username string ubuntu
    d-i passwd/user-password password ubuntu
    d-i passwd/user-password-again password ubuntu
    
  • 磁盘分区

    d-i partman-auto/method string regular
    d-i partman-auto/choose_recipe select atomic
    
  • 软件包选择

    d-i pkgsel/include string openssh-server build-essential
    
  • 安装后的脚本

    d-i preseed/late_command string in-target sh -c 'wget -O /tmp/post-install.sh https://example.com/post-install.sh && chmod +x /tmp/post-install.sh && /tmp/post-install.sh'
    

通过这些配置文件和脚本,

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值