Estou usando netboot/pxeboot com 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 bem, no entanto, o carregamento do initrd sobre o tftp está demorando muito (mais de 30 minutos). Eu gostaria de compactar (gz/bz2) este arquivo para economizar algum tempo de transferência de arquivos.
Eu tinha visto alguns exemplos por aí referindo-se a um initrd.gz
(Um exemplo: https://unix.stackexchange.com/questions/217002/which-iso-file-vmlinuz-and-initrd-gz-to-use-for-installing- centos-from-multiboo ), mas quando tentei apenas compactar o arquivo com gzip e usá-lo, recebo um erro 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)
Existe uma maneira de compactar este arquivo para que ele possa transferir um tamanho de arquivo menor e descompactá-lo antes de tentar montar o fs raiz?
Como alternativa, existe uma maneira de transferi-lo por um protocolo diferente (HTTP/FTP/SFTP/SCP/etc)?
Um initrd é uma estrutura CPIO compactada criada a partir de uma estrutura de árvore de arquivos com um comando como:
O
ubuntu-20.04-desktop-amd64
initrd já está compactado e pesa cerca de 87MB. A transferência TFTP desse arquivo deve ser em torno de 36 segundos.Se a sua transferência TFTP demorar meia hora, você terá um problema diferente na configuração do TFTP de rede. Uma captura de tráfego do Wireshark pode ajudá-lo a identificar seu problema.
A resposta de @Pat é aceita e mais detalhada, no entanto, aqui estão as respostas diretas para as perguntas originais:
Não, já está compactado. A resposta aceita dá um exemplo disso.
Não com PXE normal. Use outro sistema de inicialização de rede, como iPXE, que permite http/nfs