Personalizando um disco de reparo: o caminho para o LFS

Muitas foram as vezes em que tivemos que consertar um sistema a partir de um LiveCD, e em algum momento do processo nos faltou uma ferramenta e quando queremos instalá-la, o LiveCD OS nos diz que ficou sem espaço e alho e água (para se foder e se segurar).

Este problema realmente me ocorreu por causa de entrar no LFS (LinuxFromScratch), que é um guia (NÃO uma distribuição em si) para instalar um Linux personalizado. O ponto desta "distribuição" é que a partir de qualquer LiveCD, e com as ferramentas apropriadas, você baixe o código do kernel e outras ferramentas para construir seu próprio sistema (compilando tudo aos poucos). Se você quiser seguir o guia passo a passo, você precisa de várias ferramentas e compiladores, e não existe um liveCD com tudo, então você precisa personalizar um.

Vamos fazer isso. Vamos usar o SystemRescueCD, que oferece um ambiente baseado no Gentoo bastante abrangente.

Em nosso exemplo (instalando o Linux do zero seguindo o livro Linux From Scratch) não temos os programas Bison e Makeinfo, então vamos criar uma nova imagem ISO deste disco, mas com as novas ferramentas.

AVISO: Gentoo é uma distribuição que compila no local todos os pacotes a serem instalados, portanto, o processo de adição e atualização de programas é lento.

Embora um gerenciador de pacotes seja usado (como o apt-get do Debian), em vez de baixar pacotes, o código-fonte é baixado para compilá-lo em sua máquina.

Para o processo, você precisará de uma partição Linux (ext4 por exemplo) com pelo menos 1.5G livre, embora mais seja recomendado. Se você não quiser mexer em suas partições, use uma máquina virtual. Claro, é aconselhável que a partição tenha vários gigs já que durante os processos de compilação, instalação, sincronização de repositórios ... é necessário espaço temporário; Aconselho o uso de uma partição swap 8G + 2G (com 4G + 1G deve ser suficiente, mas podemos garantir que se faltar RAM / swap o processo será ainda mais lento).

Supondo que você tenha criado uma máquina virtual com um disco de 10 G, inicie-a informando-a para inicializar a partir do SystemRescueCd recém-baixado. Uma vez lá dentro, particionamos com o fdisk (se você iniciou a sessão gráfica, pode fazê-lo com o gparted, mas o objetivo deste artigo é ensinar o uso de ferramentas básicas). fdisk é um comando interativo:

  • com a opção "n" criamos uma nova partição
  • com a opção "t" mudamos o tipo de sistema de arquivos que irá na partição
  • com a opção «w» nós gravamos no disco
  • com a opção «q» saímos sem escrever as alterações

Quando usarmos a opção "n" nos daremos várias opções, sempre usaremos o padrão, exceto ao definir o último setor na primeira partição, que teremos que escrever "+ 8G", indicando assim ao programa que queremos nossa partição ocupar 8 GB.

Ao criar a segunda partição usaremos as opções padrão uma vez que o resto do espaço será ocupado. Além disso, para informar ao fdisk que a segunda partição será do tipo swap, use a opção "t" (o código hexadecimal para swap é 82). A interface se parece com isto:

Comando% fdisk / dev / sda (m para ajuda):

Assim que tudo estiver feito, usamos a opção "w" para gravar as alterações no disco e sair.
Agora é hora de formatar as partições. Começaremos com a troca para usá-la imediatamente:

% mkswap / dev / sda2% swapon / dev / sda2

Já temos a partição swap formatada e com o comando trocar começamos a usá-lo. Agora formataremos a primeira partição em ext4:

% mkfs.ext4 /dev/sda1

Podemos começar a seguir as etapas descritas em http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, aqui eu traduzo / descrevo com a anotação ímpar.

Montamos a partição em seu lugar (o LiveCD já vem preparado com uma pasta / mnt / custom onde deve ser montada a partição na qual faremos as devidas alterações). Também após a montagem teremos que extrair os arquivos do disco, isso é feito com um script que já está preparado. O script vai demorar um pouco (já que despeja centenas de megabytes de memória), se você quiser verificar se está realmente funcionando, vá para outro terminal (com Alt + F4 por exemplo) e faça um df -h.

% mount / dev / sda2 / mnt / custom% / usr / sbin / sysresccd-custom extract

Se você agora navegar dentro / mnt / custom / customcd, você verá várias pastas. Dentro / mnt / custom / customcd / files o sistema de arquivos raiz é encontrado. Agora é hora de fazer o chroot do novo sistema futuro. Aqui vou colocar os comandos, para mais informações sobre o chroot você pode ver este tutorial que escrevi um mês atrás

