O kernel 2.6.28 já chegou no repositório oficial do Arch e, junto com ele, o ext4. Novas instalações já podem ser feitas usando este filesystem e quem ainda usa ext3 pode migrar para o ext4 facilmente. Eu já migrei e recomendo. :) Tudo o que você precisa é do kernel 2.6.28 e rodar uns 3 comandos para sua partição, que deve estar desmontada. Vamos lá:
NOTA: Seguindo este post a migração é feita sem formatação e seus dados NÃO serão perdidos. Entretanto todos os seus arquivos antigos continuarão sendo mapeados do jeito antigo (ext3), apenas os novos usarão o novo método. Por causa disso seu ganho de performance, por enquanto, não será tão grande.
Mesmo com este pequeno "problema" vale a pena migrar para ext4. A próxima versão do kernel virá com o desfragmentador online do ext4 e ele será o responsável por migrar seus arquivos antigos para o novo método.
Para migrar seu instalação para ext4 faça, para cada partição que usa o ext3:
# umount /dev/particao
# tune2fs -O extents,uninit_bg,dir_index /dev/particao
# fsck -pf /dev/particao
Exemplo:
# umount /dev/sda2
# tune2fs -O extents,uninit_bg,dir_index /dev/sda2
# fsck -pf /dev/sda2
UPDATE: Algumas pessoas perguntaram nos comentários como migrar a partição raiz, já que esta não pode ser desmontada enquanto se usa o sistema. Realmente isso gera uma certa dúvida, mas existe algumas maneiras de se fazer isso. A mais prática, talvez, seja iniciar o sistema em modo single e rodar os comandos a partir de lá. Para isso faça:
O sistema vai começar a iniciar e em um determinado momento ele pedirá a senha de root. Algo como:
Give the root password for maintenance.
Digite sua senha. Agora você poderá desmontar sua partição raíz e executar a migração para ext4 normalmente (com os comandos que coloquei no inicio do post).
Depois de tudo edite o arquivo /etc/fstab e troque os campos "ext3" por "ext4" (sem as aspas, claro) nas partições que você migrou.
No Arch, ainda é preciso um passo adicional (não sei se precisa em outras distros):
# mkinitcpio -g /boot/kernel26.img
O comando acima irá gerar a nova imagem do kernel com os devidos módulos. Agora é só reiniciar o seu sistema e curtir o novo filesystem. :-)
Depois de reiniciado você pode conferir se suas partições estão usando ext4 digitando:
# mount
A saída será parecida com essa:
/dev/sda2 on / type ext4 (rw)
/dev/sda4 on /media/backup type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
É isso. Para maiores informações visite:
http://andrem.wordpress.com/2008/12/26/ext4/
UPDATE2: No meio bit há um resumo de um artigo comparando o ext4 com outros filesystems (sim, às vezes aparecem bons artigos no meio bit. Nem tudo lá é {win,apple,free}tard).
Opa! Muito bom o artigo Hugo!
Agora deixa eu te perguntar uma coisinha….
Sabe se tem como migrar de uma partição Reiserfs ou XFS para o Ext4???
Vlw!
Você já fez com êxito, fiz os passos no Ubuntu e crash geral… =/ Só não é necessário esse último passo que você disse.
Abraços!! ;)
Olá Hugo.
Segui os passos e migrei duas partições de ext3 para ext4. Só me resta uma dúvida:
Como migrar a partição onde está montada a /, sendo que essa não pode ser desmontada enquanto o sistema estiver sendo usado?
Sensacional! :D assim q puder faco as atualizacoes na maquina, tah faltando uns tutorias de python!!!! :D
E como a gente faz para migrar a partição root para o Ext4? Imagino que seja o caso de usar um live CD atualizado. Alguma sugestão?
E os dados? perde né? :P
Rafael, você não perde os dados da partição ao migrar de ext3 para ext4. Na verdade, você nem reformata a partição, apenas ativa alguns recursos que fazem a diferença entre uma versão e outra.
Olá Hugo. Muito boa a sua dica, ela funcionou perfeitamente e o meu Arch está melhor ainda com esse novo sistema de arquivos!!!
Porém, tenho uma dúvida. Eu tive que reinstalar o WinVista (por causa do meu vício em jogos!!! hehehe) e perdí o Grub. Quando tentei reinstála-lo eu não obtive êxito, visto que minhas partição raiz e /Home possuem o sistema de arquivos Ext4 e não mais Ext3 ( o que impossibilita a instalação do Grub via LiveCD como eu sempre fiz, devido ao fato do LiveCD não reconhecer o ext4 como sistema de arquivos) No mais, alguma dica de como proceder para instalar novamente o Grub para que o meu Arch(ext4) possa ser iniciado?
Muito obrigado pela atenção!!!
Eu quero! Só preciso arrumar um jeito de migrar a minha partição root de ReiserFS para EXT4. A partição /home é fácil.
Eu vou arriscar. Pelos testes, parece bem melhor que o ReiserFS, que usava até então. F*** vai ser migrar a partição root.
Hugo, ouvi dizer que o grub não boota partições ext4, é verdade?
Se sim, o grub2 pode ser usado sem problemas?
Leonardo,
é só verificar a diferença entre as versões 0.97-14 e 0.97-15:
http://repos.archlinux.org/viewvc.cgi/grub/repos/core-i686/PKGBUILD?r1=18955&r2=22874
Eles adicionaram o patch para o grub legacy suportar ext4.
Boas,
Alguem me pode dizer como é que eu desmonto a partição / ??
cumps,
rkixa
@Phillipe,
Não sei te dizer ao certo, mas acho que só reformatando a partição.
@Wendel, @Leonardo Fontenelle, @rkixa
Já atualizei o post mostrando como migrar a partição raiz.
@RodrigoFSS
Já te responderam na la lista né?
@Rafael Gomes
Nem perde os dados. Não se preocupe.
@Leonardo Schaffer
O grub foi patcheado para suportar ext4. Se quiser, você também pode usar o grub2.
Alessandro e Hugo, obrigado!
Já to com ext4 aqui, só espero estar com tudo certo.
Eu bootei em single, desmontei a / e rodei os dois primeiros comandos.
Mas depois não montava de volta (pois não atualizei o fstab antes de desmontar) e então não pude rodar o mkinitcpio.
Baixei o RIPLinux que foi o único LiveCD que achei com o 2.6.28 e rodei o mkinitcpio por ele. Mas ele acusava falta do /lib/modules/2.6.28
(Hugo, não deveria ser mkinitcpio -k 2.6.28-ARCH -g /boot/kernel26 ?)
Acabei resolvendo com chroot e pacman -S kernel26
Tentei fazer a conversão da pasta root, mas na hora que vai executar o comando “mkinitcpio -g /boot/kernel26.img” dá um monte de erro falando que está faltando arquivo e o sistema está em somente leitura.
Tentei reiniciar e deu kernel panic. Reiniciei de novo, escolhi o kernel fallback e fiz o mkinitcpio e funcionou.
Atualizando para o kernel 2.6.28.1 o grub não consegue mais bootar nem pelo normal nem pelo fallback. Dá o seguinte erro:
invalid or unsupported executable format
Engraçado,
Dá primeira vez que eu instalei o kernel 2.6.28.1 também tive este problema. O jeito foi reinstalar o kernel e rodar o grub-install /dev/XXX novamente.
Logo em seguida fiz o teste em outra máquina e funcionou de primeira. Não sei o que aconteceu.
Alessandro, eu atualizei aqui e tá fazendo boot normalmente.
Também não estou mais conseguindo bootar, mesmo erro que o alessandro relatou. Como reinstalo o kernel sem conseguir dar boot? Live-cd?
Consegui resolver. Baixei o live-cd chaox-ng (para o meu note hp precisei adicionar apci=off para bootar) montei a partição raiz em /mnt e reinstalei o grub (grub-install –root-directory=/mnt /dev/sda). Acho que o problema foi a não atualização do grub. Fica a dica.
Tentei fazer com o systemrecuecd, porém não deu certo. Parece que a versão do grub não está patcheada para suportar ext4. Vou tentar com o chaox-ng e posto o resultado aqui.
Depois de uma longa briga deu certo aqui.
Primeiramente eu não reparei que tinha um espaço entre o /mnt e o /dev/sda. Fiquei quebrando a cabeça um tempão com isso, já que não existe devices na partição montada.
Já rodando o comando certo apareceu o seguinte erro:
/dev/sda does not have any corresponding BIOS drive
Procurando na internet, achei um lugar que fala para dar um recheck. Portanto fiz o comando:
grub-install –root-directory=/mnt –recheck /dev/sda
e deu certo.
Valeu a todos pela ajuda.
É. Eu tive que rodar ogrub-install com o –recheck também. Bem lembrado. Valeu.
Valeu Hugo!
Vou ver o que faço depois!
Acho que vou reinstalar meu sistema de novo mesmo!
Para quem quiser fazer com o SystemRescueCD (v. 1.0.4) pode tentar o procedimento descrito na wiki:
http://wiki.archlinux.org/index.php/Ext4#GRUB_Error_13
Ele se utiliza do chroot para executar o grub-install do archlinux e tem uns passos a mais, onde ele monta a pasta /dev dentro do chroot.
Opa, a versão correta é a 1.1.4 ou maior.
Aqui estou tendo problemas para da r o boot no meu debian kernel-2.6.28, tenho que montar o hd6 onde está montado o debian por uma outra partição (mandriva) e mostra um erro no terminal veja:
[root@localhost adilson]# mount -t ext4dev /dev/sda6 /mnt/sda6
mount: wrong fs type, bad option, bad superblock on /dev/sda6,
missing codepage or helper program, or other error
In some cases useful info is found in syslog – try
dmesg | tail or so
root@localhost adilson]# dmesg | tail
EXT4-fs: sda6: not marked OK to use with test code.
Resolvo a montagem com esse comando:
[[root@localhost adilson]# tune2fs -E test_fs /dev/sda6
tune2fs 1.41.2 (02-Oct-2008)
Setting test filesystem flag
AGORA REINICIO E CONSIGO LOGAR NA PARTIÇÃO DEBIAN, MAS O PROBLEMA É QUE QUANDO DESLIGO O PC TENHO QUE REFAZER TUDO DE NOVO NO MANDRIVA.
SERÁ QUE EXISTE ALGUMA FORMA DE COLOCAR ESSE COMANDO NO BOOT? tune2fs -E test_fs /dev/sda6
OU EXISTE OUTRA MANEIRA DE CONCERTAR ISSO?
Adilson, pode colocar este comando no /etc/rc.local
Tenho uma duvida. Tenho outra particao com o Ubuntu no qual o grub esta instalado. Se modificar o sistema de arquivo do arch para ext4 e editar o fstab o Ubuntu ira montar esta particao normalmente ?
E como fazer uma instalação do zero já em ext4 ?
srxys, instalação do Zero acredito que somente se você estiver com uma distro com kernel 2.6.28, se não me engano as anteriores não possuem suporte para ext4.
Instala em ext3 e faz o procedimento que o Hugo falou que fica bom.
Ao efetuar o procedimento no “/” após desmontar a partição ela se torna somente leitura, tornando assim impossível editar o fstab e rodar o mkinitcpio.
Para resolver isso, simplesmente reinicie o PC e entre em modo fallback, altere o fstab, reinicie novamente em fallback e rode o mkinitcpio.
Pelo menos pra mim foi assim que funcionou.
Ta redondo aqui
abraço
RickMura