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;
相关推荐
夏日听雨眠4 小时前
LInux(逻辑地址与物理地址的区别,文件描述符,lseek函数)
linux·运维·网络
哲霖软件5 小时前
ERP 赋能非标自动化行业:破解物料与库存管理难题
运维·自动化
火车叼位6 小时前
替代 Tiny Win10 的 Linux 方案:Debian XFCE 精简桌面搭建
linux·运维
syagain_zsx7 小时前
Linux指令初识(实用篇)
linux·运维·服务器
OYangxf7 小时前
Git Commit Message
运维·git
Alter12307 小时前
从“力大砖飞”到“拟态共生”,新华三定义AI基础设施的系统级进化
大数据·运维·人工智能
王木风8 小时前
终端里的编程副驾:DeepSeek-TUI-项目深度拆解,实测与原理分析
linux·运维·人工智能·rust·node.js
槑槑紫8 小时前
windows系统装轻量版linux开发
linux·运维·服务器
齐潇宇8 小时前
k8s-Helm管理器
linux·运维·云原生·容器·kubernetes
小王C语言9 小时前
Windows和Linux之间文件互传
linux·运维·服务器