Chroot não está funcionando. [RESOLVIDO]

1. Chroot não está funcionando. [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 06/08/2021 - 12:57h

Preciso fazer um procedimento de regravar GRUB com comandos. Sempre fiz assim e funciona, vejam minha Dica e atualização dela:

https://www.vivaolinux.com.br/dica/Sabayon-perdeu-o-Grub-Resolvido

Mas desta vez, não está funciona. Há uma mensagem de erro dizendo que não existe arquivo /bin/bash.


É parecido com o que está ocorrendo nestes posts:

https://qastack.com.br/unix/128046/chroot-failed-to-run-command-bin-bash-no-such-file-or-directory
https://www.ti-enxame.com/pt/executable/chroot-falha-ao-executar-o-comando-bin-bash-esse-arquivo-ou-...
https://sobrelinux.info/questions/770891/chroot-failed-to-run-command-bin-bash-no-such-file-or-direc...
https://www.vivaolinux.com.br/topico/Debian/chroot-com-problema...

Exceto que existe o bash, tanto em /bin/bash como em /usr/bin/bash


é um chroot para uma partição montada em um disco rígido portátil. sdc

Mas quando testo no micro, exemplo com uma das partições do micro, normal, funciona. Tipo, assim funciona norrmal; sda3 é uma partição do micro:


# mkdir /mnt/teste
# mount /dev/sda3 /mnt/teste
# chroot /mnt/teste /bin/bash







  


2. MELHOR RESPOSTA

Buckminster
Buckminster

(usa Debian)

Enviado em 06/08/2021 - 14:23h

Apesar de que existem várias maneiras de fazer chroot, geralmente quando fazemos o chroot montamos o /dev/sdx /mnt seguindo esta sequência, por exemplo:
cd /
mount -t ext4 /dev/sdc /mnt <<< em ext4 vai o fs.
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev

Para fazer um chroot deve-se estar dentro do raiz (cd /).

Os parâmetros de mount também interferem.
O comando mount --bind olddir newdir remonta apenas parte da hierarquia em outro lugar, ou seja, cria uma espécie de ligação, por isso é aconselhável usar mount -t antes para depois dar um bind em /mnt/dev porque daí leva toda a estrutura montada pronta.
https://linux.die.net/man/8/mount

Na página do chroot ( https://linux.die.net/man/7/path_resolution ), "If the component is not found, an ENOENT error is returned ("No such file or directory")."
Acredito que deu esse erro porque a partição está num disco portátil.
Nas partições do HD interno funciona normal porque tem o sistema inicializável instalado e o sistema procura (e acha) o /bin/bash.
Pelo que vi no link ali do Grub, simplesmente monta os diretórios e depois tenta dar um chroot /mnt /bin/bash. Acredito que por isso dá arquivo ou diretório não encontrado. Acredito que a estrutura não foi completada.
Talvez tu tenha que, a partir do raiz no DVD live fazer todo o chroot para o HD portátil usando --bind somente no último comando.
Não sei se nesse HD portátil tem um sistema instalado ou tem somente dados, mas de qualquer maneira é necessário fazer o chroot porque o chroot muda o diretório raiz do processo de chamada (com toda sua estrutura) para aquele especificado no caminho da montagem.
Posso estar errado, mas acredito que é isso que está acontecendo. Grosso modo, o /bin/bash não foi junto.


3. Re: Chroot não está funcionando.

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 06/08/2021 - 14:37h

Obrigado.
Sim. vou tentar os métodos que sugeriu, depois te aviso aqui.
E sim, tem sistema instalado e o que quero é gravar o grub dele no próprio sdc.


¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


4. Re: Chroot não está funcionando.

Osama Jr.
/bin/laden

(usa Void Linux)

Enviado em 06/08/2021 - 16:03h

A distro live que tu usas é da mesma arquitetura (32/64 bits) do teu SO que tá instalado?
Já passei por situação assim! Tinha um SO 64 bits instalado e tentei fazer chroot com um live CD de 32 bits e não deu certo. Qualquer comando que tentasse usar no chroot dava como não encontrado.

---
echo 1244394795515721490698P | dc


5. Re: Chroot não está funcionando. [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 06/08/2021 - 16:08h

sim é a mesma distro inclusive. è para gravar o grub em um HD externo, de um linux que foi clonado do HD interno. Sabayon Linux 64 Bits.


¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


6. Re: Chroot não está funcionando. [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 09/08/2021 - 12:03h

Acertou em cheio, Buck!
Seu procedimento funcionou.
RESOLVIDO.


¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts