Tentando transplantar bash para / mnt para chroot, o que o bash quer para funcionar?

2

Eu tenho um tarball gentoo de estágio 3 .. extrai-o para / mnt que hospeda / dev / sda3. Embora não houvesse bin e nenhum sinal de festança depois de desembalar. Até onde sei, o resto da configuração envolve estar nesse ambiente de gentoo falso para configurá-lo inicialmente. Então, eu acho que eu poderia transplantar bash do meu Fedora em execução. Esta é uma questão para um problema maior, mas uma parte de cada vez .. Eu ouvi algo sobre alguns arquivos em lib ou lib64, mas não ficou claro em qual ..

edit: ainda não usou o 'make'. para esclarecer onde estou em

    
por Reimy 08.06.2015 / 17:08

2 respostas

2

Corrigir

Antes de mais nada, nunca transplante / copie / crie uma ferramenta viva para a área de trabalho do stage3. Como tal, vamos começar de novo. Primeiro, estou assumindo que /dev/sda3 é uma partição em branco. Se não:

  1. Crie /dev/sda3 usando uma ferramenta como o GParted.
  2. Se você já fez a Etapa 1, problema: mke2fs -j /dev/sda3
  3. mkdir /mnt/gentoo && mount /dev/sda3 /mnt/gentoo
  4. cd /mnt/gentoo
  5. wget http://distfiles.gentoo.org/releases/amd64/autobuilds/20150604/stage3-amd64-20150604.tar.bz2 -P /mnt/gentoo (Assumindo arco amd64)
  6. tar xvjpf stage3-*.tar.bz2 --xattrs
  7. Continue em Etapa - Seção 2

Raciocínio

O Tarball do estágio 3 conterá um Bash funcional quando descompactado. Os seguintes comandos, em Seção 1.4 de Instalando o sistema básico do Gentoo :

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

irá inserir uma raiz de alteração limpa para a construção / instalação.

Seguir o manual pressupõe que você deseja o Gentoo como outro sistema ativo. No seu caso, a única coisa que você deve ignorar é a seção de configuração do GRUB, porque o Fedora contém um Grub funcional. Como tal, a opção de inicialização do Gentoo deve ser adicionada às opções do Grub do Fedora.

Atualizar

Como comentário, cada distribuição do Linux contém um arquivo profile . É armazenado em lugares diferentes, dependendo da distribuição. No caso do Gentoo, ele é armazenado no diretório /etc , porque no Gentoo, todo arquivo de configuração é feito para ser personalizado. Citando o Manual do Linux From Scratch :

The shell program /bin/bash (hereafter referred to as just "the shell") uses a collection of startup files to help create an environment. Each file has a specific use and may affect login and interactive environments differently. The files in the /etc directory generally provide global settings. If an equivalent file exists in your home directory it may override the global settings.

Desta forma, a linha 2, o comando source , separa o ambiente do sistema de compilação (no seu caso, o Fedora) do ambiente contido no tarball descompactado que você inseriu com o comando chroot . Isso garante que nenhuma ferramenta externa de compilação, por exemplo, bash , configure , make , consiga "poluir" o processo de criação (veja meu comentário acima). Em outras palavras: O compilador configure, make e gcc usado para construir o sistema será aquele dentro do chroot .

Quanto à linha 3, exportar $PS1 imprime (chroot) root@host #/

É assim que as pessoas que seguem o Manual, que gostam de navegar pelos TTY's ou consoles gráficos, ler toda a documentação podem dizer onde o chroot que estão criando / atualizando é ...

    
por 08.06.2015 / 20:02
0

Para transplantar o bash do seu Fedora em execução, você precisaria não apenas do executável bash, mas também de todas as bibliotecas das quais ele depende. Isso vai ser complicado e pode entrar em conflito com os arquivos do Gentoo.

Obtenha um shell com ligação estática, para que você possa simplesmente adicionar um único binário ao seu chroot que funcionará sozinho. Eu não acho que o Fedora forneça algum; você pode obter um dos vários do Debian: bash-static , sash (sem edição de linha de comando, mas vários utilitários úteis como cp , rm , mount , etc.), busybox-static (tem uma edição básica de linha de comando e muitos recursos internos), zsh-static (melhor edição de linha de comando do que o bash e vários recursos úteis úteis que você pode ativar com zmodload zsh/files ). Para extrair um arquivo de um pacote .deb , use, por exemplo,

ar p zsh-static_5.0.7-5_amd64.deb | tar xJO ./bin/zsh5-static >/path/to/zsh-static

O ponto aqui é ter algumas ferramentas de depuração para o seu chroot. É claro que você deve corrigir o problema e instalar o bash corretamente .

    
por 09.06.2015 / 04:15