Blog Linux Avante

Groot simplifica inserir chroot em qualquer distribuição Linux

27 de agosto de 2018

Utilitário chroot simplificado do Groot

Groot é uma ferramenta auxiliar que simplifica a operação chroot. É baseado no script arch-chroot disponível para Arch Linux e pode ser usado em qualquer distribuição Linux.

Chroot é uma operação que altera o diretório raiz aparente para o processo em execução atual e seus filhos. É especialmente útil para instalar e atualizar pacotes em sistemas que não podem inicializar, por exemplo, reinstalar o carregador de inicialização GRUB (ou algum outro carregador de inicialização), remover, fazer downgrade ou atualizar algum pacote que interrompe o processo de inicialização e assim por diante. O chroot também é útil para teste e desenvolvimento e muito mais.

Como exemplo, digamos que você tenha um sistema Linux que não inicializa mais. Você pode inicializar um USB ativo de alguma distribuição Linux como o Ubuntu nesse computador e, em seguida, usar o chroot para consertar o carregador de inicialização da distribuição Linux original que está instalado nesse sistema. Ambos os sistemas precisam usar a mesma arquitetura.

Isso é o que Groot faz:

  • ele é montado e desmontado automaticamente /dev, /run, /proc, /sys e outros diretórios do sistema
  • habilita o compartilhamento de conexão à Internet, então você pode executar comandos que requerem acesso à Internet a partir da sessão chroot
  • ativa o compartilhamento de tela para que você possa executar aplicativos gráficos instalados no sistema chroot

Groot é apenas para fazer chroot em um sistema Linux agora, mas o plano é adicionar alguns recursos extras, como reparar problemas de inicialização em sistemas BIOS e EFI, reinstalar GRUB, recompilar initramfs, atualizar o menu de inicialização GRUB, etc.

O Groot mais recente inclui 3 novas opções:

  • --fixboot para corrigir problemas de inicialização. Este comando fará o chroot no diretório especificado, montará os dispositivos dos arquivos fstab/crypttab, recompilará o initramfs e atualizará o menu GRUB. Funciona em distribuições Linux baseadas em Ubuntu/Debian, Fedora e Arch Linux.

  • --update para instalar atualizações de pacotes. Este comando fará o chroot no diretório especificado, montará dispositivos dos arquivos fstab/crypttab e usará o gerenciador de pacotes para instalar as atualizações disponíveis. Funciona em distribuições Linux baseadas em Ubuntu/Debian, Fedora e Arch Linux.

  • --guestinfo para mostrar informações do sistema convidado.

Para usar o Groot para fazer o chroot em um sistema, cd para o caminho onde o sistema de arquivos raiz está montado e execute o Groot como root:

Comandos para usar no terminal

sudo groot

Você também pode especificar o caminho do sistema de arquivos raiz como um argumento.

A ferramenta também pode fazer o chroot usando o arquivo fstab (que define como partições de disco, sistemas de arquivos remotos e vários dispositivos de bloco são montados), dispositivos de montagem para /, /home, /boot, /boot/efi e assim por diante, útil para corrigir problemas relacionados à inicialização e reinstalar GRUB .

Você pode ver exatamente o que o Groot faz quando é executado usando a opção --verbose. Quando quiser fechar o Groot e sair do chroot (e desmontar todos os diretórios do sistema montados), digite exit.

Opções Groot disponíveis:

$ groot --help

Groot v18.1 by Tony George (teejeetech@gmail.com)

Usage: groot [command] [basepath] [options]

Commands:
  --chroot             Change root to basepath (default if no command specified)
  --chroot-fstab       Change root after mounting devices from fstab and cryptab
  --list-devices       List current devices
  --sysinfo            Show current system information

Options:
  --no-display         Do not share display (default: sharing enabled)
  --no-internet        Do not share internet connection (default: sharing enabled)
  --verbose, -v        Show executed commands
  --debug              Show debug messages

Para poder executar um aplicativo gráfico da sessão chroot, você precisa executar export DISPLAY=:0, ou pelo menos era o caso em meu sistema (eu esperava que o Groot fizesse isso, mas parece que ele só executa xhost +local: automaticamente). Portanto, para executar aplicativos gráficos usando Groot, digite o seguinte no chroot:

Comandos para usar no terminal

export DISPLAY=:0

Em alguns casos, a variável de ambiente $DISPLAY pode não ser :0. Digite isso no sistema atual (no sistema atual, não no chroot):

Comandos para usar no terminal

echo $DISPLAY

E use a saída disso em vez de :0 no comando de exportação acima.

Em seguida, digite o executável (como gedit, etc.) que deseja executar e deve funcionar.

Baixar Groot

Baixar Groot

Para poder instalar o Groot DEB em uma sessão ao vivo do Ubuntu, você precisará habilitar o repositório universe em Software & Updates (segunda caixa de seleção). Sem isso, algumas dependências do Groot não estarão disponíveis para instalação. Ou você pode simplesmente usar o Groot distro-agnóstico (deve funcionar em qualquer distribuição Linux); siga as instruções de sua página do GitHub para instalá-lo.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.