Ir para conteúdo
  • Cadastre-se

Personalizando o Hiren's Boot CD - Parte 1

Avalie este tópico:


Posts em destaque

Aqui deixo algumas dicas de como você pode personalizar sua mídia do Hire caso precise modificar os menus (e programas disponibilizados) tanto na linha de comando quanto no MiniXP. Estou assumindo que você fez um usb bootável e inseriu o Hiren nele.

 

Pois bem, aqui não vou fazer um tutorial detalhado mas apenas citar algumas diretrizes. Também vou dividí-lo duas partes. Você não precisa ser um expert em linguagem de scripts, mas deve ter um bom senso de lógica :-\

 

Doravante, quando eu me referir a Linux estarei me referindo a qualquer distribuição GNU/Linux.

 

Nota: eu utilizo Linux então a estrutura de diretórios e arquivos são totalmente diferentes de quem utiliza Windows, mas vou escrever o tutorial me baseando no Windows (se houver algum erro é porque eu não tenho muita prática no Windows mesmo). No Linux após inserir a media na usb, tudo estará dentro do diretório /media (ou /mnt se for uma distribuição um pouco antiga). Também, para usuários Linux, em muitas distribuições não é disponibilizado o MC(Midnight Commander), eu lhe aconselho a ter ele - é o canivete suiço do Linux.

 

Aqui vou assumir que a letra do dispositivo onde estão os arquivos do Hiren é D(no meu caso está dentro de um cartão SD). Então, você irá trabalhar dentro do diretório D:\HBCD

 

[code]Também, nunca é demais lembrar: "Sempra faça um backup prévio de toda a estrutura do Hiren, assim, se fizer algo errado terá como restaurar tudo ao que era antes".
[/code]

 

1 - Tornando executáveis visíveis na linha de comando

O objetivo é apenas fazer com que programas estejam acessíveis na linha de comando. Eles não aparecerão no menu do DOS

1.1- Simplesmente copie o arquivo D:\HBCD\Dos\Tools.7z para algum local, descompacte-o, insira o programa que quer e recompacte-o outra vez. O arquivo já modificado e recompactado tem que ser 'Tools.7z', então, simplesmente copie-o para D:\HBCD\Dos\Tools.7z (sobrescrevendo o arquivo existente).

1.2 - Reinicie o computador, dê boot pelo Hiren e escolha a linha de comando do DOS. Depois disto, digite o nome do comando para verificar se está executando normalmente.

Nota: alguns programas, mesmo no DOS precisam de DLLs ou outros arquivos, se eles existirem, coloque tudo dentro do arquivo Tools.7z - a opção abaixo é mais cômoda para trabalhar nesta situação.

 

2 - Modificar o menu do Hiren(adicionando/removendo programas) no modo DOS

2.1 - Passos iniciais

2.1.1 - Você deve copiar o arquivo D:\HBCD\Dos\dos.gz para algum diretório onde irá trabalhar.

2.1.2 - Agora você deve descompactar este arquivo(no Linux será melhor trabalhar dentro do diretório onde está o arquivo).

No Linux basta executar "gunzip dos.gz". No Windows qualquer gerenciador de arquivos que suporte este tipo de compressão faz isto.

2.1.3 - Com a imagem descompactada, terá o arquivo dos(está é uma imagem de disquete). Agora você deverá montá-lo.

No Linux basta executar "sudo mount -v dos /mnt -o loop". Aqui estou assumindo que irá montar dentro do diretório /mnt.

No Linux, para evitar ficar digitando a senha o tempo todo, faça um "sudo su" - também facilitará a edição/salvamento dos arquivos.

No Windows, acho que o DaemonTools faz isto.

 

2.1.4 - Com tudo montado, verá a estrutura abaixo.

