|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Problemas do Sistema Operacional
O Harvester roda em um sistema operacional baseado em openSUSE. O sistema operacional é um artefato produzido pelo elemental-toolkit. As seções a seguir contêm informações e dicas para ajudar os usuários a solucionar problemas relacionados ao sistema operacional.
Como fazer login em um nó Harvester
Os usuários podem fazer login em um nó Harvester com o nome de usuário rancher e a senha ou chave SSH fornecida durante a instalação.
O usuário rancher pode executar comandos privilegiados sem inserir uma senha:
# Run a privileged command rancher@node1:~> sudo blkid # Or become root rancher@node1:~> sudo -i node1:~ # blkid
Como posso instalar pacotes? Por que alguns caminhos são somente leitura?
O sistema de arquivos do sistema operacional, como uma imagem de contêiner, é baseado em imagem e imutável, exceto em alguns diretórios.
Recomendamos usar um toolbox contêiner para executar programas não empacotados no sistema operacional Harvester para fins de depuração. Por favor, consulte este artigo para aprender como construir e executar um toolbox contêiner.
O sistema operacional Harvester também fornece uma maneira de habilitar o modo de leitura/gravação temporariamente. Por favor, siga os seguintes passos:
|
Habilitar o modo de leitura/gravação pode danificar seu sistema se arquivos forem modificados. Use-o por sua própria conta e risco. |
-
Para a versão
v0.3.0, precisamos aplicar uma solução alternativa primeiro para tornar alguns diretórios não sobrepostos após habilitar o modo de leitura/gravação. Em um nó Harvester em execução, execute o seguinte comando como root:cat > /oem/91_hack.yaml <<'EOF' name: "Rootfs Layout Settings for debugrw" stages: rootfs: - if: 'grep -q root=LABEL=COS_STATE /proc/cmdline && grep -q rd.cos.debugrw /proc/cmdline' name: "Layout configuration for debugrw" environment_file: /run/cos/cos-layout.env environment: RW_PATHS: " " EOF -
Reinicie o sistema para o menu GRUB. Pressione ESC para permanecer no menu.
-
Pressione
ena primeira entrada do menu. Anexerd.cos.debugrwà linhalinux (loop0)$kernel $kernelcmd. PressioneCtrl + xpara inicializar o sistema.
Como editar permanentemente os parâmetros do kernel
|
Os seguintes passos são uma solução alternativa. O Harvester informará a comunidade assim que uma resolução permanente estiver em vigor. |
-
Remonte o diretório de estado em modo de leitura/gravação:
# blkid -L COS_STATE /dev/vda2 # mount -o remount,rw /dev/vda2 /run/initramfs/cos-state
-
Edite o arquivo de configuração do grub e anexe parâmetros à linha
linux (loop0)$kernel $kernelcmd. O seguinte exemplo adiciona um parâmetronomodeset:# vim /run/initramfs/cos-state/grub2/grub.cfg menuentry "${display_name}" --id cos { # label is kept around for backward compatibility set label=${active_label} set img=/cOS/active.img loopback $loopdev /$img source ($loopdev)/etc/cos/bootargs.cfg linux ($loopdev)$kernel $kernelcmd ${extra_cmdline} ${extra_active_cmdline} nomodeset initrd ($loopdev)$initramfs } -
Reinicie para que as alterações tenham efeito.
Como mudar a entrada padrão do menu de inicialização do GRUB
Para mudar a entrada padrão, primeiro verifique o atributo --id de uma entrada do menu. As entradas do menu do Grub estão localizadas nos seguintes arquivos:
-
/run/initramfs/cos-state/grub2/grub.cfg: Contém as entradas padrão, de fallback e de recuperação -
/run/initramfs/cos-state/grubcustom: Contém a entrada de depuração
No seguinte exemplo, o id da entrada é debug.
# cat \
/run/initramfs/cos-state/grub2/grub.cfg \
/run/initramfs/cos-state/grubcustom
<...>
menuentry "${display_name} (debug)" --id debug {
search --no-floppy --set=root --label COS_STATE
set img=/cOS/active.img
set label=COS_ACTIVE
loopback loop0 /$img
set root=($root)
source (loop0)/etc/cos/bootargs.cfg
linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_passive_cmdline} ${crash_kernel_params}
initrd (loop0)$initramfs
}
Você pode configurar a entrada padrão executando os seguintes comandos:
# mount -o remount,rw /run/initramfs/cos-state # grub2-editenv /run/initramfs/cos-state/grub_oem_env set saved_entry=debug
Se necessário, você pode desfazer a alteração executando o comando grub2-editenv /run/initramfs/cos-state/grub_oem_env unset saved_entry.
Como depurar uma falha ou travamento do sistema
Coletar log de falhas
Se os rastros de pânico do kernel não forem registrados no log do sistema quando um sistema falha, uma maneira confiável de localizar o log de falhas é usar um console serial.
Para habilitar a saída de mensagens do kernel para um console serial, siga os seguintes passos:
-
Inicie o sistema no menu GRUB. Pressione ESC para permanecer no menu.

-
Pressione
ena primeira entrada do menu. Anexeconsole=ttyS0,115200n8à linhalinux (loop0)$kernel $kernelcmd. PressioneCtrl + xpara inicializar o sistema.
Ajuste as opções do console de acordo com seu ambiente. Certifique-se de adicionar a
console=string ao final da linha. -
Conecte-se à porta serial para capturar logs.
Coletar despejos de memória
Para falhas de pânico do kernel, você pode usar o kdump para coletar despejos de memória.
Por padrão, o sistema operacional é inicializado sem o recurso kdump habilitado. Os usuários podem habilitar o recurso selecionando a debug entrada de menu ao inicializar, como no seguinte exemplo:
Quando um sistema falha, um despejo de memória será armazenado no diretório /var/crash/<time>. Fornecer o despejo de memória aos desenvolvedores ajuda-os a solucionar e resolver problemas.