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).
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.
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
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
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:
- Você acessa a configuração da máquina virtual
- Na seção de rede você já configurou um adaptador em NAT
- Procure a opção de encaminhamento de porta
- Você adiciona uma nova regra, com os únicos parâmetros "porta do host" e "porta do convidado"
- 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:
- No parâmetro do servidor, escrevemos: sftp: // localhost
- No parâmetro de nome de usuário, escrevemos: root
- No parâmetro de senha, colocamos o que usamos em «passwd»
- No parâmetro da porta, escrevemos: 3022
- 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 ...
3 comentários, deixe o seu
Que bom guia, um tanto complicado, mas muito útil.
Boa contribuição.
Depois, com um pouco mais de tempo, e sem tanto desconforto aos olhos, vou ler atentamente. Parece muito útil e interessante.
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