Página Inicial



twitter

Facebook

  Dicas
|

TUTORIAL - REALIZANDO REPAROS EM PARTIÇÕES WINDOWS COM LINUX

Jaguar - 03/04/2006

Para os recém-chegados ao mundo do sistema de código aberto, o Linux é sistema operacional como o Windows, que navega na internet, possui processadores de texto, planilha de cálculo, toca MP3, etc.

Mas, para os usuários com mais tempo de uso, ele é muito mais do que um simples sistema operacional, pois ele permite ajustar o cerne (kernel) para aprimorar o desempenho do hardware, aproveitando assim o máximo do equipamento.

Entre outros atributos, a flexibilidade de uso do Linux é outro fator que impera na escolha de uso do sistema operacional, e também a possibilidade de ajustar o sistema na unha, configurando ele de acordo com a necessidade de cada usuário.

É claro, que não existe uma única solução para tudo, não é porque o Linux é livre para ser distribuído e utilizado, ele será viável para todos os usuários.

Muitos ainda preferem o Windows pela facilidade de uso, eles não querem saber se é grátis ou não, se o sistema trava, ele simplesmente reinicia e continua a trabalhar com ele.

Eu uso o Linux por opção, não porque o Windows me incomodou todos esses anos com falhas, travamentos, nada disso. Mas, sim, porque eu considero ele um autêntico canivete suíço, tem aplicativos e utilitários de excelente qualidade, que estão em desenvolvimento constante. E posso ter tudo isso sem ter de crackear programas, usar números seriais, e ter o risco de prejudicar meu sistema com vírus, trojans, e outros infortúnios.

Além disso, o Linux faz com que os conceitos sobre informática sejam revistos, e que prova que a tendência tecnológica não será aprisionada em uma única solução.

Agora vamos ao que realmente interessa, nesse tópico eu vou mostrar algumas ferramentas úteis para realizar manutenção partições Windows e também, os utilitários equivalentes, e uma tabela comparativa de suporte a sistema de arquivos.

1 ? Ferramentas e Utilitários

Vamos conhecer as ferramentas e utilitários do Linux que são largamente utilizadas para fazer manutenção e backup:

1.1 ? Particionadores:

  • cfdisk (interface em modo texto) - > somente monta a tabela de partições
  • diskdruid (interface em modo gráfico)
  • parted (interface em modo texto / linha de comando)
  • QTParted (interface em modo gráfico)
  • GParted (interface em modo gráfico)

1.2 ? Reparo de arquivos de sistema e diagnóstico:

  • debugreiserfs -> reporta erros em sistema de arquivos no formato ReiserFS
  • fsck -> reporta, e corrige erros em partições, possui suporte a vários sistema de arquivos, inclusive o FAT32, utilizado pelo Windows
  • badblocks -> verifica o sistema de arquivos ou dispositivo por erros e reporta blocos problemáticos
  • dd_rescue -> o modo de operação dele é semelhante ao dd, mas com a vantagem de recuperar dados
  • mkfs -> é o formatador do Linux, a sua função é criar sistema de arquivos no dispositivo desejado
  • mkbootdisk -> esse utilitário cria um disco de boot compatível com o MS-DOS
  • ntfsprogs -> são utilitários para realizar algumas tarefas em sistema de arquivos NTFS
  • gpart -> este utilitário especial tenta recuperar partições perdidas, deletadas acidentalmente, não importando o tipo de sistema de arquivos

1.3 ? Utilitários de backup e compressão:

  • gzip -> é muito utilizado para realizar backup, é estável, rápido e prático, ele permite além de copiar pastas recursivamente, também, comprimir os dados para que fiquem menores
  • zip / unzip -> também é muito útil para realizar backups, a sua taxa de compressão é um pouco superior ao do gzip, mas pode levar mais tempo para comprimir os dados
  • rar / unrar -> esse utilitário já é conhecido pelo seu poder de compressão, mas ele exige um equipamento razoável, principalmente se forem muito os dados a serem comprimidos
  • 7-zip -> este novo compressor de dados opensource é o grande concorrente do formato rar, alcança taxas de compressão muito altas
  • unace -> é utilizado para extrair arquivos em formato .ace
  • arj / unarj -> comprime e extrai dados em formato .arj, é muito prático e leve, eu usei muito para ?fatiar? arquivos que não cabiam em um disquete
  • kdar -> permite realizar backups de arquivos, diferenciais ou não, é possível também ?fatiar? os arquivos de backup para que sejam gravados CDs posteriormente
  • partimage -> este utilitário permite clonar partições inteiras, com a opção de comprimi-las e salva-las em arquivos de imagem
  • g4l -> tem a mesma finalidade do partimage
  • dd -> este utilitário tem a função de copiar dados bloco a bloco, é possível criar clones de partições inteiras, e também, imagens ISO de CDs, DVDs

