Chrooting no ambiente de instalação iso do ArchLinux

1

Estou tentando instalar o ArchLinux, mas meu laptop trava sempre que tenho alguma mídia inicializável conectada (exceto o disco principal, por sorte). Eu lhes digo isso, não porque eu esteja querendo consertar meu laptop (embora qualquer comentário sobre o porquê de isso estar acontecendo seja bem-vindo), mas para explicar por que estou tentando fazer o que pode parecer bastante complicado.

Eu tenho uma versão antiga do Ubuntu rodando no laptop e a iso do ArchLinux em um disco que eu posso montar. Meu plano é fazer chroot no ambiente de instalação do ArchLinux, mais ou menos no sentido inverso do processo de instalação.

Neste ponto, no entanto, minha ignorância começa a aparecer. Eu tenho RTM mas, como há pouca esperança de uma segunda tentativa, se eu eliminar minha instalação existente, agradeceria qualquer pegadinha e qualquer conselho em geral.

    
por Peter Coulton 24.03.2013 / 20:52

1 resposta

1

Antes de eu começar o chrooting, você já pensou em contornar o problema? Você não está totalmente sem opções:

  1. inicializando a partir de pen drive USB ou DVD USB (a menos que isso trava o computador também)

    ou, se você tiver outro computador à mão,

  2. inicializando pela rede (se o seu laptop é capaz disso) - configurar um servidor tftp não é difícil.

  3. tirar o disco rígido e instalá-lo em outra máquina.

A próxima coisa a considerar é: você realmente precisa de chroot? O instalador não consegue executar a partir de qualquer diretório?

Agora, chrooting. Depende muito se o seu disco está particionado. Se não for, sugiro strongmente que você escolha uma das rotas acima (que, na verdade, é uma alternativa se algo der errado).

Supondo que você tenha uma partição S montada em /S onde você pode colocar o conteúdo da mídia de instalação e uma partição T montada como / no sistema em execução, os passos devem ser mais ou menos como segue (aviso: eu não testei! ):

  1. loopback-monte o iso em algum lugar: mount -o loop,ro /path/to/iso /some/where

  2. copie o conteúdo de mídia da mídia para S : cp -r /some/where/* /S

  3. entrar no modo de usuário único, desativar todos os serviços, desmontar todas as partições, exceto T e S

  4. bind-mount importantes pseudo sistemas de arquivos do sistema em execução:

    for fs in /dev /dev/pts /proc /sys; do
        mount -o bind ${fs} S${fs}
    done
    
  5. pivot_root - troca a raiz e outro diretório pelo processo em execução e exec chroot (o exec é necessário para poder desmontar o antigo / ).

    cd /S
    pivot_root . old_root
    exec chroot . command
    
  6. desmontar raiz antiga:

    for fs in /dev /dev/pts /proc /sys; do
        umount old_root${fs}
    done
    umount old_root
    

E lá você deveria estar, tendo o conteúdo de mídia montado como / e os pseudo sistemas de arquivos mais importantes onde eles normalmente estão. Note que você não pode realmente chroot para a mídia montada, se você quiser desmontar o antigo / - o arquivo de mídia montado deve estar em um sistema de arquivos montado em algum lugar sob a raiz antiga e você tem que desmontar tudo sob a raiz. E você deseja desmontar a raiz antiga, a menos que você tenha outra partição sobressalente para instalar - porque se você for instalar a T tendo ela montada em algum outro lugar ao mesmo tempo, possivelmente com alguns programas ainda correndo dele, está apenas pedindo por problemas. Especialmente se você decidir formatá-lo.

    
por 26.03.2013 / 00:55