Reinstall your VPS to minimal Debian
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Bohan Yang ee36b72026 Update README 7 years ago
LICENSE Create LICENSE 7 years ago
README.md Update README 7 years ago
netboot.sh Update 7 years ago

README.md

Setup Clean Debian OS for Your (Cloud) VPS

Step 1. Preparation

  • A clean normally running true virtualization (e.g. KVM) VPS with GRUB2 and VNC access. This script have been tested on SolusVM KVM VPS & Alibaba Cloud ECS with Debian 8/9 & Ubuntu 16.04/18.04.
  • Then check /etc/default/grub with your preferred editor (e.g. nano or vi).
  • Set GRUB_DEFAULT to debian-netboot-installer select the installer to boot automatically after timeout.
  • Make sure there's reasonable number for GRUB_TIMEOUT timeout. You can just set GRUB_TIMEOUT=30 which will be fine.
  • Make sure there's no GRUB_HIDDEN_TIMEOUT_QUIET and GRUB_HIDDEN_TIMEOUT. Just delete them.

Install dependencies:

sudo apt update && sudo apt -y install ca-certificates whois

Step 2. Run the Script

Replace following <OPTIONS> with your options.

sudo sh -c "$(wget -qO- https://github.com/brentybh/debian-netboot/raw/master/netboot.sh)" -- <OPTIONS>

Remember to enter your current user's password for sudo (if need) and then enter the new user's password (if not specified by -p).

All Options

  • -c CN Debian Installer Country Only useful for the Chinese Special settings
  • -fqdn debian FQDN including hostname and domain. Priority: -fqdn option > rDNS > debian as default.
  • -proto http Transport protocol for archive mirror only but not security repository (http, https, ftp)
  • -host deb.debian.org Host for archive mirror only but not security repository
  • -dir /debian Directory path relative to root of the mirror
  • -suite stretch Suite (stable, testing, stretch, etc.)
  • -u debian Username of admin account with sudo privilege
  • -p secret Password of the account (if not specified, it will be asked interactively)
  • -tz UTC Time zone
  • -ntp pool.ntp.org NTP server
  • -upgrade full-upgrade Whether to upgrade packages after debootstrap (none, safe-upgrade, full-upgrade)
  • -s http://security.debian.org/debian-security Custom URL for security repository mirror
  • -fs ext4 Filesystem for partition
  • -crypto Full disk encryption (Can't be fully automated at current time. Need VNC connection to go through the steps)
  • -ip 192.168.1.42 Configure network manually with an IP address (the following -cidr, -gw and -dns options only work when an IP address is specified)
  • -cidr 255.255.255.0 Netmask for manual network configuration
  • -gw 192.168.1.1 Gateway for manual network configuration
  • -ns "8.8.8.8 8.8.4.4" DNS for manual network configuration
  • -add "ca-certificates curl fail2ban openssl whois" Include individual additional packages to install
  • -ssh secret Enable network console and specify password for SSH access during install process. You can login with installer user and check system logs.
  • -ssh-pubkey https://example.com/id_rsa.pub Enable network console and specify SSH public key for SSH access during install process. You can login with installer user and check system logs. You can't access with password if a public key is provided here.
  • -dry-run Generate preseed.cfg and save to current dir but don't actually do anything
  • -manually Manually configure user account and disk partition, etc. (Network, repository mirror & time related settings will be auto-configured)
  • -arch amd64 Specify architecture (useful under CentOS)
  • -lvm Use / as the boot root path for the grub.cfg instead of /boot, useful under LVM partition disks

Chinese Special

If -c CN is used, Chinese Special options will be setup for good connectivity and experience against GFW.

  • Default archive mirror is https://chinanet.mirrors.ustc.edu.cn/debian.
  • Default security mirror is https://chinanet.mirrors.ustc.edu.cn/debian-security.
  • Default time zone is Asia/Shanghai.
  • Default NTP server is cn.ntp.org.cn.
  • Default DNS is 156.154.70.5 156.154.71.5.
  • All custom settings will override above defaults.

Step 3. Entering Debian Installer

  • Keep your SSH connection and open VNC console on your Provider's control panel.
  • sudo reboot with your SSH and the VM should reboot.
  • Switch to your VNC window quickly. You should enter the GRUB selection menu now.
  • If you've configured correct GRUB_DEFAULT, it should be booted into installer automatically after timeout.
  • Or, use your keyboard to select New Install and enter it. Also, be quick, just do not miss the GRUB_TIMEOUT timeout you've set.
  • Finally, you should see the screen of Debian Installer now. It will setup all things automatically and reboot when complete.