2 - Tabela comparativa de sistema de arquivos:

Vamos ver agora, quais são os sistema de arquivos suportados pelo Windows e Linux, para se ter uma boa idéia da diferença entre eles, usaremos uma tabela comparativa:

Sistema de arquivos Windows Linux
FAT32 Sim Sim
FAT16 Sim Sim
FAT12 Sim Sim
NTFS Sim Somente Leitura 
EXT2FS Não Sim
EXT3FS Não Sim
ReiserFS Não Sim
DOS Sim Sim*

No caso do NTFS, o Linux pode ter acesso completo, utilizando o driver Captive, que utiliza algumas DLLs do Windows XP para habilitar suporte total a esse sistema de arquivos.

Agora, no caso do MS-DOS, o Linux oferece algumas alternativas e utilitários que facilitam a integração desse sistema operacional, como o FreeDOS, DOSEmu, DOSBox, mtools.

Para ver mais informações sobre esses utilitários e ferramentas no Linux, basta digitar o comando:

man ou info

Vamos dar uma rápida olhada na lista de programas equivalentes entre o Windows e Linux:

Ferramenta Windows Equivalente Linux
ScanDisk / Chkdsk fsck / debugreiserfs / badblocks
FDISK cfdisk / QTParted / GParted / DiskDruid
Norton Ghost / Partition Magic g4l / partimage / R.I.P / dd / dd_rescue / g4u
WinRAR / Winzip / 7-Zip rar - unrar / zip - unzip / p7-zip
Formatador (Format) mkfs / dd / fdformat
Desfragmentador (Defrag) *** (Não é necessário no Linux)
MS-DOS Editor (Edit) Shell / Bash (cat, Vim, tail)

3 - Formatando uma unidade de disco rígido e disco flexível:

Como vimos anteriormente, no MS-DOS temos o FORMAT.COM, e no Linux, temos o cfdisk e mkfs. Vamos exemplificar uma formatação:

Eu tenho uma unidade de disco rígido de 40GB, e quero que a tabela de partição fique assim:

[/dev/hdb - 40GB]

/dev/hdb1 - 20GB (FAT32)
/dev/hdb2 - 20GB (FAT32)

Diferente do sistema da Microsoft, as unidades lógicas não são exibidas através de letras, mas sim, como dispositivos.

Então, neste caso, vamos somente criar a tabela de partição usando o cfdisk. O seu uso é muito intuitivo, apesar de ser em modo texto.

- Digite em modo root, o comando cfdisk
- Crie uma partição primária de 20GB e altere o tipo de partição para mude o tipo para 0C Win95 FAT32 (LBA)
- Agora, crie uma segunda partição primária com 20GB, e mude o tipo para 0C Win95 FAT32 (LBA)

Agora já temos a estrutura da tabela de partição pronta, podemos salvar as alterações, escolhendo a opção Gravar. Feito isso, escolhemos a opção Sair.

Só falta criar o sistema de arquivos, como as partições ainda não podem ser montadas, pelo simples fato de não terem nenhum sistema de arquivos definido, vamos fazer isso agora.

Agora, vamos formatar as partições /dev/hdb1 e /dev/hdb2 como FAT32, usando o comando:

# mkfs.vfat -c -f2 -F 32 /dev/hdb1
# mkfs.vfat -c -f2 -F 32 /dev/hdb2

Após o término desta operação, podemos montar as duas partições normalmente, vamos criar duas pastas na raiz do sistema:

# mkdir /hdb1_vfat
# mkdir /hdb2_vfat

Agora é possível montar as duas partições usando o comando mount:

# mount -t vfat -o iocharset=iso8859-1 -o codepage=850 -o gid=1000 -o uid=1000 /dev/hdb1 /hdb1_vfat
# mount -t vfat -o iocharset=iso8859-1 -o codepage=850 -o gid=1000 -o uid=1000 /dev/hdb2 /hdb2_vfat

Estando as duas partições devidamente montada, ja é possível ler e gravar arquivos em ambas as partições.

