
Estoy usando netboot/pxeboot con grub.
menuentry "Install Ubuntu 20.04" {
set gfxpayload=keep
echo 'Loading vmlinuz ...'
linux /tftp/vmlinuz ip=dhcp netboot=nfs nfsroot=10.0.0.20:/data/netboot/nfs/ubuntu2004/ boot=casper toram noquiet splash=off console=tty0 console=ttyS1,57600n8 ---
echo 'Loading initrd, this takes a long time ...'
initrd /tftp/initrd
}
Funciona bien, sin embargo, la carga de initrd a través de tftp lleva mucho tiempo (más de 30 minutos). Me gustaría comprimir (gz/bz2) este archivo para ahorrar tiempo de transferencia.
Había visto algunos ejemplos que se referían a initrd.gz
(Un ejemplo:https://unix.stackexchange.com/questions/217002/what-iso-file-vmlinuz-and-initrd-gz-to-use-for-installing-centos-from-multiboo) pero cuando intenté comprimir el archivo con gzip y usarlo, aparece un error como:
[ 12.543547] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[ 12.558487] Please append a correct "root=" boot option; here are the available partitions:
[ 12.575161] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
¿Hay alguna manera de comprimir este archivo para que pueda transferir un tamaño de archivo más pequeño y descomprimirlo antes de intentar montar el archivo raíz fs?
Alternativamente, ¿hay alguna manera de transferirlo a través de un protocolo diferente (HTTP/FTP/SFTP/SCP/etc)?
Respuesta1
Un initrd es una estructura CPIO comprimida creada a partir de una estructura de árbol de archivos con un comando como:
find . | cpio -o -c -R root:root | gzip -9 > /boot/new.img
El ubuntu-20.04-desktop-amd64
initrd ya está comprimido y pesa alrededor de 87 MB. La transferencia TFTP de ese archivo debería durar unos 36 segundos.
[04/05 08:17:46.445] TFTP Inf: <\NWA_PXE\ubuntu-20.04-desktop-amd64\casper\initrd>: sent blks=63901 blkSz=1408, Total 89971296 bytes in 36s, err recovery=0
Si su transferencia TFTP demora media hora, tiene un problema diferente en la configuración de su red TFTP. Una captura de tráfico de Wireshark puede ayudarle a identificar su problema.
Respuesta2
La respuesta de @Pat se acepta y es más detallada; sin embargo, aquí están las respuestas directas a las preguntas originales:
¿Hay alguna manera de comprimir este archivo para que pueda transferir un tamaño de archivo más pequeño y descomprimirlo antes de intentar montar el archivo raíz fs?
No, ya está comprimido. La respuesta aceptada da un ejemplo de esto.
Alternativamente, ¿hay alguna manera de transferirlo a través de un protocolo diferente (HTTP/FTP/SFTP/SCP/etc)?
No con PXE normal. Utilice otro sistema de arranque de red, como iPXE, que permita http/nfs