Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Mini-Howto Dual boot para terminais leves (tsp e freedos)

Colaboração: Marco Sinhoreli

Data de Publicação: 23 de Abril de 2004

Em: 25/03/2004 Distribuição utilizada: Debian Woody

Introdução:

A idéia é providenciar na inicialização do terminal leve usando GNU/Etherboot e o GNU/Grub um menu para boot do Linux via ltsp ou do GNU/Freedos. Não entrarei em detalhes de como configurar o ltsp pois o projeto já se encontrabem documentado (www.ltsp.org).

Ferramentas necessárias:

  1. Instale o mknbi.
  2. Baixe do site www.ltsp.org na sessão downloads o ltsp_initrd_kit.
  3. Baixe os fontes do Grub:

      $ cd /usr/src
      $ mkdir grub-src
      $ cd grub-src
      $ wget http://ruslug.rutgers.edu/~mcgrof/grub-images/grub-debian-sources/grub_0.93+cvs20030224.orig.tar.gz
      $ wget http://ruslug.rutgers.edu/~mcgrof/grub-images/grub-debian-sources/grub_0.93+cvs20030224-2.diff.gz
      $ tar zxvf grub_0.93+cvs20030224.orig.tar.gz
      $ gunzip grub_0.93+cvs20030224-2.diff.gz
      $ patch -p0 < grub_0.93+cvs20030224-2.diff
      $ cd grub-0.93+cvs20030224
    
  4. Altere as linhas do código fonte dos arquivos:
      $ cd stage2
      fsys_reiserfs.c
      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      De:  
             __u32 long j_mount_id;
      Para: 
             /* __u32 long j_mount_id; */
      
      De:
               || desc.j_trans_id != next_trans_id
               || desc.j_mount_id != header.j_mount_id)
      Para:
               || desc.j_trans_id != next_trans_id)
               /*  || desc.j_mount_id != header.j_mount_id) */
      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    

    disk_io.c
      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      De:
         {"reiserfs", reiserfs_mount, reiserfs_read, reiserfs_dir, 0 reiserfs_embed},
      Para:
         {"reiserfs", reiserfs_read, reiserfs_dir, 0, reiserfs_embed},
      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    

    Após alterado os fontes, verifique os parametros para o configure dos fontes em /usr/src/grub-src/grub-0.93+cvs20030224/netboot/README.netboot

    O exemplo é para o nic rtl8139 e para que seja disponibilizado os arquivos nbgrub e pxegrub (--enable-diskless) e desabilidado reiserfs (desabilitei devido a problemas ao compilar com make):

      $ ./configure --enable-rtl8139 --enable-diskless --disable-reiserfs
      $ make
    
  5. Copie os arquivos binários nbgrub e pxegrub para o diretório do tftp:
      $ mkdir /tftpboot/grub 
      $ cp stage2/nbgrub /tftpboot/grub/nbgrub.rtl8139
      $ cp stage2/pxegrub /tftpboot/grub/pxegrub.rtl8139
    
  6. Baixe do site do freedos a imagem para diquete.
  7. Monte a imagem do freedos no mnt por exemplo:
      $ mount -o loop -t vfat freedos.img /mnt
    
  8. Vamos agora preparar a imagem do freedos para ser inicializavel pelo Eherboot:
      $ mknbi-fdos /mnt/kernel.sys freedos.img > netfreedos.img
      $ cp netfreedos.img /tftpboot/boot
    
  9. No site www.romomatic.net, selecione a versão 5.3.3 para o boot do GNU/Freedos. O motivo para o uso de uma versão da ROM do Etherboot em desenvolvimento é para que se tenha a variável "vendor-class-identifier" diferente da utilizada para o boot inicial. O dhcp identifica a variável enviada pela rom na requisição do serviço e carrega a ação explicita no dhcpd.conf. Como o freedos.img não pode ser carregado pelo nbgrub via tftp, a idéia é que o nbgrub descarregue outra ROM via tftp e que esta ao solicitar novamente as informações do dhcp o dhcp verifica novamente a variavel "vendor-class-identifier" enviada pela ROM e envia o freedos.img.
  10. Selecione a rom da sua placa de rede e o formato de saída "LILO Bootable ROM (.zlilo) Image" (para o boot pelo grub).
  11. Clique em Configure e na área "ASK_BOOT:" deixe o campo em branco.
  12. Clique no botão "Get Rom" e salve o arquivo.
  13. Copie o arquivo salvo para /tftpboot/roms:
      $ mkdir /tftpboot/roms
      $ cp eb-5.3.3-rtl8139b.zlilo /tftpboot/roms/rtl8139b.zlilo
    
    Neste exemplo estou usando a rom para rtl8139 e deixei o nome mais sugestivo :o)
  14. Crie os diretório para os arquivos do grub, o kernel, o initrd e a imagem do freedos.
      $ mkdir -p /tftpboot/boot/grub
    
  15. Descompacte o pacote ltsp_initrd_kit e copie os arquivos bzImage-2.4.xx-ltsp-1 e initrd-2.4.xx-ltsp-1.gz para /tftpboot/boot.
  16. Crie um arquivo /tftpboot/grub/menu.lst:
      ### Inicio do /tftpboot/grub/menu.lst
      
      default = 0
      timeout = 15
      tftpserver 192.168.20.6
      color magenta/blue black/magenta
      splashimage /boot/grub/splash.xpm.gz
      
      title = GNU/Linux (LTSP)
              root (nd)
              kernel /boot/bzImage-2.4.xx-ltsp-1 init=/linuxrc rw root=/dev/ram0
              initrd /boot/initrd-2.4.xx-ltsp-1.gz
       
      title GNU/Freedos
              kernel /boot/rtl8139b.zlilo
      
      ### Fim do /tftpboot/grub/menu.lst
      
      16- Configurando o dhcpd.conf
      
      ### Inicio do dhcpd.conf 
      
      default-lease-time            21600;
      max-lease-time                21600;
      ddns-update-style none;
      allow booting;
      allow bootp;
      option subnet-mask            255.255.255.0;
      option option-128 code 128    = string;
      option option-129 code 129    = text;
      option broadcast-address      192.168.0.255;
      option routers                192.168.0.1;
      option domain-name-servers    200.204.0.10;
      option domain-name            "ltsp";
      use-host-decl-names           on;
       
      shared-network WORKSTATIONS {
        subnet 192.168.20.0 netmask 255.255.255.0 {
          range dynamic-bootp        192.168.0.10 192.168.0.100;
          option root-path           "192.168.0.1:/opt/ltsp";
          if substring (option vendor-class-identifier, 0, 13) = "Etherboot-5.3" {  
            filename                "/boot/netfreedos.img";
          } else {
            filename                "/nbgrub/nbgrub.rtl8139";
          }
        }
      }
      
      ### Fim do dhcpd.conf 
    
  17. Para a sua eprom etherboot ou diquete com a rom utilize versões diferentes (5.2.4 por exemplo) da sugerida para o boot do freedos.

Happy Hacking :)

Referências:

Veja a relação completa dos artigos de Marco Sinhoreli

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.98/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1448 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

SEM e SEO - 2ª Edição