Proxmox USB install

If you want to install Proxmox on a USB, for example 16gb stick that “should” be possible

Mainly this is for if you want to use shared storage between multiple nodes and node’s dont store VM data.

Things to do and watch for

Things you need to be careful with. Filling up your root drive. using local storage for example ISO images.

For ISO images use a NFS server.

Example Lab-enviroment

Install

For this im using proxmox 9, installer can be grabbed from https://proxmox.com/en/downloads, In a test vm in proxmox 9 (inception :3)

Install can be done with Proxmox defaults, Just enter a password, usbstick, and IP.

disk space reclamation

After install you see that your original disk is split in to multiple lvm

swap can be also remove since the usb is probably (incredibly slow).
A: use no swap
B: zram swap
can be used instead of normal swap.

DATA: This is the VM data portion normally configured on proxmox. We arent going to use this since our vmdata is going to be on shared storage.

# lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                  8:0    0   16G  0 disk 
├─sda1               8:1    0 1007K  0 part 
├─sda2               8:2    0  512M  0 part 
└─sda3               8:3    0 15.5G  0 part 
  ├─pve-swap       252:0    0    1G  0 lvm  [SWAP]
  ├─pve-root       252:1    0  7.2G  0 lvm  /
  ├─pve-data_tmeta 252:2    0    1G  0 lvm  
  │ └─pve-data     252:4    0  5.2G  0 lvm  
  └─pve-data_tdata 252:3    0  5.2G  0 lvm  
    └─pve-data     252:4    0  5.2G  0 lvm  
root@pve-test:~# lvs
  LV   VG  Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data pve twi-a-tz--  5.24g             0.00   1.57                            
  root pve -wi-ao---- <7.25g                                                    
  swap pve -wi-ao----  1.00g     
  1. Lets first go to Datacenter > Storage
    We are going to remove the local-lvm from all nodes (If a node needs local-lvm we can leave it to that node if necessary)
  2. Got to Node > Disks > LVM-Thin
    Delete the data lvm-thin pool, we arent going to use this.
    The remove command will give an error (volume group ‘pve’ still in use) but will still remove it, so we can ignore the error.
  3. using command vgdisplay we can see that now there is free space to expand.
    Then with lvextend we can increase the size of the logical volume.
root@pve-test:~# lvextend -l +100%FREE /dev/pve/root
  Size of logical volume pve/root changed from <7.25 GiB (1855 extents) to <14.50 GiB (3711 extents).
  Logical volume pve/root successfully resized.

4. Then we can use good old resize2fs to increase the filesystem size

root@pve-test:~# resize2fs /dev/mapper/pve-root
resize2fs 1.47.2 (1-Jan-2025)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/pve-root is now 3800064 (4k) blocks long.

root@pve-test:~# df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/pve-root   15G  3.4G   11G  25% /


Comments