% mount -o bind / proc / mnt / custom / customcd / files / proc% mount -o bind / dev / mnt / custom / customcd / files / dev% mount -o bind / sys / mnt / custom / customcd / files / sys% chroot / mnt / custom / customcd / files / bin / bash # gcc-config $ (gcc-config -c)

Já estamos no sistema chroot, que será o sistema LiveCD assim que inicializá-lo. Vamos instalar os pacotes que faltam (bison e texinfo) usando o comando emergir (quem lida com o pacote de portage do gentoo).

Primeiro sincronizamos a árvore do Portage (o equivalente a apt-get update)
# emerge-webrsync NOTA: usamos este comando em vez de "emerge –sync" porque é mais rápido, uma vez que baixa um pacote tar da web. Este passo é necessário, porque se você não emerge, ele irá automaticamente emerge –sync, tornando-o mais lento.

Depois de sincronizar a árvore do portage, podemos prosseguir com a instalação dos pacotes:

# emerge sys-devel / bison # emerge sys-devel / texinfo
bisão vai demorar um pouco para compilar, seja paciente

Deixamos o chroot:# exit

Desmontamos "/ proc" para que os novos pacotes instalados sejam armazenados no squashfs. Também desmontamos "/ dev" e "/ sys" para não esquecermos mais tarde
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys

Como já temos o novo sistema de arquivos squash preparado, nós o criamos com o seguinte comando
% /usr/sbin/sysresccd-custom squashfs
Se quisermos adicionar um arquivo na imagem ISO, mas queremos que ele esteja fora do squashfs, devemos colocá-lo na pasta «/ mnt / custom / customcd / isoroot»

% cp -a my-files /mnt/custom/customcd/isoroot

Neste ponto, o guia oficial informa que você pode definir o mapa de teclado para inicializar com um teclado padrão (por exemplo, "es" para teclados espanhóis). Mas fazendo vários testes, o script que eles usam para mim não funcionou e resultou em um erro ao carregar o kernel, então vou pular esta etapa.

Chegou o momento glorioso, agora podemos gerar a nova imagem ISO com nosso sistema customizado!
% /usr/sbin/sysresccd-custom isogen my_srcd
"My_srcd" é o nome que damos ao volume, você pode chamá-lo como quiser. A imagem é salva em «/ mnt / custom / customcd / isofile», além disso, um arquivo .md5 também é gerado 🙂

Se você estiver trabalhando em um disco virtual, a etapa crucial permanece: extraia a imagem ISO do sistema virtual. Existem várias maneiras de fazer isso, vou explicar uma simples (no VirtualBox) para evitar ter que instalar "adições de convidados" ou algo parecido.
Usaremos o cliente para obter o arquivo por meio de um túnel ssh. Para fazer isso, primeiro devemos configurar o sistema convidado com uma senha root. O servidor ssh inicia automaticamente, nós ainda o reiniciamos para o caso.
% passwd
% /etc/init.d/sshd restart

Temos que configurar o encaminhamento de porta da máquina virtual. No VirtualBox, isso é feito da seguinte forma:

  1. Você acessa a configuração da máquina virtual
  2. Na seção de rede você já configurou um adaptador em NAT
  3. Procure a opção de encaminhamento de porta
  4. Você adiciona uma nova regra, com os únicos parâmetros "porta do host" e "porta do convidado"
  5. host = 3022 e convidado = 22

Com isso, conseguimos que a porta 3022 do nosso PC seja a 22 da máquina virtual. Iniciamos o cliente Filezilla:

  1. No parâmetro do servidor, escrevemos: sftp: // localhost
  2. No parâmetro de nome de usuário, escrevemos: root
  3. No parâmetro de senha, colocamos o que usamos em «passwd»
  4. No parâmetro da porta, escrevemos: 3022
  5. Clique em «Conexão rápida»

Se tudo correu bem à esquerda podemos navegar no nosso PC e à direita na máquina virtual. Basta acessar (na máquina virtual) a pasta «/ mnt / custom / customcd / isofile» e arrastar a imagem ISO para o local que quisermos em nosso PC.

!! Parabéns !! Se tudo correr bem, você tem sua imagem ISO pronta com um SystemRescueCD personalizado e pronto para inicializar a partir de um CD, USB ...


O conteúdo do artigo segue nossos princípios de Ética editorial. Para relatar um erro, clique clicando aqui.

3 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Leão dito

    Que bom guia, um tanto complicado, mas muito útil.
    Boa contribuição.

  2.   Leper_Ivan dito

    Depois, com um pouco mais de tempo, e sem tanto desconforto aos olhos, vou ler atentamente. Parece muito útil e interessante.

  3.   Carlos Sanchez dito

    Olá woqer, post muito bom!

    Estou com o LFS há alguns anos e criei minha própria iso que pode atendê-lo, tem tudo o que você precisa para compilar, pois é um LFS. 😀 Espero que seja útil para você

    http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso