[[chapter_installation]]
Installing {pve}
================
ifndef::manvolnum[]
:pve-toplevel:
endif::manvolnum[]
ifdef::wiki[]
:title: Installation
endif::wiki[]

{pve} is based on Debian. This is why the install disk images (ISO files)
provided by Proxmox include a complete Debian system as well as all necessary
{pve} packages.

TIP: See the xref:faq-support-table[support table in the FAQ] for the
relationship between {pve} releases and Debian releases.

The installer will guide you through the setup, allowing you to partition the
local disk(s), apply basic system configurations (for example, timezone,
language, network) and install all required packages. This process should not
take more than a few minutes. Installing with the provided ISO is the
recommended method for new and existing users.

Alternatively, {pve} can be installed on top of an existing Debian system. This
option is only recommended for advanced users because detailed knowledge about
{pve} is required.

ifndef::wiki[]

include::pve-system-requirements.adoc[]

include::pve-installation-media.adoc[]

endif::wiki[]


[[installation_installer]]
Using the {pve} Installer
-------------------------

The installer ISO image includes the following:

* Complete operating system (Debian Linux, 64-bit)

* The {pve} installer, which partitions the local disk(s) with ext4, XFS,
  BTRFS (technology preview), or ZFS and installs the operating system.

* {pve} Linux kernel with KVM and LXC support

* Complete toolset for administering virtual machines, containers, the host
  system, clusters and all necessary resources

* Web-based management interface

NOTE: All existing data on the for installation selected drives will be removed
during the installation process. The installer does not add boot menu entries
for other operating systems.

Please insert the xref:installation_prepare_media[prepared installation media]
(for example, USB flash drive or CD-ROM) and boot from it.

TIP: Make sure that booting from the installation medium (for example, USB) is
enabled in your servers firmware settings and secure boot is disabled.

[thumbnail="screenshot/pve-grub-menu.png"]

After choosing the correct entry (e.g. Boot from USB) the {pve} menu will be
displayed and one of the following options can be selected:

Install {pve}::

Starts the normal installation.

TIP: It's possible to use the installation wizard with a keyboard only. Buttons
can be clicked by pressing the `ALT` key combined with the underlined character
from the respective button. For example, `ALT + N` to press a `Next` button.

Advanced Options: Install {pve} (Debug mode)::

Starts the installation in debug mode. A console will be opened at several
installation steps. This helps to debug the situation if something goes wrong.
To exit a debug console, press `CTRL-D`. This option can be used to boot a live
system with all basic tools available. You can use it, for example, to
xref:chapter_zfs[repair a degraded ZFS 'rpool'] or fix the
xref:sysboot[bootloader] for an existing {pve} setup.

Advanced Options: Rescue Boot::

With this option you can boot an existing installation. It searches all attached
hard disks. If it finds an existing installation, it boots directly into that
disk using the Linux kernel from the ISO. This can be useful if there are
problems with the boot block (grub) or the BIOS is unable to read the boot block
from the disk.

Advanced Options: Test Memory::

Runs `memtest86+`. This is useful to check if the memory is functional and free
of errors.

[thumbnail="screenshot/pve-select-target-disk.png"]

After selecting *Install {pve}* and accepting the EULA, the prompt to select the
target hard disk(s) will appear. The `Options` button opens the dialog to select
the target file system.

The default file system is `ext4`. The Logical Volume Manager (LVM) is used when
`ext4` or `xfs` is selected. Additional options to restrict LVM space
can also be set (see <<advanced_lvm_options,below>>).

{pve} can be installed on ZFS. As ZFS offers several software RAID levels, this
is an option for systems that don't have a hardware RAID controller. The target
disks must be selected in the `Options` dialog. More ZFS specific settings can
be changed under `Advanced Options` (see <<advanced_zfs_options,below>>).

WARNING: ZFS on top of any hardware RAID is not supported and can result in data
loss.

[thumbnail="screenshot/pve-select-location.png", float="left"]

The next page asks for basic configuration options like the location, the time
zone, and keyboard layout. The location is used to select a download server
close by to speed up updates. The installer usually auto-detects these settings.
They only need to be changed in the rare case that auto detection fails or a
different keyboard layout should be used.

[thumbnail="screenshot/pve-set-password.png"]

Next the password of the superuser (root) and an email address needs to be
specified. The password must consist of at least 5 characters. It's highly
recommended to use a stronger password. Some guidelines are:

- Use a minimum password length of 12 to 14 characters.

- Include lowercase and uppercase alphabetic characters, numbers, and symbols.

