You are hereBlogs / Amedee's blog / Externe harde schijf van FAT32 naar ext3
Externe harde schijf van FAT32 naar ext3
Ik heb een externe harde schijf van Iomega, zo'n klein plat ding in metalliek grijs. 320GB (of 298GiB) in binnenzakformaat. Ik gebruik die momenteel om backups op te zetten, en mijn downloads (zoals Ubuntu ISO's) staan daar ook op.
Standaard komt zo'n ding in FAT32 partitionering. Op zich is dat niet zo slecht, want dan zijn die schijfjes te gebruiken op zowel Linux, Windows als Mac (vermoed ik toch, ik ken niets van Mac). Alleen ben ik onlangs op een vervelende beperking gestoten. Ik had een backup gemaakt van een usb-stick van 8GB, en zelfs gecomprimeerd met bz2 was dat nog altijd rond de 6GB. Dat is dus een probleem voor FAT32, want die kan geen bestanden aan groter dan 2GB (4GB met 64KB clusters, maar dat wordt niet algemeen ondersteund).
Ik keek dus uit naar een ander filesystem om grotere bestanden te kunnen gebruiken. Mijn vereisten:
- Ondersteuning voor grote bestanden (>4GB)
- Read/write ondersteuning in zowel Linux als Windows, voor die enkele keren dat ik de harde schijf aansluit op een Windows-pc. Dat moet niet per sé native maar het moet wel gemakkelijk te installeren zijn.
- Crashbestendig: voor wanneer ik zo lomp ben om de usb-kabel uit te trekken voor alle gegevens goed en wel op schijf staan. Dus liefst een soort journalling filesystem, zodat ik geen half uur moet wachten op een schijfcontrole.
Als ik de mogelijke kandidaten overloop, dan geeft mij dat het volgende resultaat:
| filesystem | bestanden >4GB | R/W Linux | R/W Windows | journal |
|---|---|---|---|---|
| FAT32 | nee | ja | ja | nee |
| NTFS | ja | NTFS-3G | ja | ja |
| ext2 | ja | ja | coLinux, Ext2fsd, Ext2IFS | nee |
| ext3 | ja | ja | coLinux, Ext2fsd, Ext2IFS | ja |
| ext4 | ja | ja | coLinux | ja |
| XFS | ja | ja | coLinux | ja |
| Reiser | ja | ja | coLinux | ja |
Ik ga de harde schijf in hoofdzaak met Linux gebruiken, dus NTFS lijkt me dan minder geschikt. coLinux, dwz het draaien van een Linux kernel onder Windows, klinkt als een interessant idee. Maar in een artikel op PolishLinux las ik daarover het volgende:
In short, we install coLinux on a windows machine, assure access to disk partions, and export all the mounted file systems using Samba.
Okeee... dus een volledige Linuxkernel, én ook nog eens Samba? Nee dank u, dat klinkt me een beetje als overkill in de oren. Ik zoek iets dat ik snel kan installeren op een machine die ik toevallig bezoek. Er staat dan ook niet voor niets op het einde van de pagina:
This solution does not provide an outstanding performance
Dan blijft er eigenlijk alleen nog ext3 over, met een van de filesystem drivers Ext2fsd of Ext2IFS. In het verleden heb ik altijd Ext2IFS gebruikt voor zo'n situaties, maar de recentste versie is van 27/10/2008, en ik heb niet de indruk dat er nog verder aan ontwikkeld wordt. Het is ook geen Free Software (free as in speech) maar Freeware (free as in beer). Met andere woorden het is verboden om Ext2IFS aan te passen of te verbeteren...
Ext2fsd daarentegen lijkt me nog een actief project: versie 0.48 is van 1 augustus 2009, én het is wel Free Software.
Nog een verschil tussen Ext2IFS en Ext2fsd: Ext2IFS gaat ext3 partities mounten als ext2, dus zonder journal. Ext2fsd kijkt wel naar het ext3 journal. In principe kan een ext4 partitie ook gemount worden als die aangemaakt is zonder extents, maar wat is dan nog het voordeel van een ext4 partitie als je geen extents hebt? Dan kan je beter ext3 pakken...
Mijn keuze valt dus op Ext2fsd. Daarna volgde het concrete inrichten van de harde schijf. Er stond al voor 160GB aan data op dus ik ben als volgt te werk gegaan:
- Grote bestanden wissen zodat ik ruim onder de 150GB zat. Vooral iso's van Linux distro's kwamen in aanmerking, want die kan ik gemakkelijk opnieuw downloaden.
- Met gparted de eerste (en enige) partitie verkleinen naar 160GB.
- Een nieuwe ext3 partitie van 160GB maken.
- De twee partities mounten en van de FAT32-partitie naar de ext3-partitie kopiëren met
sudo mkdir /mnt/fat
sudo mkdir /mnt/ext
sudo mount /dev/sdg1 /mnt/fat
sudo mount /dev/sdg2 /mnt/ext
sudo rsync -av /mnt/fat/ /mnt/ext/
sudo chown -R amedee:amedee /mnt/ext # alle bestanden hadden root als owner
chmod -R 664 /mnt/ext # alle bestanden hadden de executable bit op FAT32
find /mnt/ext/ -type d -exec chmod a+x {} \; # alle directories executable bit geven zodat browsing mogelijk is.
sudo umount /mnt/fat
sudo umount /mnt/ext - Met gparted de FAT32-partitie formatteren. Die moet eerst leeg gemaakt worden, anders lukt het verkleinen niet.
- De FAT32-partitie verkleinen naar de kleinst mogelijke grootte. Gparted maakt daar automatisch 94,10MiB van, en FAT32 wordt omgezet naar FAT16.
- De ext3 partitie vergroten zodat die de volledige vrije ruimte gebruikt (298GiB).
- Ext2Fsd downloaden en op de FAT-partitie zetten. Zo moet ik niet meer doen in Windows dan Ext2Fsd-0.48.exe (997,4KB) installeren.
Humm, bij mijn weten konden zowel ext2 als ext3 niet overweg met files groter dan 4GB. Ik had onlangs zelfs opnieuw prijs: onmogelijk om die file daarop te krijgen. Ben je zeker dat het geen ext4 is?
BTW: voor JFS niets gevonden? Voor mijn nieuwe Ubuntu met ext4 was dat mijn favoriete FS wegens redelijk snel, betrouwbaar, en ondersteuning voor grote files.
Ik vrees dat je mis bent wat betreft de maximale bestandsgrootte in ext2/3, Peter. Volgens Wikipedia zijn bestanden tot 16 GiB of 2 TiB mogelijk, afhankelijk van de block size.
Ben je zeker dat je lokaal aan het werken bent met die partitie, en niet via NFS of SMB? Want dat heeft ook z'n restricties
Ik heb minstens 1 bestand groter dan 4GiB:
-rw-r--r-- 1 amedee amedee 6,4G 2009-11-29 21:01 /media/data/backup/home.tar.bz2
Helaas, niets gevonden voor JFS dat gemakkelijk in 't gebruik is. Maar ik heb ook niet echt intensief gezocht.
Ook interessant:
http://driesve.tumblr.com/post/1560794187/how-to-mount-a-ext4-drive-in-w...
Nieuwe reactie inzenden