Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Conversão Ext3 )

Mini How-to - sistema de Arquivos Ext3

Helder José da Silva (helderjsil@bol.com.br)

Este documento tem a intenção de transmitir informações a respeito de minha própria experiência em compilar um kernel com suporte a Ext3 e converter um filesystem Ext2 para Ext3.

Introdução.

Para quem ainda não ouviu falar, ext3 é um sistema de arquivos que utiliza um processo de gravação de arquivos denominado "journalize". Neste processo, o kernel mantém uma gravação prévia dos arquivos em separado, para depois efetivar a gravação dos arquivos. O sistema foi escrito inicialmente por Dr Stephen C. Tweedie para ao kernel 2.2 . Depois foi portado para o kernel 2.4 por Peter Braam, Andreas Dilger, Andrew Morton.

Vantagens.

Como todos nós já sabemos, se o linux for, digamos mal desligado (falha de energia, travamentos, reset inesperado), o sistema ext2 não poderá montar o sistema de arquivos antes de ter sua integridade checada pelo e2fsck. O sistema ext2 tem, entre outras desvantagens, perda de tempo para levantar novamente o sistema, possibilidade de perda de dados, etc.

Com o sistema ext3 estas desvantagens foram eliminadas. Nos testes que fiz até agora, a recuperação do sistema se dá em segundos, independente do tamanho do hd ( no meu caso 20GB).

Quanto a integridade de dados, elá se dá de forma muito mais segura. Inicialmente você teria como optar pela forma de proteger seus dados, mas o ext3 trabalha com o modo default em data=ordered, que proporciona ao sistema uma segurança muito forte à integridade dos dados.Os dados recentemente escritos em arquivos nunca irão aparecer corrompidos após um acidente.

Apesar de estar escrevendo os dados mais de uma vez, o ext3 é mais rápido que o ext2, porque o sistema otimiza o movimento das cabeças do disco rígido.

E finalmente o que torna o sistema ext3 mais interessante, é a facilidade na conversão. Visto que em outros sistemas é necessário a recriar o filesystem, no ext3 esta transição se dá de forma simples, bastando apenas alguns comandos como veremos adiante.

Requerimentos.

* Fontes do kernel.

Todos os meus testes foram feitos como kernel da série 2.4, (especificamente 2.4.10). Por isto, gostaria de me referir a este kernel aqui, já que não posso transmitir nenhuma informação quanto a série 2.2 . Como já disse anteriormente, estou utilizando atualmente o kernel 2.4.10. Caso seja necessário conseguir os fontes, entre no endereço: www.kernel.org/pub/linux/kernel/v2.4/ e faça o download dos fontes do kernel. Descompacte o arquivo no seu diretório /usr/src. Neste diretório existe um link dinâmico que será destruido logo após você descompactar o arquivo. Renomeie então o diretório

# mv linux linux-2.4.XX 

(onde XX é o complemento da versão do kernel baixado)

Recrie o link

# ln -s linux-2.4.XX linux

* Patch

Bom. Agora que você tem os fontes do kernel no lugar, você terá que baixar o patch. Certifique-se de fazer o download do patch correto. O patch está em http:www.uow.edu.au/~andrewm/linux/ext3/

* Pacote util-linux (versão >= 2.11)

Faça o download da ultima versão que está disponível em http:www.kernel.org/pub/linux/utils/

Descompate e compile os fontes. Siga as instruções do arquivo INSTALL que vem com o pacote. Este pacote contém os mais importantes comandos suportados pelo filesystem ext3 (mount e umount).

* Pacote e2fsprogs (versão >= 1.22)

Faça o download da última versão que está disponível em http:efsprogs.sourceforge.net2/

Descompacte e compile os fontes. Siga as instruções do arquivo INSTALL que vem com o pacote. Esta nova versão possui o comando mke2fs que suporta a criação do filesystem ext3 na partição nativa do linux.

Compilação do Kernel (com patch ext3)

# cp ext3-2.4-0.s.y.patch.gz
# cd /usr/src
# gunzip ext3-2.4-0.s.y.patch.gz
# patch -p0 < ext3-2.4-0.s.y.patch
# cd linux
# make menuconfig

