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:
/dev
, /run
, /proc
, /sys
e outros diretórios do sistemaGroot é 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:
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 ([email protected])
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:
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):
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.
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.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
Groot Simplifies Entering Chroot On Any Linux Distribution