[code]-rwxr-xr-x 1 root root  42K Nov  7  2012 7zDec2.exe
-rwxr-xr-x 1 root root  63K Nov  7  2012 7zDec.exe
-rwxr-xr-x 1 root root 5,0K Nov  7  2012 attrib.com
-rwxr-xr-x 1 root root 1,7K Nov  7  2012 autoexec.bat
-rwxr-xr-x 1 root root  931 Nov  7  2012 autoexec.dat
-rwxr-xr-x 1 root root  246 Nov  7  2012 BootDriv.exe
-rwxr-xr-x 1 root root  92K Nov  7  2012 command.com
-rwxr-xr-x 1 root root  14K Fev 22 21:21 config.sys
-rwxr-xr-x 1 root root 601K Fev 22 21:27 drivers.7z
-rwxr-xr-x 1 root root 3,6K Nov  7  2012 edit.com
-rwxr-xr-x 1 root root  49K Nov  7  2012 emm386.exe
-rwxr-xr-x 1 root root  25K Nov  7  2012 gm.exe
-rwxr-xr-x 1 root root 283K Nov  7  2012 grub.exe
-rwxr-xr-x 1 root root  33K Nov  7  2012 himem.sys
-rwxr-xr-x 1 root root 6,5K Nov  7  2012 himemx.exe
-rwxr-xr-x 1 root root 3,7K Nov  7  2012 ifshlp.sys
-rwxr-xr-x 1 root root 121K Nov  7  2012 io.sys
-rwxr-xr-x 1 root root  136 Nov  7  2012 linux.lst
-rwxr-xr-x 1 root root  214 Nov  7  2012 msdos.sys
-rwxr-xr-x 1 root root  206 Nov  7  2012 seagatdw.lst
-rwxr-xr-x 1 root root 7,9K Nov  7  2012 shsurdrv.exe
-rwxr-xr-x 1 root root 1,1K Nov  7  2012 startup.bat
[/code]

... eu adoro ver este tipo de listagem! Para usuários do Windows: "atente para a última coluna onde estão os nomes dos arquivos".

 

2.1.4.1 - O arquivo principal de configuração é o config.sys, então abra-o em um editor de texto.

2.1.4.1.1 - No Linux você pode utilizar um editor na linha de comando ou qualquer editor gráfico (só observe para não modificar a codificação e salvar com fim de linha Windows - não Unix/Linux).

2.1.4.1.2 - No Windows pode ser o notepad (se utilizar outro editor, pode correr o risco de inserir códigos binários durante o salvamento).

2.1.4.2 - Com o arquivo aberto, observe como ele é escrito, preste atenção como um menu chama o outro... é só aplicar um pouco de lógica.

2.1.4.2.1 - Como exemplo, veja que o [menu] (linha 1) tem vários 'submenu' e cada submenu está associado a uma variável (submenu=PARTMENU; submenu=RECVMENU;etc). Então, quando se escolhe a opção 'Recovery Tools', o script ler a variável RECVMENU (linha 5) que está mais abaixo no arquivo em [RECVMENU] (linha 121) que por sua vez tem vários 'menuitem'(este é o menu de 'Recovery Tools'). Se por acaso, for escolhido 'PhotoRec 6.14b' será lida a variável PHOTOREC que mais abaixo no arquivo (linha 353) tem a seguinte secção:

[code]    [PHOTOREC]
    include=NOEMM
    SET S=A[/code]

O que ocorre é que inclui a secção [NOEMM] e cria a variável S (só não vi o que ela significa mas observando outras linhas verá que poderá ter o valor de B). Outras secções têm comandos mais complexos mas não deve se preocupar com elas (é provável que não precisará entender). Você deve estudar outros comandos para 'pegar' a fluidez do script (o que chama o que... etc).

2.1.5 - Antes de proseguirmos, atente para o fato que só pode haver 9 ítens em cada menu e que cada submenu está associado a outro menu que possui menuitem submenu e menudefault.

2.1.5.1 - Para remover um item, basta procurar todas as ocorrências de uma variável e apagá-la.

2.1.5.1.1 - Supondo que eu quero remover o 'Hard Disk Sentinel 1.00.5 (Health/Temperature info)'. Primeiro eu procuro pela variável HDS(que é a variável associada a esta entrada) e a encontro na linha 382...

    [HDS]

    include=NOEMM

    SET NS=1

    SET S=B

... então removo tudo até encontrar a próxima variável (que neste caso seria [KILLDISK] - está acima o que deve ser apagado). Isto irá remover apenas a chamada do programa.

2.1.5.1.1.1 - Agora vou remover a linha 'Hard Disk Sentinel 1.00.5 (Health/Temperature info)' do menu. Para isto, basta apagar toda a linha do menu  - menuitem=HDS, Hard Disk Sentinel 1.00.5 (Health/Temperature info). Pronto, tenho uma linha do menu a menos!

