Pergunta sobre chroot

3

Cenário

  • Eu tenho 2 partições Ubuntu funcionando no meu disco rígido, vamos chamá-las de A e B. Elas usam uma única partição swap.
  • Eu iniciei em A e entrei na área de trabalho. Agora quero tornar a partição A maior (há espaço suficiente) sem reinicializar.

Pergunta

Posso usar o chroot para

  • muda a execução para B e depois desmonta a partição A.
  • Em seguida, a partir de B, inicie o gparted e redimensione a partição A.
  • Então (em B) monte A em um / mnt / temp e use o chroot para mudar a execução de volta para A?

Por favor, comente ou responda se você sabe se isso é possível ou não. Mesmo quando você não sabe os passos exatos. Isso já me ajudaria e é muito melhor do que nenhuma resposta.

É claro que mais útil seria um procedimento de linha de comando passo a passo para ir para B, desmontar a partição A e como iniciar o gparted gráfico.

O que eu fiz

  • Eu usei o chroot para mudar de um live CD ou outra partição para consertar o grub. Foi apenas no modo de texto. Eu usei o procedimento padrão que é explicado em muitos posts (monte outra partição, monte - ligue as pastas virtuais e então mova com chroot para a unidade montada).
  • Eu criei um clone de A para uma partição recém-criada B. O clone funciona bem e completamente quando inicializado a partir do grub, então eu sei que ele é totalmente funcional. Eu acessei a linha de comando com chroot ('#' prompt) de A.
  • Não encontrei uma maneira de iniciar uma área de trabalho em B ou alternar completamente para o trabalho em B, como se eu tivesse reinicializado o sistema em B.
  • eu não vi outra postagem contendo essa pergunta
por CatMan 04.05.2017 / 13:15

1 resposta

2

Como eu sei: chroot significa mudar a raiz.

  

O chroot em sistemas operacionais do tipo Unix é uma operação que altera o aparente diretório-raiz para o processo em execução atual e seus filhos.    [daqui]

Você está alterando a raiz do seu sistema em execução; Portanto, seu sistema (A) ainda está executando tudo o que você vê como parte de seu sistema em execução e você não pode simplesmente desmontar seus recursos ocupados (dispositivos de bloco).

Além disso, o sistema para o qual você está mudando sua raiz (B) não é capaz de fazer nada sem a ajuda de A. Como exemplo, acho que você usou um comando como mount --bind /xxx /mnt/xxx para vincular caminhos como /proc ou /dev como parte de chroot process; Esses caminhos estão sendo gerenciados pelo sistema em execução (A) e são necessários para o ambiente chrooted (B).

Você simplesmente não pode fazer o que você está tentando fazer.

Como Wikipedia diz, os usos de chroot são:

  • Teste e desenvolvimento
  • Controle de dependência
  • Compatibilidade
  • Recuperação
  • Separação de privilégios

Para executar um programa gráfico a partir do seu ambiente chrooted (B dentro de A); Você deve permitir o acesso ao X em execução.

Fora do lado da execução do ambiente chroot (abra outro terminal):

xhost +local:
echo $DISPLAY

Em seguida, exporte o que você obtém como saída em seu ambiente chrooted:

export DISPLAY=[output of above command]

Agora você deve conseguir executar aplicativos gráficos.

Fonte

Não consigo entender por que você está fazendo isso, basta inicializar em um disco ao vivo, aplicar suas alterações, fazer chroot em suas diferentes máquinas para corrigir qualquer problema, se necessário. depois reinicie e use seus sistemas.

    
por Ravexina 04.05.2017 / 13:49