I installed the Debian 11 "Bullseye" into a VPS. This kind of VPS service provides the very standard virtual hardware, so there will be a low chance to have issues with installation.
If you hit the screen issues in front of the physical machine, try some boot parameters.
boot: install vga=normal fb=false
There is a detailed installation guide on the Debian official site. If you need more information, please refer them.
“Graphical install” is the default but I normally choose simpler “install” because I don’t need the mouse during installation.
Choose “English – English”. As described on the screen, this choice will be the default language of your system. English is the safest way to access the server from a very limited environment. For example, an emergency case without your language keyboard nor font files other than the basic ASCII characters.
If you’re sure you’ll never access the server other than your language choice, you can choose anything you like.
Choose where you are located. This will determine the timezone.
If your location is not on the first list, just choose “other” to find out more.
You may not see this screen. In my case, I chose English as the language but Japan as the location. There is no standard combination of English – Japan so the system confirms which it should be. I recommend choosing en_??.UTF-8 as a safe choice.
Choose the keyboard layout you normally use. If you use multiple keyboards with multiple layouts, choose the one you are using during the installation. (I don’t think such kinds of people need these basic explanations though…)
The installer will automatically configure the network according to DHCP. It will ask you to configure manually if auto-configuration fails.
You need network information from your service provider when you go with "Configure network manually".
This information should be provided by your (network) service provider.
Input IPv4 or IPv6. If you are setting up the server, you should have a simple IPv4 address, “xxx.xxx.xxx.xxx”.
You can set up an IPv6 address after you finish the installation.
(You can input IPv6 address here, but it's too long to type it manually...)
Netmask seems like IP address, such as 255.255.255.0 or 255.255.254.0.
If you can use multiple DNS servers, input all of them separated by a space.
Hostname will be shown when you log in via ssh. (And in the same domain network, the hostname will be the unique name to reach out each machine.)
For example, this server “tech.ginnojo.jp”, hostname is “tech”. Domain is “ginnojo.jp”.
If you don’t have any original domain name, the service provider should tell you which one you should use.
"root" is the administrator with all privileges. This password must be kept top secret and should not be used often.
Never forget this password or you will have very little chance to recover the control of the server.
This will create a normal account for everyday operations. The full name doesn’t have to be your real full name. Username doesn’t have to be your first name. You can choose whatever you like.
The username will be your mail address, "firstname.lastname@example.org". (You can use another name using aliases or a virtual mailbox.)
The password should be different from the root one. This password will often be required with the command “sudo” to for system maintenance.
The default should work fine for most of the cases. One thing to consider is if you will use MongoDB. MongoDB data are should be xfs filesystem. Like my example below.
#1 primary 95.0 GB ext4 / #5 logical 10.0 GB xfs /var/xfs #6 logical 2.0 GB swap swap
Unless you are trying to set up a dual-boot system, “Guided – use entire disk” is the simplest choice. Just erasing anything on the disk and set up a new system.
Unless you have multiple drives (SSD/HDD), there will be only one choice. If you prepared the system drive and another data drive, please choose the system drive.
“All files in one partition (recommended for new users)” is the easiest unless you have some specific plan for the partitioning (like the two drives case described above).
This is the confirmation screen just before deleting the data on the disk. Review what you have chosen and “Finish partitioning and write changes to disk”.
After this screen, there will be one more confirmation screen. Check again and hit <Yes> to proceed. Once you finish this process, you can never recover the deleted data.
Unless you are trying to install Debian without the internet connection, there should be only one CD or DVD. In other words, only one is enough since the latest data will be retrieved via the internet.
Choose the country nearest to the server location. After choosing the country, there may be detailed choices for the mirror server. This will be the mirror to access everyday maintenance, so the nearest and fastest server is recommended.
(In Japan, "ftp.jp.debian.org" is the CDN mirror that is recommended for all users.)
If you are setting up a public server, this should be left blank. In case you are in a closed network, you may need information about the proxy server to go out to the internet.
As described on the screen, choose “Yes” to provide the package usage anonymous data to help Debian developers if you are OK.
I choose nothing (unselecting all) to start from the minimal.
You may be anxious about unselecting the “standard system utilities,” but it doesn’t mean you are unselecting the fundamental commands such as “cp” or “ls.” If you want to check what will be installed by selecting this option, you can check and install them later.
Try the following command to see what's installed with "standard system utilities" and install it if you want.
$ tasksel --task-packages standard | sort
Unless you set up a dual-boot system, choose <Yes> as recommended.
In a simple case, you will have only one suggestion of the (virtual) physical drive. If you have multiple drives or have some special settings, choose “Enter device manually”.
Now installation is completed. Remove the CD/DVD and reboot to start the system. Since the system is minimal now, you still need physical access to the server until you set up the ssh server.