Reinstall your VPS to minimal Debian
UNLICENSE License
This script is written to reinstall VPS/VMs to minimal Debian.
/boot
directoryDownload the script with curl:
curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
or wget:
wget -O debi.sh https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh
Run the script under root or using sudo:
chmod a+rx debi.sh
sudo ./debi.sh
By default, an admin user debian
with sudo privilege will be created during the installation. Use --user root
if you prefer.
If everything looks good, reboot the machine:
sudo shutdown -r now
Otherwise, you can run this command to revert all changes made by the script:
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; }
Region | Alias | Mirror | DNS | NTP |
---|---|---|---|---|
Global | Default | https://deb.debian.org | time.google.com | |
Global | --cloudflare |
https://deb.debian.org | Cloudflare | time.cloudflare.com |
Global | --aws |
https://cdn-aws.deb.debian.org | time.aws.com | |
China | --ustc |
https://mirrors.ustc.edu.cn | DNSPod | time.amazonaws.cn |
China | --tuna |
https://mirrors.tuna.tsinghua.edu.cn | DNSPod | time.amazonaws.cn |
China | --aliyun |
https://mirrors.aliyun.com | AliDNS | time.amazonaws.cn |
--interface <string>
Manually select a network interface, e.g. eth1--ethx
Disable Consistent Network Device Naming to get interface names like ethX back--ip <string>
Disable the auto network config (DHCP) and configure a static IP address, e.g. 10.0.0.2
, 1.2.3.4/24
, 2001:2345:6789:abcd::ef/48
--netmask <string>
e.g. 255.255.255.0
, ffff:ffff:ffff:ffff::
--gateway <string>
e.g. 10.0.0.1
, none
if no gateway--dns '8.8.8.8 8.8.4.4'
--dns6 '2001:4860:4860::8888 2001:4860:4860::8844'
(effective only if IPv6 is specified)--hostname <string>
FQDN hostname (includes the domain name), e.g. server1.example.com
--network-console
Enable the network console of the installer. ssh installer@ip
to connect--version 12
Supports: 10
, 11
, 12
, 13
--suite bullseye
Please use --version
instead if you don't have special needs. e.g. stable
, testing
, sid
--release-d-i
d-i (Debian Installer) for the released versions: 12 (bookworm), 11 (bullseye) and 10 (buster)--daily-d-i
Use latest daily build of d-i (Debian Installer) for the unreleased version: 13 (trixie), sid (unstable)--mirror-protocol http
or https
or ftp
--https
alias to --mirror-protocol https
--reuse-proxy
Reuse the value of http(s)_proxy
environment variable as the mirror proxy--proxy, --mirror-proxy
Set an HTTP proxy for APT and downloads--mirror-host deb.debian.org
--mirror-directory /debian
--security-repository http://security.debian.org/debian-security
Magic value: 'mirror' = <mirror-protocol>://<mirror-host>/<mirror-directory>/../debian-security
--no-account-setup, --no-user
(Manual installation) Proceed account setup manually in VNC or remote console.--username, --user debian
New user with sudo
privilege or root
--password <string>
Password of the new user. You'll be prompted if you choose to not specify it here
--authorized-keys-url <string>
URL to your authorized keys for SSH authentication. e.g. https://github.com/torvalds.keys
--sudo-with-password
Require password when the user invokes sudo
command--timezone UTC
e.g. Asia/Shanghai
for China (UTC+8) https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
--ntp time.google.com
--no-disk-partitioning, --no-part
(Manual installation) Proceed disk partitioning manually in VNC or remote console--disk <string>
Manually select a disk for installation. Please remember to specify this when more than one disk is available! e.g. /dev/sda
--no-force-gpt
By default, GPT rather than MBR partition table will be created. This option disables it.--bios
Don't create EFI system partition. If GPT is being used, create a BIOS boot partition (bios_grub
partition). Default if /sys/firmware/efi
is absent. See
--efi
Create an EFI system partition. Default if /sys/firmware/efi
exists--esp 106
Size of the EFI system partition. e.g. 106
, 538
and 1075
result to 100 MiB, 512 MiB, 1 GiB respectively--filesystem ext4
--kernel <string>
Choose an package for the kernel image--cloud-kernel
Choose linux-image-cloud-amd64
or ...arm64
as the kernel image--bpo-kernel
Choose the kernel image from Debian Backports (newer version from the next Debian release)--no-install-recommends
--apt-non-free-firmware
, --apt-non-free
, --apt-contrib
, --apt-src
, --apt-backports
--no-apt-non-free-firmware
, --no-apt-non-free
, --no-apt-contrib
, --no-apt-src
, --no-apt-backports
--install 'ca-certificates libpam-systemd'
Install additional APT packages. Space-separated and quoted.--safe-upgrade
(Default) apt upgrade --with-new-pkgs
. See
--full-upgrade
apt dist-upgrade
--no-upgrade
--bbr
Enable TCP BBR congestion control--ssh-port <integer>
SSH port--hold
Don't reboot or power off after installation--power-off
Power off after installation rather than reboot--architecture <string>
e.g. amd64
, i386
, arm64
, armhf
, etc.--firmware
Load additional non-free firmwares
--no-force-efi-extra-removable
See
--grub-timeout 5
How many seconds the GRUB menu shows before entering the installer--force-lowmem <integer>
Valid values: 0, 1, 2. Force low memory level. Useful if your machine has memory less than 500M where level 2 is set (see issue #45). --force-lowmem 1
may solve it.--dry-run
Print generated preseed and GRUB entry without downloading the installer and actually saving them--cidata ./cidata-example
Custom data for cloud-init. VM provider's data source will be IGNORED. See example.下载脚本:
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
安装占用空间较小的 cloud
内核,但可能会导致 UEFI 启动的机器(如 Oracle、Azure 及 Hyper-V、Google Cloud 等)VNC 黑屏。BIOS 启动的普通 VPS 则没有此问题。--timezone Asia/Shanghai
可使用中国时区。--ustc
可使用中科大镜像源。如果没有报错可以重启:
sudo shutdown -r now
约 30 秒后可以尝试 SSH 登录 installer
用户,密码与之前设置的相同。如果成功连接,可以按 Ctrl-A 然后再按 4 监控安装日志。安装完成后会自动重启进入新系统。