Selecione a primeira do menu "Code Maturity level Option". Entre nesta opção e selecione "Prompt for Development and/or incomplete code/drivers". No menu "filesystems", selecione a opção ext3. Selecione também a opção "JBD debugging support". Esta opção produzirá um diagnóstico se alguma coisa der errado. Você pode optar por compilar o ext3 no kernel ou como módulo. Compilar junto com o kernel facilitará as coisas se alguma coisa sair errado. (gostaria de enfatizar que já estou utilizando o filesysten ext3 e até agora não detectei nenhum erro nos testes que já fiz.). Se você estiver fazendo uma conversão, dê preferência para compilar o suporte com o kernel, e não como módulo.

Antes de compilar o kernel, edite o arquivo /etc/lilo.conf (caso você esteja utilizando o LILO) e aponte o novo kernel que será compilado. Caso esteja utilizando o GRUB edite /boot/grub/menu.lst. Veja o exemplo abaixo para o lilo:

image=/boot/vmlinuz-2.4.xx
        label=new
        root=/dev/hdax
        read-only

Neste exemplo, indicamos que imagem do novo kernel será carregada quando a opção new for digitada. Criar esta nova opção é muito interessante, pois se alguma coisa der errado, pois você terá a opção de carregar o kernel antigo.

Bom, depois disto, vá para o diretório /usr/src/linux. Digite então os seguintes comandos:

# make dep
# make clean
# make bzImage
# make install
# make modules
# make modules_install

Convertendo o filesystem ext2.

Um filesystem ext2 pode ser convertido para ext3 simplesmente criando-se o arquivo jornal. Para isto faça

tune2fs -j /dev/hdxx

Este comando liga o arquivo criado ao filesystem. A partir daí seu filesystem estará convertido. Esta operação tem que ser feita com o filesystem desmontado.

Criando um novo filesystem ext3.

Para criar um novo filesystem, digite o seguinte.

mke2fs -j /dev/hdxx

Substitua hdxx pelo dispositivo onde ele deve ser criado. Note que este comando apaga todos os dados da partição indicada, portanto tenha cuidado. Se for o caso de uma conversão, o comando está descrito no item anterior. Esta operação tem que ser feita com o filesystem desmontado.

Intervalo de checagem.

O programa e2fsck checa um filesystem na vigésima montagem, ou a cada 180 dias, mesmo que ele esteja marcado como limpo. Devido a forte segurança do filesystem ext3 pode ser uma boa idéia desabilitar esta checagem. Se você quiser esta opção basta digitar:

tune2fs -i 0 -c 0 /dev/hdxx

Este comando desabilitará a checagem. Esta operação tem que ser feita com o filesystem desmontado.

Mudando o arquivo fstab.

Não esqueça de mudar o filesystem no arquivo fstab. Edite o arquivo em /etc/fstab e mude as linhas como no exemplo abaixo:

/dev/hdxx	/	ext2   defaults     1  1

mude para

/dev/hdxx	/	ext3   defaults     1  1

Finalizando

Este documento possui citações diretas de alguns documentos que podem ser localizados em:

Mini how-to do próprio site onde você encontra os patchs: http://www.uow.edu.au/~andrewm/linux/ext3/ext3-usage.html

Boletim do vialinuxis: http://www.pcs.usp.br/~jkinoshi/bs/

Uma das grandes dificuldades que enfrentei, foi fazer um disquete de boot para transferir este filesystem. Aconselho a todos a tentarem fazer o seu próprio disquete, pois com certeza seus conhecimentos em linux aumentarão muito nesta tentativa. Não desanimem. Se não me engano, eu cheguei a resetar minha máquina umas 20 vezes para acertar o disquete. Para este caso de troca de filesystem, você terá que fazer seu próprio disquete, pois o kernel carregado a partir dele, deverá ter suporte ao filesystem ext3. Quem estiver interessado nesta aventura acesse o site da ldp: ldp-br.linuxdoc.org/documentos/comofazer/html/Bootdisk-HOWTO/Bootdisk-HOWTO.pt_BR.html

Lá você encontra um how-to sobre a criação de disquetes de boot.

Boa sorte a todos. Qualquer dúvida, correção ou observação a fazer para este mini-howto, por favor me enviem um email.

Helder José da Silva - helderjsil@bol.com.br


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.