O Phantom se originou de uma idéia surgida em 2003, quando trabalhava em uma empresa de vendas e suporte. Na época, os computadores começavam a ser vendidos com o Kurumin instalado com impressora e pronto para navegação. O problema era ter que fazer ou refazer uma instalação, pois apesar de ser consideravelmente rápido instalá-lo, os ajustes finais necessitavam de uma certa concentração (e um roteiro). Para terminar com esse problema, fiz a primeira remasterização do Kurumin com auto-restore, gerando uma imagem do sistema através de um compartilhamento de rede montado via SAMBA. Posteriormente, essa imagem era gravada em CD, junto à remasterização do Kurumin, que recebeu um script que rodava após o boot e baixava a imagem novamente para o disco; tabela de partições, MBR e imagem do sistema. Alguns meses depois, foi necessário baixar em massa essas imagens, que até então só se tinha em CD. Havia sido feita uma venda grande para uma concessionária de porte e o prazo era curto. Tomei então seis leitores de CD e passei a baixar em série.
Claro que essa não era a melhor solução, mas era o que tinhamos. Já nessa época havia escrito um artigo para a br-linux.org, onde dava a dica de como preparar uma estação para hospedar imagens geradas via SAMBA.
Em Dezembro de 2004, passei a trabalhar na Uranet - Projetos e sistemas, onde tive como primeiro projeto, gerar backup de computadores com informações estáticas, tal como firewalls. Usei a mesma solução de auto-restore, porém nesse caso, tinhamos muitas variações; não dava pra replicar uma imagem para todos os firewalls. Logo, montei um servidor de imagens, onde hospedava a imagem do sistema e seguidamente gerava o arquivo de imagem que seria gravado em CD e colocado do lado do computador; caso houvesse falha de software ou hardware, o computador seria imediatamente substituído por outro hardware idêntico e, nele seria baixada a imagem do CD. A restauração era rápida, porém a mão de obra para gerar o CD era desgastante.
A empresa começou a crescer mais e mais, prestando serviço de callcenter para grandes empresas; o número de máquinas (compradas em lotes de fornecedores de grife) aumentava consideravelmente, saindo da casa das centenas. Imagens eram geradas pela parte técnica, da forma mais simples que até então existia - o conhecido software comercial, que além de depender de licença, sistema operacional comercial e um servidor DHCP, ainda dependeria de disquetes (que na versão atual desse documento, eram dois), um lado servidor instalado (para iniciar a cópia em rede) e duas pessoas - pois uma deveria ficar no andar em que se dispararía a cópia de imagens. Outro problema é que se faz upload ou download e mais um, que para cada placa de rede se haveria de fazer mais disquetes.
Mediante tantos fatores desfavoráveis, decidi unir os recursos que havia anteriormente utilizado e automatizar a tarefa de clonagem, de forma que qualquer usuário pudesse fazê-lo, tal como se faz no software comercial. De princípio, houve resistência por parte do usuário, devido ao costume de usar a ferramenta tradicional, mas com a ajuda do próprio usuário, pude melhorar a cada dia a ferramenta, dando a ela os recursos que ele julgava necessários. Muitas foram as vantagens iniciais; suporte a muitas placas de rede, suporte a discos SATA, boot pelo CD, download e upload de imagem simultaneamente. E novas idéias foram surgindo, porém ainda havia um inconveniente que tornava lento o processo de geração de imagens, fossem elas para teste ou para versão final - o tamanho e inflexibilidade do sistema base utilizado; o Kurumin era muito grande para o propósito.
Apesar das desvantagens, resolvi assim mesmo disponibilizar uma cópia do sistema, afim de favorecer mais usuários de linux e escrevi um novo artigo em 2006 para a br-linux.org, onde explanei sobre o sistema e pedi auxílio para a hospedagem do sistema, que até então possuia 280MB. Em torno de uma semana, o Gustavo Vasconcelos me condeceu um espaço e muitos recursos que me ajudaram a manter o Phantom, estando até então unicamente em http://phantom.nasheer.net. Alguns dias após hospedado, recebi um e-mail de alguém que se propôs a ajudar na redução do sistema:
”Trabalho com dispositivos embedded e acho que posso ajudar a reduzir o tamanho do sistema, se me permitir”. Respondi educadamente o e-mail e, logo uma resposta:
”Ok. Devo demorar alguns dias para apresentar alguma coisa” ...
Pensei que seria esse o último contato. Continuei a atualizar o Phantom e em alguns dias, recebi um arquivo - a primeira versão do phantomlivecd, a base do phantom de hoje. Era uma versão pequena, frágil e de escassos recursos, tanto que, tive o prazer e a honra de inserir em seu kernel monolítico o suporte a HDs SATA e removi um bug causado em processadores Athlon, além de adicionar algum suporte a algumas placa de rede gigabit. E assim tive o primeiro grande contato com um sistema novo, o qual ganhei do Marcelo Barros Almeida, grande Dr. e professor universitário, especialista em dispositivos embedded com linux. A partir de então, passamos a ser parceiros no projeto, cujo sistema fundiu-se ao phantom e hoje são uma só peça, interligados por scripts e programas, chegando à excelência de 8MB1!
Navegando pela internet, encontrei um comentário em um fórum argentino, onde trocavam informações sobre o Phantom. Logo, entrei na lista e falei sobre a hospedagem e redução do sistema. Assim que o fiz, alguém se manifestou sobre internacionalizá-lo - Sim, eu havia pedido ajuda para reduzir o sistema, mas não para criar um sistema. Estava em meus planos, mas não seria rápido fazê-lo.
Hoje temos uma equipe de tradutores, estando o casteliano nas boas mãos do Walter Omar Autalán, que me traduz todo o site e em parceria com o Juan Matías Granda, faz a internacionalização do Phantom. Novos recursos e modicações radicais no sistema são feitas pelo Marcelo Barros Almeida e inclusão de novos recursos e melhorias nas funcionalidades da engine são feitas por mim, sendo que ambos damos uns retoques aqui e alí.
Passado mais algum tempo e obtivemos gratuitamente a hospedagem de um domínio, sendo www.phantomsystem.com.br, além de alguns espelhos para os arquivos .iso, que são selecionados randomicamente nos links de download.
Atualizado:
Em Abril de 2008 aconteceu um fato novo; uma sobrecarga no servidor que hospeda o ISO. Rapidamente fiz uma solicitação por espelhos no br-linux.org e em 2 dias já pude contar com alguns excelentes espelhos, cuja referência a eles se encontra em ”Agradecimentos”.
Novas idéias e participantes serão sempre bem-vindos, assim como as críticas e sugestões. Sou muito grato a todos que tem acreditado no sistema, além de auxiliar de todos o modos, contribuindo com traduções, idéias e código.
Espero sinceramente que esse sistema possa lhe atender em todas as suas necessidades técnicas, caro leitor.
A imagem está em um formato .iso comprimido com gzip, bastando descomprimí-la e gravá-la em um CD ou DVD com o seu programa favorito. Caso não saiba gravar uma imagem .iso, procure o help do seu programa gravador.
O Phantom é um sistema inicializável para clonagem de discos de sistema ou disco de dados. Um sistema inicializável quer dizer - um sistema de boot; no caso, um livecd, tal como o é o Kurumin ou o FreeDos. Seja qual for o sistema usado para clonar um HD, ele deve ser inicializável, pois o HD não deve estar em uso no momento da clonagem e a única forma de fazê-lo é usando um sistema externo. Após gravado, deve-se iniciar o computador com o primeiro dispositivo de boot apontado para o CD/DVD, fazendo assim o boot do Phantom. Todo o sistema é carregado para a memória e o drive de CD/DVD se torna disponível novamente. Durante o processo de boot é verificado se o sistema pegou IP (via DHCP, inicialmente), se o HD está como master, se há slave. Havendo qualquer anormalidade, uma mensagem já é exibida com o diagnóstico. Opções como IP podem ser reconfigurados no menu principal, caso a rede em que se está não atribua IP dinamicamente. O CD/DVD é ejetado após a carga do sistema, possibilitando o uso do mesmo drive para a restauração a partir de outro CD/DVD.
Mais formas de boot do Phantom podem ser encontradas na página §.
Na clonagem de sistema com o Phantom, pode-se guardar uma imagem de partição individual ou uma imagem do disco inteiro, incluindo partições extendidas desde a versão 0.6.9.0.
Uma imagem pode ser armazenada no mesmo disco em que se está fazendo a imagem, desde que em partição diferente, em reiserfs, fat32 ou ntfs. A restauração também pode ser feita assim. Com isso, se dá a possibilidade de criar CDs de auto-restore, onde a imagem pode ter até vários gigabytes, com todos os programas devidamente instalados. Nesse caso, deve-se considerar que os dados dinâmicos contidos na partição do sistema serão perdidos, pois a imagem sobrescreverá todos os dados, como se fosse uma nova formatação. Para evitar a perda de dados dinâmicos, é aconselhável que se tenha uma partição para dados e que o usuário tenha o bom senso de guardar seus dados alí, pois dessa forma não haverá risco de perdas.
Como poderá ser visto mais a frente, um modelo que se enquadra a essa situação é:
| partição de sistema | partição de dados | partição de imagem |
Existem recursos que não estão contidos no software comercial, como gravação da imagem em disco, recuperação da tabela de partições, o apagamento da MBR, recuperação de dados, clonagem direta de HD para HD, Remoção de senhas de sistemas1 Linux, Windows e bios, reparação do gerenciador de boot GrUB ou LiLo, troca de formato de partição e mais. Essas diferenças fazem valer ainda mais o aprendizado ou ”mudança de hábito” ou ”cultura”, no que se refere ao sistema de clonagem. Todo o software que se encontra no Phantom é livre. O Phantom está sob a licensa GPL2, como pode ser conferido na tela inicial do boot, com as HotKeys F1 a F4.
O Phantom foi palestrado na FISL8, com exibição de vídeos que se encontram no youtube, onde também apresentamos uma prévia do que viria a ser o Phantom atual, que ganhou uma interface gráfica leve e prática.
Se você usar e aprovar o Phantom em sua empresa, o único requisito é que você envie-nos o seu logo (e link, se houver) para que coloquemos no site, como um caso de sucesso. As empresas cujo logo se encontram no site, fazem uso do Phantom, assim como algumas delas apóiam o sistema, oferecendo hospedagem, domínio, laboratório e espelhos. Se você pretende ajudar de alguma forma, entre em contato pelo email djames.suhanko@gmail.com.
Toda a dúvida que não for exclarecida atráves deste manual, sinta-se a vontade para entrar em contato por mail.
Não há propósito comercial da parte dos desenvolvedores/colaboradores do sistema, no entanto, havendo a necessidade de preparação de ambiente ou qualquer outro tipo de consultoria, contacte-nos, lembrando mais uma vez que toda e qualquer dúvida pode ser exclarecida por mail, por prazo ou número de vezes indeterminado e sem qualquer custo.
A clonagem simultânea em rede pode ser feita com tranqüilidade em até cinco máquinas sem degradação em uma rede 100mbits, mas nada impede que se clone mais sistemas ao mesmo tempo (já testado em andares inteiros, repleto de computadores). A clonagem pode ser feita de uma única imagem ou várias imagens diferentes.
Quando se está iniciando uma clonagem, após escolher o nome, é feita uma vericação para saber se a imagem já existe no servidor e, se existir, abre-se uma janela perguntando se a imagem deve ser sobrescrita ou não. Isso dá a possibilidade de escolher um novo nome, caso não se queira sobrescrever a imagem existente. O nome da imagem pode ser escrito com intervalos de espaços ou qualquer outro caractere, porém esses caracteres diferentes de letras ou números serão convertidos para underline ( _ ). O nome é formado por um prefixo ”phantom_” e é criado então o diretório que receberá a imagem com o mesmo nome, diferenciando ao término do nome, onde recebe _dev_hda1.000, por exemplo. A imagem não deve ser renomeada.
Os tipos de HD suportados são ATA, SATA, alguns modelos de SAS e SCSI e HDs externos via USB. Os tipos de mídia de armazenamento suportados diretamente na criação de imagem são:
Pendrive
HD local (partição)
HD externo (USB)
Local de rede
Os tipos de mídia de armazenamento suportados indiretamente são:
CD
DVD
Para armazenar imagens em CD e DVD, basta gravar o diretório da imagem com todo seu conteúdo para a mídia escolhida. Não há problema em gravar mais de uma imagem em CD ou DVD, pois ao restaurar, será aberto um menu com as imagens contidas na mídia.
Após a carga do sistema para a memória, será solicitada a escolha de um idioma, estando disponíveis as opções Portugues - Castellano - English. É iniciada uma série de testes; endereçamento IP, e discos disponíveis. O IP é exibido na tela e ao clicar em OK (ou Enter para o modo texto e modo gráfico) aparecerá a tela informativa da ejeção do CD/DVD. Caso a mídia não seja ejetada, certamente deverá ter havido algum erro na descoberta do dispositivo, portanto não será possível uma restauração a partir de CD/DVD se a montagem não vier a ser executada manualmente.
Por fim, abre-se o menu principal, com as opções descritas nos próximos capítulos.
As funções de salvamento são as primeiras do menu. Qualquer uma delas pode ser cancelada antes da etapa conclusiva do processo selecionado.
Esse ítem do menu permite salvar todas as partições que forem encontradas; tabelas de partições e MBR. Usar essa opção mesmo que se tenha apenas uma partição, evita que seja perguntado se deve salvar também MBR e tabela de partições.
Esse ítem do menu permite que se salve apenas uma partição a ser escolhida posteriormente. A tabela de partições e MBR aqui são opcionais.
Essa opção permite salvar em uma partição do disco local, mesmo que seja o HD em que está o sistema, bastando ser outra partição. Através dessa opção é possível salvar em HD externo ou pendrive.
Essa opção deve ser utilizada também para salvamento em dispositivos externos, como pendrives e HDs. Desde a versão 0.6.4.6, ao entrar no menu Salvar ou restaurar, automaticamente é feita a leitura de novos dispositivos de armazenamento conectados à máquina. Nas versões anteriores é necessário usar a opção ”Reler Dispositivos” do menu ”Ferramentas” (essa opção será descrita adiante).
Essas funções podem ser canceladas antes da etapa final de restauração.
Restaura todas as partições que foram armazenadas no diretório com o respectivo nome. Pode ser usado mesmo que se tenha gerado imagem de apenas uma partição.
Permite restaurar seletivamente uma partição, tabela de partições e MBR.
Permite restaurar uma imagem que já tenha sido gravada em DVD.
Todas as partições encontradas serão restauradas. Isso porque se deduz que, tendo a imagem sido copiada para uma mídia removível, o intuito é restaurá-la por completo, pois caso não o fosse, bastaria ter removido de dentro da pasta de gravação a partição que não se pretende restaurar.
O processo de restauração a partir do CD é o mesmo que para restauração a partir do DVD.
A restauração deve ser feita a partir do drive da respectiva mídia; se possuir apenas drive de DVD, mesmo que esteja restaurando uma imagem a partir de CD, a opção do menu a escolher é Restaurar do DVD1.
Nessa opção pode-se restaurar a partir de pendrive, HD externo ou partição local.
Se abrirá uma lista com todas as mídias encontradas, conectadas ao computador. Se o dispositivo for externo, primeiramente deve-se ir ao menu ”Ferramentas” e usar a opção ”Reler Dispositivos”.
Nesse menu se encontram todas as ferramentas que não são diretamente relacionadas a clonagem. Se o sistema for iniciado em modo gráfico, o primeiro item será o Xterm, para que se possa digitar comandos.
DICA: Se for necessário manter um terminal aberto para depuração, basta digitar no xterm:
xterm&
Após aberta a nova janela, a anterior poderá ser fechada e o menu do Phantom resurgirá na tela.Os terminais de F1 a F4 estarão sempre disponíveis, porém não será possível retornar ao modo gráfico caso se alterne para um deles.
Se o sistema for iniciado em modo texto (na verdade é sem frame-buffer, pois abrir-se-á um menu em dialog), o primeiro item do menu Ferramentas será SWM, permitindo assim que se inicie o modo gráfico.
Diversos parâmetros podem ser configurados através desse menu. Ao selecionar esse item, primeiramente abrirá uma janela com todas as informações de rede e acesso de rede.
As opções de reconfiguração são:
IP
Na escolha de IP, haverá a opção de busca por DHCP ou IP estático.
Gateway
O gateway é configurado apenas se houver necessidade específica.
Domínio
A especificação de domínio pode ser necessária em alguns casos apenas.
Usuário
Ao escolher o usuário, será posteriormente solicitada a senha.
Servidor
Qualquer servidor, podendo inclusive se especificar o IP ao invés do nome. Útil em casos que não se consegue fazer a resolução do nome do servidor.
Diretório
Qualquer diretório escolhido como substituto para ”imagens”.
Mapa de teclado
Não usual.
Tenta recuperar dados de HDs com badblocks. O ideal é tirar de um disco para outro, mas também pode ser copiado para a rede em casos de recuperação de dados menores que 2GB.
A clonagem de disco para disco.
Em alguns casos, a recuperação a partir de imagem não acontece com sucesso. Assim sendo, a clonagem de disco para disco é uma saída para conseguir uma cópia do sistema. Não é a melhor opção para clonagens comuns.
A formatação de uma partição mudará também o seu tipo para o sistema de arquivos escolhido. Quando a formatação questionar ”Formatar com o mesmo sistema de arquivos?” para partições Linux, entenda-se como ”Formatar com reiserfs”.
Caso seja escolhido não formatar com o mesmo sistema de arquivos, então o tipo da partição será mudada para o mesmo tipo do sistema de arquivos escolhido.
Mais opções serão acrescidas com o tempo.
A opção desfazer tenta recuperar a tabela de partições - um caso mais simples.
Em alguns casos, arquivos também podem ser recuperados através dessa opção.
Desde a versão 0.6.4.6 a leitura de dispositivos removíveis é feita logo ao entrar no menu Salvar ou no menu Restaurar. Para que funcione adequadamente, conecte o dispositivo e aguarde 2 ou 3 segundos antes de entrar em um desses menus.
Em alguns casos, o tempo de espera pode não ter sido suficiente, bastando sair e entrar novamente no respectivo menu. Em casos que o acesso ao dispositivo removível se dará para outros fins que não os típicos do menu, deve-se fazer então a releitura dos dispositivos da máquina através deste ítem.
Essa opção permite remover dados da MBR, sendo o gerenciador de boot e/ou a tabela de partições.
Esse menu exibe uma curta ajuda sobre um determinado ítem.
Essa opção faz o reset do computador. Por ser totalmente carregado para a memória, prefira a combinação das MagicKeys para o reset. Use Alt+SysRq+B.
Esse menu possui algumas opções para analisar superficialmente o estado de um HD.
Verifica o estado do disco, trocando informações em modo leitura/escrita. O processo é demorado.
Verifica com menor precisão o estado do disco, mas é ideal para discos que possuam sistema e que não se deva perder os dados.
Esse item formata em um pseudo ”baixo nível”. Bom para apagar vestígios de dados e tentar reparar a superfície de um disco. Não fôra observado danos em discos causados pelo uso desse recurso.
Reparador de gerenciador de boot.
Em alguns casos após restaurar a imagem, o sistema não sobe. Não quer dizer que a imagem de sistema está danificada, mas pode ser uma indicação de que o gerenciador de boot não foi reescrito adequadamente na MBR2 - e tem acontecido em alguns casos - por isso esse recurso foi criado, mas existem situações em que se perde o gerenciador de boot por um motivo qualquer. Essa solução funcionou em 100% dos casos aplicados. Aqui basta indicar o disco que possue o sistema, mas com uma limitação; a raiz do sistema deve estar totalmente em 1 partição, desde /boot a /var.
No primeiro momento pode parecer inútil, mas houve real necessidade para a criação dessa entrada, assim como para todas as outras que integram o Phantom.
É muito comum a necessidade de restauração de um sistema de livre acesso a um usuário comum, ainda mais se for um sistema operacional que possa pegar vírus através de uma conexão com a internet.
O caso mais comum para a utilização desse recurso em uma empresa é que tendo feito a imagem de um sistema, o usuário pode posteriormente mudar a senha em utilização (não da imagem, mas do sistema que inicializa). Mas o usuário poderia mudar a senha por diversas vezes até que houvesse a real necessidade de restaurar a imagem guardada em disco. Enfim, chega o grande dia de restaurar a imagem e...
...o usuário não se lembra da senha usada ”naquela época”!
Isso inutilizaria o backup, portanto esse recurso tem a intenção de prevenir o descarte da mão-de-obra, quebrando senhas de sistemas Linux e Windows. Como acréscimo, uma outra necessidade comum, até mesmo em empresas; mesmo comprando máquinas em lotes, a BIOS pode vir com senha e ainda por cima a máquina com trava.
Para evitar a perda da garantia, foi criado esse recurso, que ”zera” a senha da BIOS da maioria das placas-mãe encontradas no mercado. Só é recomendado cuidado pois algumas máquinas mais antigas necessitam de configuração manual para clock do processador, então assim como todo o resto do sistema a frase de praxe é:
”Use por sua conta e risco”.
Esse menu é um manipulador de imagens e ainda está em construção e aperfeiçoamento. Nele se encontram algumas opção básicas para reduzir a necessidade de acesso presencial ao servidor (ou mais adequadamente, receptor) de imagens.
Procura por imagens.
O intuito é a entrada parcial de um nome, pois é um caso comum não se lembrar como a imagem foi nomeada. A entrada parcial de nome deve mostrar todas as ocorrências. No futuro, a intenção é dar continuidade a tarefas a partir desse ítem. Ex.:
”Qual era o nome da imagem? Continha ’dell_p4”’. Então, exemplificando com apenas uma ocorrência:
phantom_dell_p4_com_antivirus
Tendo encontrado a imagem, clicando em ’Ok’ (ou pressionando enter em modo dialog) deverá abrir uma janela com as opções de salvar e restaurar para se escolher uma ação.
Esse recurso estará disponível a partir da versão 0.9.6.0.
Remove imagens.
Quando se cria uma imagem, se já houver uma ocorrência com o mesmo nome é perguntado se deseja sobrescreve-la, mas as vezes é necessário apenas descartar uma imagem que já não mais se utilizará. Mais uma vez, um recurso criado para evitar o acesso físico ao servidor.
Quando se está para salvar um sistema, é solicitado um nome. Esse nome então é atribuido a um diretório e a todos os arquivos que compõe o backup de dado sistema. Caso se tenha digitado o nome errado, não é necessário interromper o backup - basta usar essa opção para renomea-lo posteriormente.
Esse recurso estará disponível a partir da versão 0.9.6.0.
O Phantom possui alguns recursos que vão além do menu.
Terminais, que vão de F1 a F4, podendo ser acessados com a combinação Ctrl+Alt+F1, F2, F3 ou F4. Alguns binários que podem ser encontrados em /sbin, como resizer para sistemas de arquivos. Algumas ferramentas de rede, como route e hping2.
Essas e outras funções deverão estar disponíveis via menu, mas se você é usuário avançado de Linux, fique sempre atento ao diretório /sbin, pois poderá conter alguns ”ovos de páscoa”.
Sempre que fizer testes, gerar ou modicar scripts ou o script phantom for reiniciado, redirecione a saída de erro para um arquivo qualquer, pois se isso não for feito, o sistema entrará em read-only.
Enquanto em estado normal, pode-se criar e modicar arquivos em qualquer nível de diretório. Os principais arquivos do phantom se encontram em: /sbin/{*.so,*.sh} /root/.bash_prole /etc/init.d/boot.
O Phantom é prático por ejetar o CD após a carga do sistema, mas há outras formas de iniciar o Phantom além do CD/DVD. Essa é uma pequena orientação para a construção de um boot do Phantom via dispositivos móveis (HDs externos e pendrives), instalação do Phantom para dual boot com GrUB e boot via rede, apenas ligando o PC (via PXE).
Por fim, para aqueles que não estão habituados à configuração de servidores Linux, será descrito um procedimento para a configuração dos serviços necessários para um servidor de imagens com servidor DHCP, servidor de boot e servidor de arquivos - esse será o ”srvimg”. O sistema operacional Linux pode ser qualquer distribuição, porém esse tutorial é baseado em OpenSuSE 10.2.
Para instalar o Phantom em um pendrive, será necessário um sistema Linux instalado em um PC. Como dependência, deve-ser possuir o pacote syslinux instalado (provavelmente está na mídia da própria distribuição).
Os arquivos necessários são apenas o kernel, initrd e o arquivo do gerenciador de boot, contidos no diretório ”boot” e ”phantom”, dentro do arquivo ISO (ou se já tiver gravado em CD/DVD, na pasta ”boot” e ”phantom” da mídia).
Se a versão do phantom a ser instalada estiver em mídia CD/DVD, basta copiá-lo do diretório ”boot” e ”phantom”, na raiz da mídia, porém se estiver no arquivo.iso, o procedimento acrescerá alguns passos.
Inicialmente, loga-se como root no nível de diretório que está o arquivo .iso. Para esse exemplo, o arquivo se chamará phantom-0.6.4.4.iso.gz.
O arquivo disponível para download está gzipado, portanto o primeiro passo é a extração do arquivo.iso:
gzip -d phantom-0.6.4.4.iso.gz
Terminada a descompressão, segue-se para a montagem do arquivo em um diretório qualquer. No exemplo, ”/mnt”:
mount -o loop phantom-0.6.4.4.iso /mnt
Agora basta copiar os arquivos para ”/root/”:
cp /mnt/cdrom/{isolinu*,boot/vmlin*,boot/initrd*} /root/
Para a instalação no pendrive, deve-se obedecer alguns requisitos, pois haverá a necessidade de instalar um gerenciador de boot no pendrive - no caso, o syslinux.
Deve-se criar como sendo a primeira, uma partição de aproximadamente 20MB, do tipo FAT16 e a partição deve ser ativa. Pode-se ter outras partições no pendrive, mas a partição de boot deve obrigatoriamente ser a primeira. Para iniciar uma formatação no pendrive (supondo que nada há que não possa ser perdido), fazendo primeiro a descoberta do dispositivo, deve-ser monitorar o log do sistema antes de ”espetar” o pendrive no computador:
tail -f /var/log/messages
Ao ”espetar” o pendrive, aparecerá algo como:
Apr 29 15:47:25 debian kernel: scsi6 : SCSI emulation for USB Mass Storage devices
Apr 29 15:47:30 debian kernel: Vendor: Model: USB Flash Memory Rev: 5.00
Apr 29 15:47:30 debian kernel: Type: Direct-Access ANSI SCSI revision: 00
Apr 29 15:47:30 debian kernel: SCSI device sdc: 8058880 512-byte hdwr sectors (4126 MB)
Apr 29 15:47:30 debian kernel: sdc: Write Protect is off
Apr 29 15:47:30 debian kernel: SCSI device sdc: 8058880 512-byte hdwr sectors (4126 MB)
Apr 29 15:47:30 debian kernel: sdc: Write Protect is off
Apr 29 15:47:30 debian kernel: sdc: sdc1
Apr 29 15:47:30 debian kernel: sd 6:0:0:0: Attached scsi removable disk sdc
Apr 29 15:47:30 debian kernel: sd 6:0:0:0: Attached scsi generic sg3 type 0
Note a linha: Apr 29 15:47:30 debian kernel: SCSI device sdc: 8058880 512-byte hdwr sectors (4126 MB)
Está indicando o dispositivo e o tamanho; /dev/sdc com o tamanho de 4GB, portanto, chegou a hora de formatá-lo.
A maneira mais rápida é zerando a MBR do dispositivo:
dd if=/dev/zero of=/dev/sdc count=1 bs=512
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0,00424309 seconds, 121 kB/s
Agora, recriar as partições, exemplificando apenas a primeira:
fdisk /dev/sdc
O dispositivo não contém nem uma tabela de partições DOS válida nem um rótulo de disco Sun, OSF ou SGI
Criando um novo rótulo de disco DOS. As alterações permanecerão
somente em memória até que você decida gravá-las. Após isto, é claro,
o conteúdo anterior não poderá mais ser recuperado.
Aviso: a opção inválida 0x0000 da tabela de partições 4 será corrigida por gravação (w)
Comando (m para ajuda):
Aperte a tecla ”n” para criar uma partição:
Comando - ação
e estendida
p partição primária (1-4)
Número da partição (1-4): 1
Primeiro cilindro (1-1023, default 1):
Using default value 1
Último cilindro ou +tamanho ou +tamanho M ou +tamanho K (1-1023, default 1023): +32M
Criada a partição de 32MB. Agora muda-se o tipo de partição ativando-a posteriormente. As teclas são ”t” para tipo e
”6” como tipo. A tecla ”a” para ativar:
Comando (m para ajuda): t
Selected partition 1
Código hexadecimal (digite L para listar os códigos): 6
O tipo da partição 1 foi alterado para 6 (FAT16)
Comando (m para ajuda): a
Número da partição (1-4): 1
Para confirmar, ”p”:
Comando (m para ajuda): p
Disk /dev/sdc: 4126 MB, 4126146560 bytes
127 heads, 62 sectors/track, 1023 cylinders
Units = cilindros of 7874 * 512 = 4031488 bytes
Dispositivo Boot Start End Blocks Id System
/dev/sdc1 * 1 9 35402 6 FAT16
O asterisco indica que a partição é ativa, bastando então salvar as alterações após criar as demais partições. O comum
é apenas uma partição em FAT32, portanto, a segunda partição seria criada com a sequência de teclas:n, p, 2, enter,
enter, t, 2, c, w.
Deve-se formatá-las, pois nesse primeiro passo apenas a tabela de partições foi criada para poder receber um sistema de
arquivos:
mkfs.msdos (ou mkfs.vfat) -F16 /dev/sdc1
mkfs.msdos (ou mkfs.vfat) -F32 /dev/sdc2
Se o sistema operacional não montá-lo automaticamente, será necessário interagir:
mount /dev/sdc1 /mnt
Os arquivos copiados do phantom-0.6.4.4.iso devem ser agora copiados para /mnt:
cp /root/{isolin*,vmlin*,initrd*} /mnt/
O arquivo isolinux.cfg deve ser renomeado para syslinux.cfg:
cd /mnt
mv isolinux.cfg syslinux.cfg
E por fim, editado. Basta remover ”/boot/” da frente do kernel (vmlinuz) e initrd (initrd.gz).
Para instalar o gerenciador de boot, basta chamar o syslinux com o parâmetro ”-s”, apontando para o dispositivo e partição:
syslinux -s /dev/sdc1
Aguarde alguns segundos antes de remover o pendrive e estará concluido o processo.
O processo para instalar o Phantom em um HD externo é o mesmo.
Existem duas formas de se testar o boot. Uma é a tradicional; reiniciando o computador com o dispositivo conectado e a seqüência de boot devidamente preparada para buscar o sistema no pendrive antes de ir para o HD. Para máquinas que não possuam boot no pendrive, ou mesmo pela comodidade oferecida - usando o qemu.
qemu -boot c /dev/sdc
Há um inconveniente aqui. Mesmo que o sistema de arquivos do pendrive for FAT32, com o qemu o sistema iniciará, porém um boot real comprovará a necessidade do sistema de arquivos FAT16.
Instalar o Phantom em dual boot é um processo curto. Seguindo conforme descrito anteriormente, exceto o arquivo isolinux.cfg, basta copiar o kernel e o initrd para /boot/phantom:
cp /root/vmlinuz /boot/phantom && cp /root/initrd.gz /boot/phantom.gz
Editando o arquivo /boot/grub/menu.lst e insirindo as seguintes linhas (terminando a configuração com a
reinstalação do gerenciador de boot):
title Phantom
kernel /boot/phantom
initrd /boot/phantom.gz
A reinstalação do grub (supondo o primeiro HD SATA):
grub-install /dev/sda
Para instalar um servidor de boot, é preciso uma máquina rodando Linux e preferencialmente rodando o (ou um) servidor DHCP, afim de centralizar as configurações. Também será necessário possuir o syslinux instalado e o servidor TFTP (Trivial File Transfer Protocol).
No caso do OpenSuSE10.2, o diretório /tftpboot é criado automaticamente ao iniciar o servidor pelo Yast. Se instalado posteriormente, o syslinux se encarregará de copiar o arquivo, mas todavia, é necessário fazer uma cópia do pxelinux.0:
find / -name pxelinux.0 -exec cp {} /tftpboot/ \;
mkdir /tftpboot/pxelinux.cfg
cd /tftpboot/pxelinux.cfg
Neste nível de diretório deve-se criar um arquivo chamado default, que servirá para qualquer máquina com suporte
a boot via PXE. O arquivo default deverá conter os seguintes parâmetros:
default graphic
timeout 100
label graphic
kernel /vmlinuz
append initrd=initrd.gz max_loop=16 rw quiet bootmode=graphic acp1=off vga=0x314
Caso se queira disponibilizar várias versões, pode-se criar o diretório /tftpboot/0644 e copiar os arquivos vmlinuz e initrd.gz dessa versão para o diretório, indicando posteriormente no arquivo default:
kernel /0644/vmlinuz
append initrd=/0644/initrd.gz...
Existem indefinidas possibilidades de configuração do servidor DHCP, por isso esse exemplo deve ser observado quanto à compatibilidade com uma rede existente. Algumas empresas possuem um servidor Phantom dedicado, onde máquinas são ligadas a essa rede para restauração em massa. Existe também um modelo usado em callcenter, onde o servidor é ligado à rede do callcenter em dia ou horário que não haja expediente. O servidor DHCP dessa rede é parado, portanto assume-se o servidor Phantom (srvimg) como servidor DHCP da rede.
Tendo instalado o servidor DHCP no srvimg (que é o nome padrão consultado pelo phantom em sua busca
automática), deve-se criar o seguinte arquivo:
/etc/dhcpd.conf
E seu conteúdo:
allow booting;
allow bootp;
option damain-name ”phantom”;
option routers 10.0.0.1;
default-lease-time 14400;
ddns-update-style none;
subnet 10.0.0.0 netmask 255.255.0.0 {
range 10.0.0.2 10.0.0.254;
default-lease-time 14400;
max-lease-time 172800;
next-server 10.0.0.1;
filename ”/pxelinux.0”;
}
Após isso, deve-se reiniciar o servidor dhcp.
Algumas máquinas (normalmente as mais antigas) não possuem boot por PXE, portanto se torna inútil a configuração desse tipo de serviço para um parque de máquinas antigas.
As máquinas que possuem suporte a PXE variam a habilitação desse serviço na BIOS. Algumas máquinas tem a opção ”Boot from network device”, outras, em ”Onboard Devices”, a opção ”PXE/on” junto à habilitação da placa onboard.
Se o PXE estiver ligado mas não for incluso na seqüência de boot, então não haverá o incômodo de esperar o timeout do PXE quando o micro não estiver na rede que possue o boot. Nesse caso, quando houver a necessidade de boot pela rede, basta abrir o menu de boot via tecla de atalho F8 ou F12 e, dependendo da máquina, F2. Procure no manual da placa-mãe em caso de dúvidas.
Se o computador não possuir menu de boot (novamente, nas máquinas mais antigas), então será necessário organizar a ordem de boot na BIOS, priorizando o boot na rede.
Para compartilhar em Windows, basta criar um diretório de acesso público chamado ”imagens”. Esse é o padrão para um boot transparente com o Phantom.
Para compartilhar em Linux, é necessário a instalação do servidor de arquivos SAMBA, utilizado pelo
Phantom para fazer a transferência em rede. O uso de SAMBA permite a utilização multi-plataforma do
Phantom, uma vez que o protocolo utilizado trabalha em Linux e Windows. Também será necessária a
criação de de um diretório chamado ”imagens” (comumente criado em /mnt/imagens), com acesso público e
permissão de leitura e de escrita. Após instalado o servidor SAMBA, os seguintes parâmetros devem ser
adicionados:
(/etc/samba/smb.conf)
Na sessão [global]
netbios name = srvimg
No final do arquivo:
[ imagens ]
comment = diretorio de imagens phantom
writeable = yes
browseable = yes
guest only = yes
public = yes
path = /mnt/imagens
Feito isso, salve o arquivo, crie o diretório, mude as permissões e reinicie o SAMBA:
mkdir /mnt/imagens
chmod 777 /mnt/imagens
/etc/init.d/samba stop;/etc/init.d/samba start
O daemon do samba varia de distribuição para distribuição, podendo se chamr smbd, além de que o serviço de resolução de nomes pode ser um serviço a parte, chamado nmbd, necessitando então de um reinício também. Em SuSE, para o acesso livre à partição de imagens, edite /etc/permissions, inserindo uma linha:
/mnt/imagens root:root 777
Agora, ajustando as permissões:
chkstat –set /etc/permissions
Concluída a configuração. Usando o comando testparm, a verificação do arquivo de configuração do samba será executada, possibilitando encontrar qualquer tipo de erro que possa ter ocorrido.
O ideal é finalizar fazendo uma montagem manual do compartilhamento:
mkdir teste
smbmount //srvimg/imagens teste -o guest
Não havendo erros na montagem, basta agora testar leitura e escrita:
cd teste
touch teste
ls
rm -f teste
ls
cd
smbumount teste
Esses são todos os passos para a configuração de um servidor de imagens com Phantom.
Erros encontrados nesse howto podem ser enviados para o mail djames.suhanko@gmail.com.
Quase todas as funções do Phantom geram saídas de erro. Os logs ficam no caminho tradicional; /var/log, porém seu formato é atípico. Ao invés de um longo arquivo de logs como o messages, cada função gera a sua própria saída de erro. Existem os seguintes formatos de saída:
arquivo.log - É o log da função selecionada no menu, propriamente dito. Nesse arquivo estará armazenado qualquer saída de erro da função chamada. Se o arquivo estiver vazio, não houve erro nessa função, sendo então o erro gerado por uma chamada anterior a essa função, ou a função pai.
arquivo.stat - Essa saída é usada para retornar o status final de uma execução. Se por algum motivo a função for interrompida antes de seu término, o status não será modicado. Esse log é usado pelos próprios scripts do Phantom, mas pode ser útil para depurar o erro.
arquivo.err - Esse arquivo armazena unicamente erros. Às vezes, arquivos de log armazenam mensagens que não são propriamente erros, mas os arquivos .err, se não estiverem vazios, certamente conterão algum tipo de erro. Modicações podem ser feitas em tempo de boot, assim como testadas, mas a chamada de qualquer script deve ser seguida de um redirecionamento de erro para qualquer arquivo, caso contrário o sistema entrará em read-only. Se a modicação implica em um erro de saída simples, use:
./arquivo_modicado.so 2>teste.err
Se a modicação pode exibir múltiplas saídas de erro, use:
./arquivo_modicado.so 2> >>teste.err
Erros encontrados, debugs, alterações em scripts e qualquer outra questão:
djames.suhanko@gmail.com
marcelobarrosalmeida@gmail.com
Em alguns casos, os usuários não compreendem exatamente como trabalha uma função, ou acabam tendo problemas
posteriores. Afim de evitar erros comuns, teremos no manual a solução para problemas relatados pelos
usuários.
Teste a imagem gerada sempre que possível, pois um problema de rede pode gerar erros nos dados que estão sendo
armazenados.
Quando tentar salvar ou montar uma partição e der erro, certifique-se de que a partição está formatada. Esse erro é
comum acontecer quando se acabou de criar uma tabela de partições, mas não aplicou-se um sistema de arquivos às
partições.
Quando o boot for em rede, certifique-se de que a porta ethernet utilizada é a primeira. Em alguns casos em
máquinas que possuem duas placas de rede, o boot em rede pode acontecer por uma interface, enquanto a atribuição do
IP por DHCP acontece pela outra.
Quando o Phantom não pegar IP nem mesmo nas opções de reconfiguração, abra um terminal e certifique-se de que a controladora ethernet é suportada:
ifconfig eth0 up
ifconfig
Se a interface não aparecer, então não há suporte para ela no Phantom. Nesse caso, envie-nos um mail relatando o
problema, juntamente com o modelo da placa (chipset ou modelo da placa-mãe).
Quando não se tem suporte a uma ethernet específica, tenha em mãos uma ethernet USB. Possui um custo maior
do que uma ethernet PCI comum, mas resolve esse tipo de problema.
Para selecionar um item do menu em modo console (nos ítens com caixa de marcação), use a tecla de espaço, caso
contrário o ítem não será selecionado.
SysRq está na mesma tecla do PrintScreen.
A internacionalização do Phantom, manual e site para casteliano é feita por: Walter Omar Autalán <woautalan@ucssi.com.ar> Juan Matías Granda <insulae@gmail.com>.
A internacionalização do Phantom para inglês é feita por: Marcelo Barros Almeida <marcelobarrosalmeida@gmail.com>, Tradução do manual para Inglês por Sander Fortuna <sander_fortuna@hotmail.com> e Time Cancelier.
Atualmente toda a tradução do inglês é mantida por Sander Fortuna.
A hospedagem do phantom em http://phantom.nasheer.net foi gentilmente fornecida por:
Gustavo Vasconcelos <vasconcelos@gmail.com>
A hospedagem do phantom em www.phantomsystem.com.br é gentilmente fornecida por:
Cancelier <www.cancelier.com.br>
Fornecidos gentilmente por:
Sites - Hospedagem e desenvolvimento de sistemas.
www.sites.com.br
VirtualHouse Computer - Soluções em software livre.
http://www.virtualhousecomputer.com/
Descentro - Você sabe o que é descentro?
http://pub.descentro.org/livro/o_que_%C3%A9_o_descentro_como_surgiu
DebianMS do DCT na UFMS.
http://www.debian-ms.org/mediawiki/index.php/P%C3%A1gina_principal
PSL-PR
http://parana.sl.org.br/
Laboratório fornecido gentilmente por: Uranet - Projetos e sistemas <www.uranet.com.br>
Os testes intensos do sistema são feitos por:
Luiz Palma <lpalma@uranet.com.br>
Junior <suporte@uranet.com.br>
Edimar <suporte@uranet.com.br>
Agradecimentos especiais ao novo membro de depuradores, Alex Ferreira <lekkoferreira@yahoo.com.br>, por contribuições especiais em depurações e opniões para a melhoria do sistema.
Você pode colaborar usando o Phantom, divulgando-o, enviando-nos os erros e bugs encontrados, modicando código e dando sugestões.
Contribuições constantes com espelhos são bem-vindas, assim como doação de hardware e financeira para ajuda dos custos diversos.
Para qualquer um desses casos, entre em contato por mail com djames.suhanko@gmail.com ou marcelobarrosalmeida@gmail.com.
Mande sugestões sobre este manual.