Disco de inicialização ao vivo ISOLINUX - executando scripts no menu

Disco de inicialização ao vivo ISOLINUX - executando scripts no menu

Estou tentando criar um disco de inicialização do Linux (escolhi o Fennix devido ao tamanho pequeno e à interface apenas do terminal), agora tenho o disco de inicialização funcionando e ele me carrega no Linux e posso montar o HDD interno etc. lá, porém, tenho o Menu funcionando através do ISOLINUX.CFG, mas quero anexar um script a cada seleção de menu, o script copiará 2 arquivos para o HDD do disco Live, estou lutando para fazer com que o Menu inicie os scripts com init= pois parece nunca encontrar os arquivos de script no disco (não tenho certeza de onde colocá-los para obter acesso a eles, tentei vários diretórios).

Exemplo de opção de menu abaixo

ETIQUETA finnix

MENU LABEL Instalar atualização

AJUDA DE TEXTO

Copia os 2 arquivos ini para o seu disco rígido

FIMTEXTO

inicialização do KERNEL/x86/linux init = copy1.bs

APENDER initrd=boot/x86/initrd.xz vga=791 nomodeset silencioso

Alguém pode me indicar a direção certa sobre como acessar os arquivos do LiveCD depois de inicializado e como o menu pode ser atualizado para acessar esses arquivos de script quando uma seleção for feita.

Espero que o que foi dito acima faça sentido,

Obrigado!

Responder1

No isolinux.cfg, as opções de inicialização vão para a linha APPEND, não para a linha KERNEL. Portanto, você init=copy1.bsdeve ir para a linha APPEND.

E se você usar a init=opção, isso significa executar seu script de shell como processo nº 1: em vez de configurar o ambiente normal com, por exemplo, vários consoles virtuais, ele executará apenas aquele script... e assim que o script for encerrado, o kernel irá pânico (= crash) quando o processo nº 1 morreu.

Dependendo de como exatamente o arquivo initrd do Finnix é construído, o uso da init=opção também pode iniciar seus scripts em uma situação em que eles precisariam duplicar algumas ou todas as funcionalidades dos scripts de inicialização do Finnix antes que possam realmente fazer algo útil.

Você pode querer inventar seu próprio parâmetro de inicialização personalizado. Os parâmetros de inicialização aparecerão /proc/cmdlinemesmo que sejam desconhecidos pelo kernel, e você pode simplesmente criar um script de inicialização que leia /proc/cmdline, escolha o valor do parâmetro personalizado a partir daí e use-o para executar outro script em um local de sua escolha . Esta abordagem pode ser mais fácil de depurar do que usar o init=parâmetro padrão.

O sistema de arquivos raiz Finnix parece estar dentro do finnix/arch/x86/root.imgarquivo. Não tenho tempo para analisá-lo completamente agora, mas acho que ele initrd.xzconfigura um disco RAM e carrega o conteúdo dele root.img, para que o CD possa ser ejetado durante o uso do Finnix.

Para colocar seus scripts dentro do root.imgarquivo, você montaria o arquivo de imagem (é uma imagem do sistema de arquivos squashfs), copiaria o conteúdo para algum outro diretório, adicionaria seus próprios arquivos nele e usaria o mksquashfscomando (no squashfs-toolspacote) para criar uma nova imagem arquivo.

informação relacionada