==== Arranque de Debian por iSCSI ==== De las mayores fumadas que se pueden hacer en esta bella arte, es el hecho de arrancar una máquina, virtual o no, mediante iSCSI, es decir, cargar un sistema operativo que está instalado en una ubicación remota. Permitiendo arrancar y usar ordenadores sin un disco duro instalado, o un sistema operativo "live" (aunque es persistente) de respuesto, cuando se te joda el principal Otra razón para hacer esto es que tengo FreeBSD en mi escritorio pero a veces necesitaré Linux digo yo, y como no voy a tocar mi instalación de freebsd, lo tengo instalado por iSCSI. Es un requisito que tengas un [[:red:arranque_por_red|servidor de arranque por red]] funcional (que tengas iPXE funcionando cada vez que arrancas, por lo menos). También necesitarás un servidor con gran almacenamiento que esté dispuesto a servir archivos todo el rato. En mi caso cuento con Icarus. (esto es un SAN, no un NAS, vamos a servir almacenamiento sin sistema de archivos. Para mas información busque en Wikipedia) ===== Introducción ===== Por como funciona iSCSI (cosa que obviaré) necesitaremos un archivo de bloques. De estos que crearías con ''qemu-img''. Pero nosotros usaremos [[:freebsd:zfs]] porque somos muy guays ===== Creación del target iSCSI ===== Crearemos un llamado "zvol", que no es nada mas que un archivo de bloques gestionado por zfs: ''zfs create -V 100G stranger/iscsi/debian1'' Esto creará un archivo en /dev/zvol/stranger/iscsi/debian1, que es el archivo que exportaremos por iSCSI con 100GiBs de tamaño ===== Creación del iniciador iSCSI ===== En FreeBSD esto es mas o menos sencillo, en Linux no lo he probado. Pero no debería ser demasiado difícil usando open iscsi portal-group example2 { discovery-auth-group no-authentication listen 0.0.0.0 } target iqn.2025-03.net.suragu:target0 { alias "Testing target" auth-group no-authentication portal-group example2 lun 0 { path /dev/zvol/stranger/iscsi/debian1 blocksize 4096 size 100G } } Si no habias usado ctl antes, lo habilitas con ''service ctld enable'' y lo inicias con ''service ctld start'' Esto inicia el volumen para que un cliente pueda iniciarlo, en FreeBSD se hace de la siguiente manera y en Linux tampoco es tan dificil, open-iscsi está bien como os digo. ''doas iscsictl -A -p 192.168.1.230 -t iqn.2025-03.net.suragu:target0'' Donde -A es para crear una sesión, -p es la dirección del servidor iSCSI y -t es el target Podemos comprobar que ha funcionado, pues ahora tenemos un nuevo dispositivo **SCSI** (nótese como es da0 en lugar de ada8, que sería ATA) (también tenía ya un sistema de ficheros creado aquí, por eso tiene particiones creadas) ~ [qmdx] % lsblk DEVICE MAJ:MIN SIZE TYPE LABEL MOUNT ada0 0:96 466G GPT - - ada0p1 0:97 260M efi gpt/efiboot0 /boot/efi ada0p2 0:98 512K freebsd-boot gpt/gptboot0 - -:- 492K - - - ada0p3 0:99 2.0G freebsd-swap gpt/freebsd-swap SWAP ada0p4 0:100 464G freebsd-zfs gpt/freebsd-zfs -:- 4.0K - - - da0 1:212 50G GPT - - -:- 1.0M - - - da0p2 1:214 2.8G efi gpt/efi - da0p1 1:213 47G linux-data gpt/linux-data - -:- 1.0M - - - Cuando hayamos acabado de usar el disco iSCSI, acabamos la sesión con el mismo comando pero con -R en lugar de -A: ''doas iscsictl -R -p 192.168.1.230 -t iqn.2025-03.net.suragu:target0'' ===== Instalación de un sistema operativo ====== Tendréis que haceros la pregunta de ¿en que máquinas voy a usar este Debian remoto? para así decidir si vais a instalar el arranque para BIOS o UEFI. Decide sabiamente. Instalas Debian normalmente y en la parte de configuración de disco, verás la parte de "buscar dispositivos iSCSI", sigue los pasos de ahí e instala debian normalmente. Te aseguro que funciona (como veis, aquí me falta por escribir. Detallaré mas los pasos. Lo juro) ===== Arranque de Debian por iPXE ===== Tras haber instalado Debian en la target iSCSI, habrá instalado GRUB y toda la fumada. Debería simplemente funcionar. No me preguntéis como funciona. Pero funciona Podéis intentar a arrancar el sistema operativo recién instalado con el siguiente comando en la shell de iPXE (cambiar vuestra target por como la tengáis vosotros) En sistemas BIOS, debería funcionar haciendo esto: sanboot iscsi:192.168.1.230::::iqn.2025-03.net.suragu:target0 En sistemas UEFI, tienes que especificar el fichero EFI a cargar (en este caso, el loader de GRUB) sanboot --filename \EFI\debian\grubx64.efi iscsi:192.168.1.230::::iqn.2025-03.net.suragu:target0 Y debería arrancar el GRUB y el sistema operativo. Debian ha configurado bien el open iSCSI así que debería iniciar simplemente. ¡Felicidades! tienes un sistema operativo instalado en un sitio que no existe pero puedes usarlo normalmente y hacer todas tus tareas. Incluso jugar jugueteos. Increíble {{:smile.png?200|}} Eso si, si vas a hacer carga profunda, será mejor que tu red sea de 10GBits en vez de un 1Gbit como lo suele ser. A pagar.