fazer chroot e continuar o script [RESOLVIDO]

1. fazer chroot e continuar o script [RESOLVIDO]

Cristiano
sempreslack

(usa Slackware)

Enviado em 03/06/2016 - 16:27h

Fala galera, quanto tempo heim ;)
Bem, isso pode ser muito simples pra alguns, mas realmente não consigo achar uma forma de fazer isso.
Tenho um script, por exemplo pra instalar o arch linux, poderia ser o gentoo ou o funtoo, a idéia é a mesma.
É possível de aguma forma continuar o mesmo script no ambiente chroot? como faço para o script ver que, a partir do momento que é definida a entrada no ambiente chroot para continuar a instalação, ele deve fazer tudo agora no novo ambiente? Sei que ficou confusa a pergunta, mas o que acontece é que dou a instrução para entrar em chroot e o script entra de fato, mas continua fazendo as coisas no ambiente antigo, ou seja, no root do pendrive bootavel.


  


2. MELHOR RESPOSTA

Iago Roger
r00g3r

(usa Void Linux)

Enviado em 03/06/2016 - 21:36h

sempreslack escreveu:

Fala galera, quanto tempo heim ;)
Bem, isso pode ser muito simples pra alguns, mas realmente não consigo achar uma forma de fazer isso.
Tenho um script, por exemplo pra instalar o arch linux, poderia ser o gentoo ou o funtoo, a idéia é a mesma.
É possível de aguma forma continuar o mesmo script no ambiente chroot? como faço para o script ver que, a partir do momento que é definida a entrada no ambiente chroot para continuar a instalação, ele deve fazer tudo agora no novo ambiente? Sei que ficou confusa a pergunta, mas o que acontece é que dou a instrução para entrar em chroot e o script entra de fato, mas continua fazendo as coisas no ambiente antigo, ou seja, no root do pendrive bootavel.


chroot /mnt/funtoo /bin/bash -c "ls /"
chroot /mnt/gentoo /bin/bash -c "ls /"

acho que deve funcionar com o arch tbm eu tinha feito um script meu porco pra instalar o funtoo, assim vc vai poder escrever alteracoes dentro do novo sistema sem precisar em entrar nele ou sair do atual

der uma olhada https://github.com/helmuthdu/aui/blob/master/sharedfuncs#L594-L596

3. Re: fazer chroot e continuar o script [RESOLVIDO]

ctw6av
ctw6av

(usa Nenhuma)

Enviado em 03/06/2016 - 19:01h

Vou dar um ideia meia tosca se não gostar apenas ignore-a...

Crie dois scripts (o segundo é a continuação do primeiro)
Com o primeiro script pronto faça tudo até a parte do chroot como montar os discos formatar e tal mas antes de entrar em chroot faça ele copiar a segunda parte para algum diretório na partição montada, em seguida ecoe o path do script para o .bashrc do root na partição montada e assim que você fizer o chroot o bashrc do mesmo vai iniciar o segundo script e dar continuidade a instalação.

Acho que é uma coisa assim que pensei quando li a pergunta kkkkkkkkk. Que gambiarra hein!.




=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





4. Re: fazer chroot e continuar o script [RESOLVIDO]

Cristiano
sempreslack

(usa Slackware)

Enviado em 03/06/2016 - 20:31h

claro cara, toda sugestão é bem vinda, grato por responder ;)
Só consegui responder agora, estava no livecd do arch e só estava com o elinks.
Bem, eu já tinha pensado nisso, digamos não em chamar o script automaticamente, mas rodar o outro script manualmente, já no ambiente chroot. Estou estudando shell script, claro que sem curso, vou fazer muitas gambiarras ainda ;)
então não se preocupe com minhas "gambiarras", outras ainda virão ;)


5. Re: fazer chroot e continuar o script

ctw6av
ctw6av

(usa Nenhuma)

Enviado em 03/06/2016 - 21:20h

Não precisa necessariamente rodar manualmente o 2° script é so fazer assim

  1 export MI="/mnt/Arch"
2 mkdir $MI
3 mount /dev/sdbX $MI
4 mv 2°_script $MI/tmp/
5
6 echo "chown /tmp/2°_script root && chgrp /tmp/2°_script root" >> $MI/root/.bashrc
7 echo "chmod 700 /tmp/2°_script" >> $MI/root/.bashrc
8 echo "/tmp/2°_script" >> $MI/root/.bashrc
9
10 chroot $MI /bin/bash


Não testei mais acho que pode até dar certo.

EDIT: Da linha 10 em diante rodará já no segundo ambiente e antes de rodar executará as linhas 6,7,8.

P.S: Quando eu disse gambiarra eu me referi a minha kkkkkkkkk.



=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





6. Re: fazer chroot e continuar o script [RESOLVIDO]

Cristiano
sempreslack

(usa Slackware)

Enviado em 04/06/2016 - 17:24h

Galare, grato pelas respostas.
Vou testar as duas formas, desinstalar e reinstalar o arch mais algumas vezes, haha.