2.1.5.1.1.2 - Agora vou remover o comando (já que a intenção também é economizar espaço!). Para isto, dentro da imagem montada, observe que há o arquivo 'drivers.7z' - você precisa copiá-lo para algum outro local e descompactá-lo. Dentro dele estarão arquivos com extensão sys, pcm, exe... etc além do diretório 'temp' onde estão os arquivos .bat que executarão os programas. Agora vem a parte mais emocionante.

2.1.5.1.1.3 - Recapitulando: "No exemplo acima eu já removi a entrada de menu 'Hard Disk Sentinel 1.00.5 (Health/Temperature info)' e vou procurar o comando!"

2.1.5.1.1.3.1 - Observe que dentro do diretório onde descompactou o arquivo 'drivers.7z', tem o arquivo RecvMenu.pcm <- é neste arquivo que está a chamada do comando.

2.1.5.1.1.3.2 - Em primeiro lugar, antes de remover as linhas relativa ao programa que quero remover, tenho que ver o nome do comando (neste caso está em RecvMenu.pcm)...

    Recover (recover.exe)

    recover.exe /

    ... a primeira Linha é a que aparecerá no menu (da segunda interface - vou falar disto no final). A segunda linha me mostra o comando a ser chamado, então, vou procurar no diretório temp dentro de onde descompactei o arquivo 'drivers.7z' por ele e removê-lo de lá! Mas que pena, não existe nenhum comando 'recover.exe' dentro do diretório e muito menos um arquivo .bat que me daria a localização do programa - isto porque este programa está sendo chamado diretamente do arquivo D:\HBCD\Dos\Tools.7z - então, neste caso, terei que descompactar o arquivo Tools.7z, remover o programa 'recover.exe' de lá, recompactar o arquivo como Tools.7z e devolvê-lo para o diretório D:\HBCD\Dos (sobescrevendo o arquivo original).

   

No Linux, com o MC, basta F3 em cima do arquivo, apagar o que quer e sair de dentro do arquivo - já terá um novo Tools.7z.

    No Windows, dependendo do programa e da versão que tiver, terá que fazer isto manualmente.

2.1.5.1.1.3.3 - Neste caso específico, após as operações acima, só terei que remover a entrada do menu (item 2.1.5.3).

2.1.5.1.2 - A lógica sempre vai ser a acima mostrada.

2.1.5.1.2.1 - Agora eu quero remover o item 'CMOS Save / Restore Tool 0.93 (cmos)'.

2.1.5.1.2.2 - A variável dele é CMOS. Removo a entrada dele a partir da linha 577 até a linha 579. Como a linha de menu está dentro da variável [bIOSTOOL], vou procurar este arquivo dentro do diretório onde o arquivo 'drivers.7z' está descompactado.

2.1.5.1.2.3 - No arquivo BIOSTool.pcm, as linhas correspondentes são:

 

CMOS Save & Restore

call cmos

/

2.1.5.1.2.4 - Antes de apagá-las, vou atrás do comando cmos dentro do diretório temp e encontro o cmos.bat. Já posso remover as linhas (item 2.1.5.1.2.3).

2.1.5.1.2.5 - O conteúdo do cmos.bat é...

    @ECHO Off

    ECHO  CMOS

    call 7z biosboot tools

    CMOS.COM %1 %2 %3 %4

    SET CMD=YES

   

... pelo que vejo, é chamado o comando 7z no arquivo biosboot e tools. Estes arquivos correspondem a D:\HBCD\Dos\[biosBoot.7z|Tools.7z]. Abrindo BiosBoot.7z, encontro  'cmos.com e cmos.txt' <- estes serão os arquivos removidos.

2.1.5.1.2.6 - Como já removi o comando(e arquivos associados a ele), agora eu removo o arquivo cmos.bat (item 2.1.5.1.2.4).

2.1.5.1.2.7 - Por fim, removo a chamada dele (item 2.1.5.1.2.3).