No caso da partição /dev/hdb2, as opções -o gid=1000 -o uid=1000 força uma montagem, permitindo que o usuário comum possa ler e gravar dados nela, sem precisar se logar como root ou usar o usar o sudo.

É possível ainda inserir estes mesmos parâmetros no /etc/fstab, para que em toda inicialização, os dispositivos estejam disponíveis para o usuário comum com acesso irrestrito.

Embora não seja recomendado o acesso irrestrito a nenhuma partição, esta opção pode ser útil, principalmente se você não quiser ficar digitando a senha doroot o tempo todo pra acessar uma partição na qual você irá trabalhar.

Vamos ver agora, uma formatação em um disco flexível. Praticamente, segue o mesmo esquema de formatação e criação de sistema de arquivos, mas existe formas mais rápidas de se criar um sistema de arquivos num disquete do que em um disco rígido.

Usando o fdformat, podemos formatar um disquete em baixo nível, isto quer dizer que ele não terá nenhum sistema de arquivos depois de terminado a formatação. A sintaxe é:

# fdformat /dev/fd0h1440
# umount /dev/fd0 (se o disquete estiver montado, o mkfs não vai poder criar nenhum sistema de arquivos, para isso, você terá que desmontá-lo primeiro)
# mkfs.vfat -c -F 12 /dev/fd0
# mount /dev/fd0 /mnt/floppy (pode ocorrer de sua distribuição ter o ponto de montagem diferente do que está proposto aqui, o SuSE por exemplo, monta em /media/floppy, neste caso, é só substituir pelo correto).

Pode ser usado também, o dd para formatar um disquete, o procedimento é o mesmo do primeiro passo, é só substituir a primeira de linha de comandos por essa:

# dd if=/dev/zero of=/dev/fd0 bs=1024 count=1440

O resto do comando é o mesmo.

Tem uma forma mais rápida e não é nem preciso desmontar a unidade de disquete, é usando o utilitário FORMAT.COM do DOSEmu. O procedimento é o mesmo do MS-DOS, format a:, format a: /q, etc...

4 - Verificando erros em unidades de disco rígido e flexível:

Agora, vamos ver como podemos diagnosticar erros em sistemas de arquivos. Como já vimos no item 1.2, temos o fsck que tem suporte a vários sistema de arquivos diferentes.

Retomando o exemplo do item 3, temos um HD de 40GB, dividido em duas partições FAT32. Vamos supor que você trouxe um HD de um cliente seu com setores defeituosos, mas precisa clonar a partição inteira. Então, você conecta este mesmo HD num outro canal IDE, no secundário mestre (Secondary Master) por exemplo.

Então a tabela de partições estaria assim:

[/dev/hda - 40GB] - Canal IDE 1 - Primary Master

/dev/hda1 - ReiserFS montado como / (39GB)

/dev/hda2 - Swap (1GB)

[/dev/hdb - 40GB] - Canal IDE 1 - Primary Slave

/dev/hdb1 - FAT32 montado em /hdb1_vfat (20GB)
/dev/hdb2 - FAT32 montado em /hdb2_vfat (20GB)

[/dev/hdc - 10GB] - Canal IDE2 - Secondary Master

/dev/hdc1 - FAT32 ainda não montado (10GB)

[/dev/hdd - CD-ROM] - Canal IDE2 - Secondary Slave

/dev/hdd - Unidade de CD-ROM montado em /mnt/cdrom

É possível ver todas as partições com o comando fdisk -l, mesmo que não estejam montadas. No entanto esse comando deve ser executado em modo root.

Vamos ao que interessa, suponhamos que o HD do seu colega esteja com bad blocks e você precise clonar esta partição e copiá-la para um arquivo de imagem, exemplo, hd_cliente.img.

Então, nesse caso, não é uma boa idéia manipular dados neste disco rígido, principalmente se ele não for seu.

A idéia é utilizar o dd_rescue para copiar os dados bloco a bloco, semelhante ao dd, este utilitário pode reparar blocos ilegíveis.

Vamos aos comandos:

# dd_rescue -A /dev/hdc1 /hdb1_vfat/hd_cliente.img

A opção -A irá preencher todos os blocos ilegíveis com blocos vazios, assim, mantendo o tamanho original dos dados / arquivos. Já sem essa opção, os dados serão copiados sem correção de blocos, ou seja, serão lidos e salvos do jeito que foram encontrados.

Se quiser ver a operação detalhada, adicione a opção -v na linha de comandos.

