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.