- Avoid character repetition, keyboard patterns, common dictionary words,
  letter or number sequences, usernames, relative or pet names, romantic links
  (current or past), and biographical information (for example ID numbers,
  ancestors' names or dates).

The email address is used to send notifications to the system administrator.
For example:

- Information about available package updates.

- Error messages from periodic CRON jobs.

[thumbnail="screenshot/pve-setup-network.png"]

The last step is the network configuration. Please note that during installation
you can either use an IPv4 or IPv6 address, but not both. To configure a dual
stack node, add additional IP addresses after the installation.

[thumbnail="screenshot/pve-installation.png", float="left"]

The next step shows a summary of the previously selected options. Re-check every
setting and use the `Previous` button if a setting needs to be changed. To
accept, press `Install`. The installation starts to format disks and copies
packages to the target. Please wait until this step has finished; then remove
the installation medium and restart your system.

[thumbnail="screenshot/pve-install-summary.png"]

If the installation failed, check out specific errors on the second TTY
(`CTRL + ALT + F2') and ensure that the systems meets the
xref:install_minimal_requirements[minimum requirements]. If the installation
is still not working, look at the xref:getting_help[how to get help chapter].

Further configuration is done via the Proxmox web interface. Point your browser
to the IP address given during installation (https://youripaddress:8006).

NOTE: Default login is "root" (realm 'PAM') and the root password was defined
during the installation process.

[[advanced_lvm_options]]
Advanced LVM Configuration Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The installer creates a Volume Group (VG) called `pve`, and additional Logical
Volumes (LVs) called `root`, `data`, and `swap`. To control the size of these
volumes use:

`hdsize`::

Defines the total hard disk size to be used. This way you can reserve free space
on the hard disk for further partitioning (for example for an additional PV and
VG on the same hard disk that can be used for LVM storage).

`swapsize`::

Defines the size of the `swap` volume. The default is the size of the installed
memory, minimum 4 GB and maximum 8 GB. The resulting value cannot be greater
than `hdsize/8`.
+
NOTE: If set to `0`, no `swap` volume will be created.

`maxroot`::

Defines the maximum size of the `root` volume, which stores the operation
system. The maximum limit of the `root` volume size is `hdsize/4`.

`maxvz`::

Defines the maximum size of the `data` volume. The actual size of the `data`
volume is:
+
`datasize = hdsize - rootsize - swapsize - minfree`
+
Where `datasize` cannot be bigger than `maxvz`.
+
NOTE: In case of LVM thin, the `data` pool will only be created if `datasize` is
bigger than 4GB.
+
NOTE: If set to `0`, no `data` volume will be created and the storage
configuration will be adapted accordingly.

`minfree`::

Defines the amount of free space left in the LVM volume group `pve`. With more
than 128GB storage available the default is 16GB, else `hdsize/8` will be used.
+
NOTE: LVM requires free space in the VG for snapshot creation (not required for
lvmthin snapshots).

[[advanced_zfs_options]]
Advanced ZFS Configuration Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The installer creates the ZFS pool `rpool`. No swap space is created but you can
reserve some unpartitioned space on the install disks for swap. You can also
create a swap zvol after the installation, although this can lead to problems.
(see <<zfs_swap,ZFS swap notes>>).

`ashift`::

Defines the `ashift` value for the created pool. The `ashift` needs to be set at
least to the sector-size of the underlying disks (2 to the power of `ashift` is
the sector-size), or any disk which might be put in the pool (for example the
replacement of a defective disk).

`compress`::

Defines whether compression is enabled for `rpool`.

`checksum`::

Defines which checksumming algorithm should be used for `rpool`.

`copies`::

Defines the `copies` parameter for `rpool`. Check the `zfs(8)` manpage for the
semantics, and why this does not replace redundancy on disk-level.

`hdsize`::

Defines the total hard disk size to be used. This is useful to save free space
on the hard disk(s) for further partitioning (for example to create a
swap-partition). `hdsize` is only honored for bootable disks, that is only the
first disk or mirror for RAID0, RAID1 or RAID10, and all disks in RAID-Z[123].


ZFS Performance Tips
~~~~~~~~~~~~~~~~~~~~

ZFS works best with a lot of memory. If you intend to use ZFS make sure to have
enough RAM available for it. A good calculation is 4GB plus 1GB RAM for each TB
RAW disk space.

ZFS can use a dedicated drive as write cache, called the ZFS Intent Log (ZIL).
Use a fast drive (SSD) for it. It can be added after installation with the
following command:

----
# zpool add <pool-name> log </dev/path_to_fast_ssd>
----

ifndef::wiki[]

Install {pve} on Debian
-----------------------

{pve} ships as a set of Debian packages and can be installed on top of a standard
Debian installation.
xref:sysadmin_package_repositories[After configuring the repositories] you need
to run the following commands:

----
# apt-get update
# apt-get install proxmox-ve
----

Installing on top of an existing Debian installation looks easy, but it presumes
that the base system has been installed correctly and that you know how you want
to configure and use the local storage. You also need to configure the network
manually.

In general, this is not trivial, especially when LVM or ZFS is used.

A detailed step by step how-to can be found on the
{webwiki-url}Install_Proxmox_VE_on_Debian_11_Bullseye[wiki].


endif::wiki[]

ifdef::wiki[]

Video Tutorials
---------------

* List of all official tutorials on our
  https://www.youtube.com/proxmoxve[{pve} YouTube Channel]

* Tutorials in Spanish language on
  https://www.youtube.com/playlist?list=PLUULBIhA5QDBdNf1pcTZ5UXhek63Fij8z[ITexperts.es
  YouTube Play List]


See Also
--------

* link:/wiki/Prepare_Installation_Media[Prepare Installation Media]

* link:/wiki/Install_Proxmox_VE_on_Debian_Buster[Install Proxmox VE on Debian Buster]

* link:/wiki/System_Requirements[System Requirements]

* link:/wiki/Package_Repositories[Package Repositories]

* link:/wiki/Host_System_Administration[Host System Administration]

* link:/wiki/Network_Configuration[Network Configuration]

* link:/wiki/Installation:_Tips_and_Tricks[Installation: Tips and Tricks]

endif::wiki[]
