
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 pelo tftp está demorando muito (mais de 30 minutos). Eu gostaria de compactar (gz/bz2) este arquivo para economizar tempo de transferência de arquivos.
Eu já tinha visto alguns exemplos por aí referentes a um initrd.gz
(Um exemplo:https://unix.stackexchange.com/questions/217002/qual-iso-file-vmlinuz-and-initrd-gz-to-use-for-installing-centos-from-multiboo), mas quando tentei compactar o arquivo com gzip e usá-lo, recebi 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 esse arquivo para que ele possa transferir um tamanho de arquivo menor e descompactá-lo antes de tentar montar o fs raiz?
Alternativamente, existe uma maneira de transferi-lo através de um protocolo diferente (HTTP/FTP/SFTP/SCP/etc)?
Responder1
Um initrd é uma estrutura CPIO compactada criada a partir de uma estrutura de árvore de arquivos com um comando como:
find . | cpio -o -c -R root:root | gzip -9 > /boot/new.img
O ubuntu-20.04-desktop-amd64
initrd já está compactado e pesa cerca de 87MB. A transferência TFTP desse arquivo deve durar cerca de 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
Se a sua transferência TFTP demorar meia hora, você terá um problema diferente na configuração do TFTP da rede. Uma captura de tráfego do Wireshark pode ajudá-lo a identificar seu problema.
Responder2
A resposta de @Pat é aceita e mais detalhada, porém aqui estão as respostas diretas às perguntas originais:
Existe uma maneira de compactar esse arquivo para que ele possa transferir um tamanho de arquivo menor e descompactá-lo antes de tentar montar o fs raiz?
Não, já está compactado. A resposta aceita dá um exemplo disso.
Alternativamente, existe uma maneira de transferi-lo através de um protocolo diferente (HTTP/FTP/SFTP/SCP/etc)?
Não com PXE normal. Use outro sistema de inicialização de rede, como o iPXE, que permite http/nfs