Após o término dessa operação, ainda é possível tentar isolar esses blocos defeituosos, mas dependendo do caso, é melhor orientar o seu cliente para realizar uma possível troca de componente, para evitar problemas futuros.

Mas se optar por isolar os blocos com o devido consentimento do seu cliente, é bom antes de tudo, avisá-lo dos riscos de se usar um disco rígido com setores defeituosos.

Use o seguinte comando, como root:

# fsck.vfat -artvw /dev/hdc1

A opção -t em especial, irá marcar os bad blocks para que não sejam utilizados novamente pelo sistema operacional.

Agora, use o comando dd para restaurar a imagem do HD que criamos com o dd_rescue:

# dd if=/hdb1_vfat/hd_cliente.img of=/dev/hdc1

Como o disco rígido do seu cliente apresentou bad blocks, é muito provável que você encontre inconsistências na estrutura do sistema de arquivos, mesmo que você tenha isolado o problema. Execute novamente o fsck.

# fsck.vfat -arvwV /dev/hdc1

Isso irá executar uma nova verificação, e reparar possíveis inconsistências no sistema de arquivos.

Agora, se o seu cliente decidir comprar outro disco rígido, por ventura ele escolhe um de capacidade maior, um de 80GB por exemplo. Com toda a certeza vai sobrar 70GB de espaço em disco, usando o exemplo do HD de 10GB, ficará sobrando 70GB de espaço não alocado.

O que fazer neste caso em particular? Use o GParted ou o QTParted, e redimensione a partição FAT32 para o máximo permitido.

Antes disso, é altamente recomendável entrar no Windows, se o sistema operacional permitir, caso não tenha ocorrido erros mais graves a ponto de impedir a inicialização, e desfragmentar a unidade completamente.

Depois disso, use os particionadores citados acima para redimensionar o espaço para o máximo permitido.

Em disco flexíveis também é possível realizar a verficação de erros, é o mesmo esquema, apenas muda-se o dispositivo:

# fsck.vfat -arvwt /dev/fd0

Para recuperar blocos defeituosos, usamos o dd_rescue:

# dd_rescue -A -v /devfd0 /home/usuário/floppy_image.img

E para restaurar a imagem em um outro disquete (é óbvio que você vai trocar o disquete defeituoso por um outro novo).

# dd if=/home/usuário/floppy_image.img of=/dev/fd0

Mas espere... ainda não acabou, você pode ter isolado os bad blocks, mas e se o sistema estiver infectado com vírus, jokewares, malwares?

A seguir, vamos ver como remover vírus de partições Windows, usando anti-vírus em ambiente Linux.

5 - Removendo vírus de partições Linux com anti-vírus em plataforma Linux:

Um dos grandes atrativos sem dúvidas é fato de o sistema operacional Linux começar a ganhar um crescente suporte a soluções anti-vírus, tanto pra servidores de arquivos Samba, e-mails, redes corporativas, e não poderiámos deixar esse item importantíssimo passar em branco.

O Linux em particular, não corre muitos riscos por causa de vírus, mas isso poderá ser um assunto a ser revisto e discutido no futuro. O que mais preocupa os administradores de sistema Linux são justamente os bugs e vulnerabilidades que podem ser exploradas em serviços, aplicativos, e no próprio Kernel.

Mas os sistemas Windows ainda estão vulneráveis, mesmo utilizando um sistema Linux como servidor, se nenhuma solução anti-vírus for instalada nele, inclusive, as pragas iriam se propagar na quase na mesma proporção, se tivesse um servidor Windows rodando, na mesma situação. Utilizando um servidor Linux apenas reduziria problemas com vírus no servidor, mas nas máquinas clientes, não resolveria em nada.

Mas voltando ao foco do item, instalando uma solução anti-vírus, reduziria em muito o risco de infecções, tanto em servidores quanto em máquinas Desktop, pois mesmo que o seu sistema seja Linux, o arquivo que você passar para algum colega, ou cliente poderia estar infectado, e com certeza irá funcionar no sistema operacional Windows deles.

Eu escolhi duas soluções, uma é o BitDefender for Linux 7 Free Edition, que não possui um verificador residente, mas ele detecta mais infecções do que o AVG.

E a outra, que como já citei é o AVG for Linux Worstation, que possui um verificador residente que detecta o virus ao acessar o arquivo, seja através do shell ou interface gráfica, o arquivo infectado é trancado imediatamente, e no shell, além disso é exibido um alerta de infecção.

