Introdução
O título deste artigo é Convertendo Sistemas de Arquivos. No entanto, poderia ser também “Brincando com Sistemas de Arquivos”, pois foi justamente isso que fiquei fazendo após descobrir a existência de um programa chamado fstransform, cuja finalidade é converter um sistema de arquivo em outro sem a necessidade de formatação.
Alerta
Desde já quero esclarecer que todos os passos realizados aqui foram efetuados em uma máquina virtual e que os arquivos contidos nesse HD Virtual não eram importantes. Apesar que em todos os testes os resultados foram positivos, sem nenhuma perda de dados, eu recomendo fortemente a realização de um backup de todos os arquivos e sistemas envolvidos, caso o leitor deseje efetuar essas conversões também.
Recomendo ainda que, assim como fiz, efetue esses testes primeiro em um ambiente virtualizado para não colocar em risco seus arquivos e sistemas. Não me responsabilizo por qualquer perda de dado que venha a ocorrer com o uso desta ferramenta.
A fonte de onde extraí boa parte das informações referentes a esse artigo, é do link abaixo:
Converting Filesystems with Fstransform » Linux Magazine
A tradução é livre e acrescentei algumas informações a mais baseadas na minha experiência de uso do programa.
Em meus testes, nenhum arquivo foi perdido, todos eles abriram normalmente. No entanto, reforço novamente: não faça nada sem backup.
No texto original, citado no link acima, o autor informa que somente são possíveis conversões entre os sistemas de arquivos tradicionais do Linux:
- Ext2
- Ext3
- Ext4
- JFS
- XFS
- ReiserFS
De Ext4 para NTFS, por exemplo, ele afirma que não é possível. Mas não foi bem isso que ocorreu nos meus testes.
Eu consegui efetuar as conversões entre os sistemas de arquivos tradicionais e até mesmo para sistemas de arquivos menos conhecidos como o F2FS e o Btrfs. E até mesmo para o NTFS e deste de volta para o EXT4. Tudo sem nenhuma corrupção de arquivos. Claro que nesses casos, tive que usar a opção “force-untested-file-systems”, o que não é recomendável em um ambiente de produção. Mas como estava em um ambiente virtualizado, resolvi testar. E toda a conversão foi efetuada com sucesso, sem perda de arquivos.
Para conversões entre os sistemas de arquivos Ext2/3/4 e destes para o Btrfs, eu recomendo seguir os procedimentos oficiais existentes. Esses no entanto, não serão abordados aqui.
De acordo com o autor, o espaço livre mínimo necessário é 5%. 10% para o caso do XFS. Por segurança, eu recomendo 10% para todos os casos.
É necessário que os pacotes de suporte aos sistemas de arquivos com os quais pretende-se trabalhar as conversões estejam instalados. Os principais são:
- e2fsprogs
- jfsutils
- f2fs-tools
- ntfs-3g
- ntfsprogs
- reiserfs
- reiser4progs
- xfsprogs
- xfsdump
- btrfsprogs
Dependendo da quantidade de arquivos, a conversão pode demorar e não pode ser interrompida sob risco de perda de dados.
Eu não realizei conversões de partições raiz. Essa conversão envolveria mudanças no processo de inicialização (boot) do sistema envolvido. Eu fiquei apenas em uma partição extra.
Fstransform – convertendo sistemas de arquivos
Intalando o FSTRANSFORM
No openSUSE Leap 42.2, atual versão, eu instalei adicionando o repositório:
- http://download.opensuse.org/repositories/filesystems/openSUSE_Leap_42.2/
E depois, instalando com o comando:
# zypper in fstransform
Em outras distros eu não testei. Mas o autor do artigo citado afirma que basta fazer o download do arquivo no link
E, tendo o compilador C++ instalado, basta executar os tradicionais comandos:
./configure
make
sudo make install
Convertendo um sistema de arquivo
No meu primeiro exemplo, eu converti uma partição Ext4 em JFS. As partições precisam estar desmontadas. Para a conversão deste exemplo execute no terminal, logado como root, o comando:
# fstransform /dev/sda3 jfs
Durante a conversão será solicitado em um determinado momento que se pressione C para continuar e depois Enterpara confirmar.
No meu exemplo, a partição a ser convertida é a /dev/sda3. Substitua essa informação conforme o seu caso.
O resultado, podemos ver nas imagens abaixo, ao estilo antes e depois. Eu usei o GParted para visualizar as conversões, pois o mesmo identifica cada sistema de arquivo com uma cor. Isso destaca bem as operações de conversões.
Antes da conversão, partição /dev/sda3 em Ext4:
Depois da conversão, partição /dev/sda3 em JFS:
Basta montar a partição agora e conferir a integridade dos arquivos. Aqui, todos os arquivos estavam intactos
Outras conversões – opções seguras
De JFS para XFS:
De XFS para Ext4:
Opções seguras
Nos testes que fiz, usei o comando abaixo para converter uma partição Ext4 em Btrfs.
# fstransform /dev/sda3 btrfs –force-untested-file-systems
O mesmo comando foi usado para converter Ext4 em NTFS e este, em Ext4 novamente. Nesse caso específico, de Ext4 para Btrfs, recomendo novamente usar o método oficial de conversão destes sistemas de arquivos.
De Ext4 para Btrfs:
Conclusão
O método mais seguro para trocar um sistema de arquivos continua sendo ainda o tradicional backup dos arquivos em outro local, formatação da partição e o posterior retorno dos arquivos no local de origem.
No entanto, saber da existência de um programa como esse, pode ajudar em alguns casos específicos. Basta ter um bom backup e tempo de sobra.
[Voltar]