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.bs
deve 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/cmdline
mesmo 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.img
arquivo. Não tenho tempo para analisá-lo completamente agora, mas acho que ele initrd.xz
configura 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.img
arquivo, 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 mksquashfs
comando (no squashfs-tools
pacote) para criar uma nova imagem arquivo.