A escolha do anti-vírus é muito pessoal, varia de pessoa pra pessoa e não vou ficar especulando qual é a melhor solução, isso é perda de tempo, pois ela não existe.

Além do mais, a eficácia do anti-vírus vai depender de como e quanto o usuário ou técnico estiver familiarizado com a solução. Quanto mais ele se informar sobre os comandos do anti-vírus, melhor ele vai configurar a solução para aumentar a proteção.

Agora, vamos aos parâmetros que vou utilizar no AVG, já que no modo de interface gráfica ele só detecta, mas não me permite remover as infecções, vou usar o modo console, que consome poucos recursos e é mais rápido e estável.

Mas antes, vou ter de montar o dispositivo, e definir um ponto de montagem, mas de modo que ele fique acessível para o meu usuário, usando o mesmo esquema do item 3, vou retomar o exemplo do item 4, onde eu terei de verificar os arquivos por possíveis infecções.

Vamos criar um diretório usando o comando mkdir, onde será montado o dispositivo:

# mkdir /hd_cliente

Agora, vamos montar o dispositivo no ponto de montagem recém-definido:

# mount -t vfat -o iocharset=iso8859-1 -o codepage=850 -o gid=1000 -o uid=1000 /dev/hdc1 /hd_cliente

Agora, sabendo que o dispositivo já pode ser acessado, agora vamos aos comandos do AVG:

avgscan -scan -heur -ext=*.* -arc -clean /hd_cliente/

Configurei o verificador usando detecção heurística, arquivos compactados, testando todas as extensões, e remoção automática de vírus sem pausa, no diretório /hd_cliente.

Neste momento eu iniciei uma verficação no HD do meu cliente, ao término da verficação será reportado quantos vírus foram encontrados e removidos.

6 - Utilitários de backup e restauração de partições:

Após ter feito o isolamento de blocos defeituosos, verificação de erros, backup e restauração de uma partição inteira, chegou a hora de conhecer os utilitários de backup e restauração profissionais, como o sistema Microsoft tem o Partition Magic, Acronis Partition Manager, Norton Ghost, que oferecem muito mais funcionalidade do que os particionadores simples.

O grande lance desses utilitários, é a possibilidade de criar, clonar, e restaurar partições localmente e remotamente, via rede, através de um servidor FTP.
E outro grande trunfo é a possibilidade de compactar os arquivos de imagens, usando compressão gzip e bzip2, que reduzem de 50 até 75% o tamanho original.

Os que eu mais uso é o g4l (Ghost for Linux), mas existem outras soluções como o partimage, o g4l, e o R.I.P.

Existe o gpart que tenta recuperar as partições apagadas acidentalmente, também é uma mão na roda, pois eu consegui recuperar uma partição inteirinha cheias de mp3 e vídeos.

Você pode baixar essas ferramentas em vários formatos, como imagens de disquete, ISO de CDs, ou código fonte.

7 - LiveCD:

Assim como o Kurumin, Kokar, e Kalango, que são LiveCDs, isto é, rodam diretamente do CD, bastando apenas dar o boot pelo CD-ROM. Isso é possível porque todo o seu conteúdo é carregado na memória RAM. Se você gostou do sistema, é possível ainda instalar ele definitivamente no seu disco rígido, assim podendo também, trabalhar em dual boot junto com o Windows.

Mas existem outras distribuições que lançaram o seu LiveCD, mas essas não oferecem opção para instalar o sistema, apenas rodam do CD. Ex: SuSE Linux 9.2 LiveCD, Fedora Core 4 LiveCD, Conectiva 10 LiveCD,

Através deles é possível realizar as mais diversas tarefas de manutenção, inclusive as descritas neste tutorial. Cada uma delas trazem consigo várias ferramentas instaladas, dependendo de cada distribuição, você terá uma maneira diferente de se logar como root.

É aconselhável experimentar vários LiveCDs para ter um melhor suporte, o que você não encontrar em uma distribuição, vai encontrar em outra.

Onde encontrar as ferramentas deste tutorial:

Se você tiver algum tipo de dúvida com relação a esta dica ou qualquer outra dúvida de informática, dê um pulo no Fórum BoaDica (http://www.forumboadica.com.br), onde tem uma galera muito legal que troca idéias, ajuda, participa em diversos assuntos técnicos, e com certeza poderão ajudar!

 
Indique esta dica Indique esta dica para um amigo

VOLTAR