2.1.5.1.3 - Na maioria dos casos, bastará apenas seguir os exemplos acima. Mas tem alguns casos mais complexos onde deverá dominar um pouco a linguagem de scripts para saber o que está ocorrendo. Muitos programas são chamados diretamente do diretório D:\HBCD\Dos, os que não encontrar estarão dentro de D:\HBCD\Dos\[Tools.7z|Mix.7z]. Também, ao procurar uma variável, utilize a função 'Pesquisar' de seu editor de textos, assim verá todas as ocorrências delas.

2.1.5.2 - Para adicionar um item, procure um programa que é parecido com o que quer inserir (se é só um arquivo exe, se tem dlls... etc) e estude o arquivo 'config.sys' e siga o roteiro até chegar nos executáveis para ver como ele é chamado, executado... etc - assim lhe poupará de tentar ficar advinhando.

2.1.5.2.1 - Eu quero adicionar o programa spipgm.exe em conjunto com o flashrom.exe, para gravar bios (que vi aqui no fórum). Vou adicionar primeiro o spipgm que já baixei para meu pc.

2.1.5.2.1.1 -  Dentro do arquivo que baixei tem o SPIPGM.EXE e IOPERM.DLL

2.1.5.2.1.1.1 - Arquivo 'config.sys'

2.1.5.2.1.1.1.1 - Observando o arquivo, o item de menu apropriado é 'BIOS/CMOS Tools', vou aproveitar e modificá-lo para 'BIOS/CMOS/EEPROM Tools' - para isto, basta editar a descrição para 'submenu=BIOSTOOL, BIOS/CMOS/EEPROM Tools...' (linha 15).

    Observe que ele está dentro de [MOREMENU] que por sua vez é chamado pelo [menu] em 'submenu=MOREMENU, Next...'(linha 10) <- depois verá como poderá adicionar uma nova linha de menu seguindo esta lógica.

2.1.5.2.1.1.1.2 - Indo até o menu [bIOSTOOL], vou inserir um item de menu. Como eu já inseri uma entrada de menu antes, não posso inserir mais entradas pois o limite de nove itens foi alcançado então tive que criar um submenu(veja abaixo).

    [bIOSTOOL]

    menuitem=CMOS, CMOS Save / Restore Tool 0.93 (cmos)        1

    menuitem=CMOSPWD, BIOS Cracker 5.0 (cmospwd)                2

    menuitem=BIOS, BIOS Utility 1.35.0 (bios)                  3

    menuitem=IBIOS, !BIOS 3.20 (ibios)                          4

    menuitem=DISKMAN4, DISKMAN 4.2 (mbr,bootrecord,cmos...)    5

    menuitem=UNIFLASH, UniFlash 1.40                            6

    menuitem=KILLCMOS, Kill CMOS (Wipe CMOS)                    7

    submenu=MOREBIOS1, Next...                                  8

    submenu=MOREMENU, ...Back                                  9

    menudefault=BIOSTOOL,

    ... neste caso eu criei outro submenu [MOREBIOS1] onde eu irei inserir o item de menu...

    [MOREBIOS1]

    menuitem=DMICFG, Award DMI Configuration Utility 2.43

    menuitem=AFUDOS, AMI Flash Utility (afudos)

    menuitem=SPIPGM, EEPROM SPI(PGM) Programmer

    submenu=BIOSTOOL, ...Back

    menudefault=MOREMENU,

    ... veja acima, que quando eu escolher 'Next...', vai ser chamado o [MOREBIOS1] que me apresentará mais quatro entradas de menu. Se eu escolher 'Back' no outro menu, vai ser chamado o menu [bIOSTOOL] - esta lógica é válida para todas as opções de submenu e menudefault, basta seguir. Quando eu escolher a entrada 'EEPROM SPI(PGM) Programmer', o script vai atrás da variável SPIPGM (que eu criei). Observe também, que a partir da linha 262 é que estão os conteúdos das variáveis pela qual o script irá executar o programa.

    ... para manter a ordem, eu escolhi pôr o conteúdo da variável próximo às variáveis pertencentes a este grupo...

    [sPIPGM]

    include=NOEMM

    SET S=B

    ... na grande maioria dos executáveis o include será NOEMM. Em SET faça testes. Como eu já informei, estude o arquivo.

