Skip to main content

VM - Debian 12 KVM

Para crear un VM basado en debian, podemos bajarnos una plantilla preinstalada base que hay en debian

enlace pagina descargas: https://www.debian.org/distrib/  -> https://cloud.debian.org/images/cloud/ (revisado26/3/2024)

nos copiamos el enlace que nos conviene, ojo que hay una no-cloud, la que dice QEMU, la mas conveniente para entorno PROXMOX, aun siendo qemu, es la que dice openstack:

azure: Optimized for the Microsoft Azure environment
ec2: Optimized for the Amazon EC2
generic: Should run in any environment using cloud-init, for e.g. OpenStack, DigitalOcean and also on bare metal.
genericcloud: Similar to generic. Should run in any virtualized environment. Is smaller than `generic` by excluding drivers for physical hardware.
nocloud: Mostly useful for testing the build process itself. Doesn't have cloud-init installed, but instead allows root login without a password.

genericcloud: Similar to generic. Should run in any virtualized environment. Is smaller than `generic` by excluding drivers for physical hardware. 

Para proxmox nos conviene la 

generic: Should run in any environment using cloud-init, for e.g. OpenStack, DigitalOcean and also on bare metal.https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-arm64.qcow2 (enlace 26/3/2024)

VM inicial primer paso
agent: 1
bios: ovmf
boot: order=virtio9;net0
cores: 1
efidisk0: zfs0:vm-2024-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M
hotplug: disk,network,memory,cpuide2: zfs0:vm-2024-cloudinit,media=cdrom
machine: q35
memory: 2048
meta: creation-qemu=7.2.0,ctime=
name: Plantilla-DEBIAN12
net0: virtio=8E:3D:4B::EE:DB,bridge=vmbr0,firewall=1
numa: 1
ostype: l26
scsihw: virtio-scsi-single
serial0: socket
smbios1: uuid=475c5bb3-40ca52c6ecd
sockets: 1
virtio9: zfs0:vm-2024-disk-1,iothread=1,size=2G
vmgenid: 0eb8b247-f54cce1b3a

Seguis el asistente y al final, quitais el cdrom y agregais:Cloud-init, Serial Port. He dejado el disco 0 libre para incorporar nuestra imagen.

 

En este momento agregamos la imagen qcow que nos hemos bajado

En este momento agregamos la imagen qcow que nos hemos bajado
root@ns:~# qm importdisk 2024 debian-12-genericcloud-arm64.qcow2 zfs0
importing disk 'debian-12-genericcloud-arm64.qcow2' to VM 2024 ...
transferred 0.0 B of 2.0 GiB (0.00%)
transferred 20.5 MiB of 2.0 GiB (1.00%)
transferred 1.9 GiB of 2.0 GiB (96.13%)
transferred 1.9 GiB of 2.0 GiB (97.13%)
transferred 2.0 GiB of 2.0 GiB (98.13%)
transferred 2.0 GiB of 2.0 GiB (99.19%)
transferred 2.0 GiB of 2.0 GiB (100.00%)
transferred 2.0 GiB of 2.0 GiB (100.00%)
Successfully imported disk as 'unused0:zfs0:vm-2024-disk-2'
root@ns:~# 

Después de esta maniobra el disco aparece como "unused", lo incorporamos y configuramos el boot, que arranque desde este disco, "Options->boot order")

Captura de pantalla 2024-03-26 122822.png

En este punto deberías poder ver el arranque, yo os recomiendo la consola serial, mucho mas comoda que la directa VNC

Para el primer login debéis corregir la contraseña en "Cloud-init"

Captura de pantalla 2024-03-26 125930.png

Para aplicar el cambio hay que reiniciar el VM, 

 

apt install qemu-guest-agent -y
 apt -y update; apt -y dist-upgrade

Si no hemos ampliado el disco dará error, te recomiendo subirle 8G, para dejarlo en 10Gb, no mucho mas, el espacio importante lo dejaremos en otros discos que mapearemos más tarde

Al tener cloud-init al arrancar hace cosas, como actualizar la red,cambios de password, aplicar certificados. Si aumentas el tamaño del disco, desde proxmox debes reiniciar para que en el arranque te reubique el espacio y lo encuentres en el sistema

Captura de pantalla 2024-03-26 131020.png

Si ves la ip como en la imagen es que vamos bien. Sino revisar los pasos anteriores.

Pasos finales.

Agregamos discos adicionales.
  • SWAP   (lo excluírsenos del backup)
  • /var/log (lo podemos excluir del backup)
  • /var/lib/psa/dumps (si instalas plesk te lor ecomiendo)
  • /var/lib/mysql (plesk - si llenan el disco no petara)
  • /var/www (plesk - asi separas las web del correo)

agregamos los discos que nos hagan falta, mejor darles valores pequeños y luego ir creciendo cuando sea necesario, bajar el tamaño no es imposible, pero es arriesgado.

formatear SWAP y /var/log

Yo no hago particiones, solo las del root que suele ser complicado, en el resto, 1 disco es por sí mismo una partición, así me ahorro pasos cómo reconstruir la partición cuando hay jaleo. 

root@Plantilla-DEBIAN12:~# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0      11:0    1    4M  0 rom  
vda     254:0    0   12G  0 disk 
├─vda1  254:1    0 11.9G  0 part /
├─vda14 254:14   0    3M  0 part 
└─vda15 254:15   0  124M  0 part /boot/efi
vde     254:64   0    1G  0 disk 
vdf     254:80   0    2G  0 disk 
root@Plantilla-DEBIAN12:~# mkswap /dev/vdf
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=170df83d-56db-4f98-8c45-4679198f21ca
root@Plantilla-DEBIAN12:~# mkfs.ext4 /dev/vde
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done                            
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: f4c21d14-86f3-449d-b857-7bf76893cf58
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

https://wiki.debian.org/Swap

Si durante el proceso perdeis los UUID de los discos puedes localizarlo con lsblk. Al final debería quedar algo parecido a esto.

# cat /etc/fstab
# /etc/fstab: static file system information
UUID=03d27ae1-9e98-4d21-bc19-e76bcc9aeca6 / ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1
UUID=F5B8-B4DC /boot/efi vfat defaults 0 0
UUID=170df83d-56db-4f98-8c45-4679198f21ca none swap sw 0 0
# <file system>                           <dir>              <type>    <options>             <dump> <pass>
UUID=f4c21d14-86f3-449d-b857-7bf76893cf58 /var/lib/psa/dumps ext4 defaults 1 2
UUID=9aa666b9-b283-43bb-a137-b6a3ea357b42 /var/log           ext4 defaults 1 2
UUID=f0b6b8a2-dba1-46e3-b3e5-dfdefa2f0a25 /var/lib/mysql     ext4 defaults 0 1
UUID=24158e6d-f227-46e3-9ddd-f5211063dc9e /var/www           ext4 defaults 0 1

 

 

Ajustar uso de SWAP

Aplicar esto: https://es.wikipedia.org/wiki/Swappiness  con valor 0

/etc/sysctl.conf
vm.swappiness = 0

 

 

FAQ:

¿qué hacer si aparece algo asi?

Captura de pantalla 2024-03-26 123042.png

casi seguro que se debe a que habéis bajado la imagen "genericcloud', bajate la correcta y  ajustalo todo.