ctw6av, grato mano, vou testar amanha tua dica, hoje acabei não tendo muito tempo :( Acho que vai funcionar, vlw garoto.
r00g3r, vou dar uma olhada no link que você passou. O arch tem um script que faz isso chamado arch-chroot, vou dar uma olhada nesse script. Quero fazer o mesmo com gentoo e com funtoo. Na verdade, a idéia é fazer nos 3, funtoo, gentoo e arch, pelo que vi tem pouca diferença entre as instalações e acho que não vai mudar muito. Vou dar uma olhada no script que você me passou, grato pela ajuda.
Caras, valew mesmo, to bem empolgado, adorando aprender shell script. Forte abraço a todos


7. Re: fazer chroot e continuar o script [RESOLVIDO]

Iago Roger
r00g3r

(usa Void Linux)

Enviado em 05/06/2016 - 10:03h

sempreslack escreveu:

Galare, grato pelas respostas.
Vou testar as duas formas, desinstalar e reinstalar o arch mais algumas vezes, haha.

ctw6av, grato mano, vou testar amanha tua dica, hoje acabei não tendo muito tempo :( Acho que vai funcionar, vlw garoto.
r00g3r, vou dar uma olhada no link que você passou. O arch tem um script que faz isso chamado arch-chroot, vou dar uma olhada nesse script. Quero fazer o mesmo com gentoo e com funtoo. Na verdade, a idéia é fazer nos 3, funtoo, gentoo e arch, pelo que vi tem pouca diferença entre as instalações e acho que não vai mudar muito. Vou dar uma olhada no script que você me passou, grato pela ajuda.
Caras, valew mesmo, to bem empolgado, adorando aprender shell script. Forte abraço a todos


pode seguir do jeito que eu descrevi sem erro

ex: http://i.imgur.com/s9BuOvc.png



8. Re: fazer chroot e continuar o script [RESOLVIDO]

Cristiano
sempreslack

(usa Slackware)

Enviado em 05/06/2016 - 14:41h

Então, deu certo, não muito funcional por enquanto, mas deu certo.
Dei esse comando para testar
arch-chroot -c "echo "teste" > /root/teste.txt
escreveu o arquivo com a palavra teste no arquivo teste.txt dentro do chroot, algo que não tinha conseguido até então. Digamos que o problema está resolvido.
Será que daria pra tornar isso mais funcional? digo, colocar um comando antes dizendo:
read -p "O sistema entrará em chroot para continuar, aperte qualquer tecla para continuar"
Como posso fazer para por exemplo dizer ao shell que ele deve fazer os procedimentos se a tecla enter for apertada?
penso em algo como um if, exemplo:
function readkey() {
read -n1 KEY
}

function keypressed() {
[ $KEY ]
}

# salva as configurações atuais do terminal
STTY=$(stty -g)

stty -icanon min 0 time 0 -echo

while [ 1 ]; do
readkey

if keypressed; then
arch-chroot ...
...
...
fi
done
# restaura as configurações do terminal
stty $STTY

obs: esse exemplo e essa idéia tive desse link:
http://www.cesarbs.org/blog/2007/02/11/keypressed-e-readkey-em-bash/


9. Re: fazer chroot e continuar o script [RESOLVIDO]

Iago Roger
r00g3r

(usa Void Linux)

Enviado em 05/06/2016 - 15:21h

sempreslack escreveu:

Então, deu certo, não muito funcional por enquanto, mas deu certo.
Dei esse comando para testar
arch-chroot -c "echo "teste" > /root/teste.txt
escreveu o arquivo com a palavra teste no arquivo teste.txt dentro do chroot, algo que não tinha conseguido até então. Digamos que o problema está resolvido.
Será que daria pra tornar isso mais funcional? digo, colocar um comando antes dizendo:
read -p "O sistema entrará em chroot para continuar, aperte qualquer tecla para continuar"
Como posso fazer para por exemplo dizer ao shell que ele deve fazer os procedimentos se a tecla enter for apertada?
penso em algo como um if, exemplo:
function readkey() {
read -n1 KEY
}

function keypressed() {
[ $KEY ]
}

# salva as configurações atuais do terminal
STTY=$(stty -g)

stty -icanon min 0 time 0 -echo

while [ 1 ]; do
readkey

if keypressed; then
arch-chroot ...
...
...
fi
done
# restaura as configurações do terminal
stty $STTY

obs: esse exemplo e essa idéia tive desse link:
http://www.cesarbs.org/blog/2007/02/11/keypressed-e-readkey-em-bash/


o certo seria assim arch-chroot /mnt /bin/bash -c "comandos" como estar nessa linha https://github.com/helmuthdu/aui/blob/master/sharedfuncs#L594-L596


10. Re: fazer chroot e continuar o script [RESOLVIDO]

Cristiano
sempreslack

(usa Slackware)

Enviado em 05/06/2016 - 18:23h

bem, isso realmente funcionou, é um pouco trabalhoso, mas resolve. Vlw caras






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts