
介绍
编写此脚本是为了将 VPS/VM 重新安装到最小的 Debian。
平台
- ✔ KVM 或物理机❌容器
- ✔ Debian 或 Ubuntu 或 Red Hat Linux 作为原始作系统,带有 GRUB 2 引导加载程序
- ✔ MBR 或 GPT 分区表
- ✔ 多个磁盘或 LVM
- ✔ IPv4 或 IPv6
- ✔ 传统 BIOS 或 UEFI 启动
- ✔ 大多数 VPS 或云提供商
- ⚠️Google Compute Engine – 必须手动指定 VPC 的 IP/CIDR 和网关
- ⚠️AWS EC2 或 Lightsail – 不适用于 UEFI 引导
如何运作
- 生成预置文件以自动安装
- 将 ‘debian-installer’ 下载到目录
/boot
- 将安装程序的菜单项附加到 GRUB2 配置文件中
用法
1. 下载
使用 curl 下载脚本:
curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
或 wget:
wget -O debi.sh https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
2. 运行
在 root 下或使用 sudo 运行脚本:
chmod a+rx debi.sh
sudo ./debi.sh
默认情况下,在安装过程中将创建具有 sudo 权限的 admin 用户。如果您愿意,请使用debian
--user root
3. 重新启动
如果一切正常,请重新启动计算机:
sudo shutdown -r now
否则,您可以运行以下命令来恢复脚本所做的所有更改:
sudo rm -rf debi.sh /etc/default/grub.d/zz-debi.cfg /boot/debian-* && { sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfg; }
可用选项
预设
地区 | 别名 | 镜子 | DNS 解析 | NTP |
---|---|---|---|---|
全球 | Default | https://deb.debian.org | time.google.com | |
全球 | --cloudflare | https://deb.debian.org | Cloudflare | time.cloudflare.com |
全球 | --aws | https://cdn-aws.deb.debian.org | time.aws.com | |
中国 | --ustc | https://mirrors.ustc.edu.cn | DNSPod | time.amazonaws.cn |
中国 | --tuna | https://mirrors.tuna.tsinghua.edu.cn | DNSPod | time.amazonaws.cn |
中国 | --aliyun | https://mirrors.aliyun.com | AliDNS | time.amazonaws.cn |
网络相关参数
--interface <字符串>
手动选择网络接口,例如:eth1
--ethx
禁用一致性网络设备命名规则(Consistent Network Device Naming),恢复传统接口命名方式,如ethX
--ip <字符串>
禁用自动网络配置(DHCP),手动配置静态 IP,例如:10.0.0.21/24
或 IPv6 地址如:2001:2345:6789:abcd::ef/48
--static-ipv4
禁用自动网络配置(DHCP),自动使用当前检测到的 IPv4 地址和网关配置静态 IP--netmask <字符串>
设置子网掩码,例如:255.255.255.0
或 IPv6 掩码如:ffff:ffff:ffff:ffff::
--gateway <字符串>
设置默认网关地址,例如:10.0.0.1
,若无网关可填none
--dns '8.8.8.8 8.8.4.4'
设置 DNS 服务器地址(IPv4)--dns6 '2001:4860:4860::8888 2001:4860:4860::8844'
设置 DNS 服务器地址(IPv6,仅在启用 IPv6 时有效)--hostname <字符串>
设置主机名(包含完整域名),如:server1.example.com
--network-console
启用安装器的网络控制台,可通过 SSH 登录方式连接:ssh installer@ip
版本与安装源设置
--version 12
指定 Debian 主版本号,支持:10、11、12、13--suite bullseye
指定 Debian 发布分支(若无特殊需求建议使用--version
),如:stable
、testing
、sid
--release-d-i
使用官方发布版本的 Debian 安装器(如:12 = bookworm,11 = bullseye,10 = buster)--daily-d-i
使用尚未发布版本(如 13 = trixie 或 sid)的每日构建版安装器--mirror-protocol http
设置镜像使用协议:http
、https
或ftp
--https
--mirror-protocol https
的别名--reuse-proxy
复用系统环境变量中的代理设置,如http_proxy
或https_proxy
--proxy
、--mirror-proxy
设置用于 APT 下载的 HTTP 代理地址--mirror-host deb.debian.org
设置 Debian 镜像主机--mirror-directory /debian
设置 Debian 镜像目录路径--security-repository http://security.debian.org/debian-security
设置安全更新仓库(使用mirror
为特殊值,自动构造地址)
账户与认证配置
--no-account-setup
、--no-user
不创建新用户,手动通过 VNC 或远程控制台完成账户设置--username
、--user debian
新建具有sudo
或 root 权限的用户--password <字符串>
新用户的密码,如果不在此指定,安装过程中会提示输入--authorized-keys-url <字符串>
指定用于 SSH 登录的公钥 URL,例如:https://github.com/torvalds.keys
--sudo-with-password
用户使用sudo
命令时需要输入密码
时区与时间同步
--timezone Asia/Shanghai
设置时区,例如中国使用Asia/Shanghai
(UTC+8)--ntp time.google.com
设置 NTP 时间服务器
磁盘与分区配置
--no-disk-partitioning
、--no-part
不进行磁盘自动分区,由用户通过 VNC 或控制台手动分区--disk <字符串>
手动选择安装磁盘,在存在多个磁盘时必须指定,如:/dev/sda
--no-force-gpt
默认使用 GPT 分区表,使用该参数禁用 GPT,改用 MBR--bios
创建 BIOS 启动分区而非 EFI(当没有 EFI 系统时默认使用)--efi
创建 EFI 启动分区(默认在 EFI 系统存在时使用)--esp 106
设置 EFI 启动分区大小(单位 MiB),如:106=100MiB
,538=512MiB
,1075=1GiB
系统文件与软件配置
--filesystem ext4
设置文件系统格式,例如:ext4--kernel <字符串>
指定要安装的内核包--cloud-kernel
选择云主机使用的内核(如:linux-image-cloud-amd64
或arm64
)--bpo-kernel
使用 Debian Backports 源的内核(较新版本)--no-install-recommends
安装过程中不安装推荐包(更精简)--apt-non-free-firmware
、--apt-non-free
、--apt-contrib
、--apt-src
、--apt-backports
启用对应的 APT 仓库--no-apt-*
禁用上述仓库--install 'ca-certificates libpam-systemd'
安装额外软件包(空格分隔,需加引号)
升级策略
--safe-upgrade
默认升级策略:apt upgrade --with-new-pkgs
--full-upgrade
强制升级策略:apt dist-upgrade
--no-upgrade
不进行任何升级
性能与引导配置
--bbr
启用 TCP BBR 拥塞控制算法--ssh-port <端口号>
设置 SSH 端口--hold
安装后不自动重启或关机--power-off
安装完成后关机(默认是重启)--architecture <字符串>
指定系统架构,如:amd64
、i386
、arm64
、armhf
--firmware
加载非自由固件--no-force-efi-extra-removable
相关于 EFI 的高级设置(详见文档)--grub-timeout 5
设置 GRUB 启动菜单停留时间(单位:秒)--force-lowmem <整数>
强制低内存模式,适用于内存小于 500MB 的设备(值范围:0、1、2;建议设置为1
)--dry-run
模拟运行,输出生成的预设配置和 GRUB 启动项,但不下载或保存实际文件--cidata ./cidata-example
使用自定义cloud-init
数据,忽略虚拟机供应商提供的数据源
中文说明
下载脚本:
curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh && chmod a+rx debi.sh
运行脚本:
sudo ./debi.sh --cdn --network-console --ethx --bbr --user root --password <新系统用户密码>
--bbr
开启 BBR--ethx
网卡名称使用传统形式,如 而不是eth0
ens3
--cloud-kernel
安装占用空间较小的 内核,但可能会导致 UEFI 启动的机器(如 Oracle、Azure 及 Hyper-V、Google Cloud 等)VNC 黑屏。BIOS 启动的普通 VPS 则没有此问题。cloud
- 默认时区为 UTC,添加 可使用中国时区。
--timezone Asia/Shanghai
- 默认使用 Debian 官方 CDN 镜像源(deb.debian.org),添加 可使用中科大镜像源。
--ustc
如果没有报错可以重启:
sudo shutdown -r now
约 30 秒后可以尝试 SSH 登录 用户,密码与之前设置的相同。如果连接成功,可以按 Ctrl-A 然后再按 4 监控安装日志。安装完成后会自动重启进入新系统。installer
原创文章,作者:中国IPv6网,如若转载,请注明出处:https://www.ipv6s.com/soft/202506134072.html