2.1.5.2.1.1.2 - Terminado com o arquivo 'config.sys' salve-o para não perder as modificações. Deveremos agora entrar dentro do diretório onde o arquivo 'drivers.7z' foi descompactado e procurarmos pelo arquivo correspondente à categoria que estamos modificando (neste caso BiosTools.pcm) e adicionar as linhas abaixo (vendo como ele é escrito, basta seguir os exemplos).

    SPI(PGM) Programmer

    call spipgm

    /

    ... desta forma, quando este arquivo for carregado, será chamado o arquivo temp/spipgm.bat (vou criar este arquivo e o conteúdo dele está abaixo).

    @ECHO Off

    ECHO  EEPROM PROGRAMMER (SPIPGM)

    call 7z spipgm tools

    if not exist %ramd%:\cwsdpmi.exe call 7z tools

    spipgm.exe

    SET CMD=YES

    ... a primeira linha garante que não terá nenhuma saída do programa (no caso mensagens que o programa retorna ao prompt) ao iniciar. Na segunda linha é impresso no terminal o texto 'EEPROM PROGRAMMER (SPIPGM)'. Na terceira linha executa o 7z sobre os arquivos spipgm e tools (lembre-se que estes arquivos estão em D:\HBCD\Dos). Na quarta linha verifica se o comando 'cwsdpmi.exe' já foi carregado, caso contrário executa 7z no arquivo tools novamente. Na quinta linha, executa o comando  spipgm.exe(que já deve estar carregado pelos comandos  anteriores) e na quinta linha linha apenas confirma a linha de comando.

2.1.5.2.1.1.3 - agora a única coisa que falta é criar o arquivo Spipgm.7z dentro do diretório D:\HBCD\Dos. Para isto basta comprimir o conteúdo do arquivo baixado(ele tem dois arquivos: SPIPGM.EXE e IOPERM.DLL) para Spipgm.7z e colocá-lo no diretório informado acima.

2.1.5.3 - Após você fazer todas as modificações que deseja vem a parte final.

2.1.5.3.1 - Se você seguiu tudo, terá dois diretórios de trabalho.

2.1.5.3.1.1 - O diretório onde descompactou o arquivo drivers.7z

    Você deve compactar tudo para o arquivo drivers.7z

2.1.5.3.1.2 - O diretório onde a imagem dos está montada.

    Mova(ou copie) o arquivo drivers.7z (que foi criado no item 2.1.5.3.1.1) para dentro deste diretório(sobrescrevendo o original).

2.1.5.3.2 - Desmonte a imagem dos e compacte-a com o formato gz.

    No Linux basta executar "gzip dos" - aqui estou assumindo que está como root.

    No Windows você já sabe como fazer.

2.1.5.3.3 - Com o arquivo dos.gz, basta movê-lo(ou copiá-lo) para D:\HBCD\Dos (sobrescrevendo o arquivo original). Pronto, seu programa já pode ser executado na linha de comando do DOS e também pode ser acessado via menu.

 

No início do texto eu me referi à segunda interface do DOS que é quando executamos um programa e ele vai para um menu em ambiente pseudo gráfico(me lembrou o ncurse). Neste menu, pelo menos no Hiren que eu baixei, devido ao modo em que é executada(as imagens que carrega), faz com que alguns programas não executem. Assim, eu removi tudo dela e deixei apenas duas chamadas - uma para voltar a linha de comando e outra para voltar ao menu do DOS. Abaixo está o conteúdo modificado (é o arquivo MainMenu.pcm que está dentro de drivers.7z)

.t=Transitional Menu

.c=23,112

Main Menu

        %BOOT%:\grub --config-file="find --set-root /HBCD/menu.lst; configfile /

HBCD/menu.lst"

EXIT (Esc)

 

Como nota final, se quiser modificar o menu principal do Hiren, eles são os arquivos menu.lst (dentro de D: e D:\HBCD) - os executáveis estão normalmente em D:\HBCD\Boot - basta seguir o comando do script. O arquivo D:\HBCD\menu-custom.lst também pode ser modificado.

 

Bom, por enquanto é só. Na

Você não tem permissão para ver links. Faça login ou cadastre-se.
deste tutorial verá como remover/adicionar programas no MiniXP - é muito mais fácil.

Link para o comentário
Compartilhar em outros sites

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...