VirtualBox Debian 自动安装脚本

概览

相较于原脚本(安装目录/UnattendedTemplates/debian_pressed.cfg)更新如下内容:

  1. 配置清华镜像源
  2. 配置仅主机网卡(后续只需添加仅主机网卡即可)
  3. 配置Root用户远程登录
  4. 配置用户sudo组

脚本 debian_pressed.cfg

bash 复制代码
### Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select atomic

# This makes partman automatically partition without confirmation
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

# Locale
d-i debian-installer/locale string @@VBOX_INSERT_LOCALE@@
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i keyboard-configuration/xkb-keymap select us

# Network
d-i netcfg/get_hostname string @@VBOX_INSERT_HOSTNAME_WITHOUT_DOMAIN@@
d-i netcfg/get_domain string @@VBOX_INSERT_HOSTNAME_DOMAIN@@
d-i netcfg/choose_interface select auto

# Clock
@@VBOX_COND_IS_RTC_USING_UTC@@
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
@@VBOX_COND_END@@
@@VBOX_COND_IS_NOT_RTC_USING_UTC@@
d-i clock-setup/utc-auto boolean false
d-i clock-setup/utc boolean false
@@VBOX_COND_END@@
d-i time/zone string @@VBOX_INSERT_TIME_ZONE_UX@@
@@VBOX_COND_IS_INSTALLING_ADDITIONS@@d-i clock-setup/ntp boolean false@@VBOX_COND_END@@
@@VBOX_COND_IS_NOT_INSTALLING_ADDITIONS@@d-i clock-setup/ntp boolean true@@VBOX_COND_END@@

# Packages, Mirrors, Image
d-i base-installer/kernel/override-image string linux-server
d-i base-installer/kernel/override-image string linux-image-amd64
d-i pkgsel/install-language-support boolean false


@@VBOX_COND_AVOID_UPDATES_OVER_NETWORK@@
# d-i apt-setup/use_mirror boolean true
# d-i netcfg/no_default_route true
d-i netcfg/get_nameservers ""
@@VBOX_COND_END@@

@@VBOX_COND_IS_NOT_MINIMAL_INSTALLATION@@
# d-i apt-setup/restricted boolean true
# d-i apt-setup/universe boolean true
tasksel tasksel/first multiselect minimal
d-i pkgsel/include string openssh-server sudo vim
d-i pkgsel/upgrade select none
@@VBOX_COND_END@@@@VBOX_COND_IS_MINIMAL_INSTALLATION@@
tasksel tasksel/first multiselect minimal
d-i pkgsel/include string openssh-server sudo vim
d-i pkgsel/upgrade select none
@@VBOX_COND_END@@

# Users
d-i passwd/user-fullname string @@VBOX_INSERT_USER_FULL_NAME@@
d-i passwd/username string @@VBOX_INSERT_USER_LOGIN@@
d-i passwd/user-password password @@VBOX_INSERT_USER_PASSWORD@@
d-i passwd/user-password-again password @@VBOX_INSERT_USER_PASSWORD@@
d-i passwd/root-login boolean true
d-i passwd/root-password password @@VBOX_INSERT_ROOT_PASSWORD@@
d-i passwd/root-password-again password @@VBOX_INSERT_ROOT_PASSWORD@@
d-i user-setup/allow-password-weak boolean true
d-i passwd/user-default-groups string admin sudo

# Grub
d-i grub-installer/grub2_instead_of_grub_legacy boolean true
d-i grub-installer/only_debian boolean true

# Due notably to potential USB sticks, the location of the MBR can not be
# determined safely in general, so this needs to be specified:
#d-i grub-installer/bootdev  string /dev/sda
# To install to the first device (assuming it is not a USB stick):
d-i grub-installer/bootdev  string default

d-i finish-install/reboot_in_progress note

# Custom Commands.
# Note! Debian netboot images use busybox, so no bash.
#       Tell script to use target bash.
# 1. 配置清华像源
# 2. 配置仅主机网卡
# 3. 配置Root用户远程登录
d-i apt-setup/use_cdrom boolean false
d-i preseed/late_command string cp /cdrom/vboxpostinstall.sh /target/root/vboxpostinstall.sh \
    && chmod +x /target/root/vboxpostinstall.sh \
    && /bin/sh /target/root/vboxpostinstall.sh --need-target-bash --preseed-late-command; \
    in-target sh -c "mv /etc/apt/sources.list /etc/apt/sources.list.bak && touch /etc/apt/sources.list"; \
    in-target sh -c "echo 'deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware' > /etc/apt/sources.list"; \
    in-target sh -c "echo 'deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware' >> /etc/apt/sources.list"; \
    in-target sh -c "echo 'deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware' >> /etc/apt/sources.list"; \
    in-target sh -c "echo 'deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware' >> /etc/apt/sources.list"; \
    in-target apt-get update; \
    in-target sh -c "echo 'auto enp0s8' >> /etc/network/interfaces"; \
    in-target sh -c "echo 'iface enp0s8 inet dhcp' >> /etc/network/interfaces"; \
    in-target sed -i 's/^#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config;
相关推荐
镭速1 小时前
远程跨境传输大文件如何做到安全又稳定?
运维·服务器·安全
没有名字的小羊2 小时前
fastjson漏洞
运维·网络·web安全·中间件
成都古河云2 小时前
智慧园区:解析集成运维的未来之路
大数据·运维·人工智能·科技·5g·安全
ZH_qaq2 小时前
Linux 常用指令
linux·运维·服务器
码哝小鱼3 小时前
Openssl升级
linux·运维·服务器
Dragon_qu·x3 小时前
Certbot 生成 SSL 证书并配置自动续期
运维·网络协议·https·ssl
tRNA做科研3 小时前
Bio-Linux-shell详解-2-基本Shell命令快速掌握
linux·运维·服务器·生物信息·计算生物学
petaexpress3 小时前
容器云跟服务器有啥区别?五个区别要知道
运维·服务器
日出等日落3 小时前
Nginx 跨域 + 无法设置 Cookie 解决办法
运维·nginx
小林熬夜学编程5 小时前
【Linux系统编程】第二十弹---进程优先级 && 命令行参数 && 环境变量
linux·运维·服务器·c语言·开发语言·算法