Bestandssystemen

> Hoofdindex <
>No frames <

Partities en bestandssystemen

Logbestanden schrijvende bestandssystemen

Linux swap

Virtuele bestandssystemen

ISO bestanden

Universal Disk Format (UDF)

RSJ CD Writer File System

Partities en bestandssystemen

> Top <

Het hoofdstuk Over partities en partitioneren gaat over het indelen van de harde schijf voor gebruik van meerdere besturingssystemen. Dit hoofdstuk gaat in op de gebruikte bestandssystemen. Beide HTML bestanden zijn te downloaden als multiboot.zip.

Het programma FDISK deelt een harde schijf en partioneerbare verwisselbare schijven in partities op. Partities zijn delen van de harde schijf die het besturingssysteem kan herkennen. In feite doet FDISK niets met de aangemaakte partities zelf. Slechts de master boot record aan het begin van de harde schijf wordt door FDISK beschreven. Deze bevat het partitieschema van de vaste schijf. De partitietabel is te zien als de landkaart van de harde schijf. Het besturingssysteem gebruikt de partitietabel om uit te zoeken waar de partities zich bevinden.

Al eerder heeft de fabrikant van de harde schijf de hele schijf fysiek geformatteerd (low level format). Op dit niveau is nog geen sprake van opslag van informatie. Bij het fysiek formatteren wordt slechts een systeem van sporen, sectoren en cilinders op het magnetisch materiaal aangebracht. Het blokpatroon van de fabriek wordt door een modern PC BIOS herkend. Op oudere computers moet u de door de fabrikant opgegeven harde schijf karakteristieken met de hand invoeren.

Nadat het besturingssysteem is geboot kunnen zogenaamde block device drivers de schijf rechtstreeks benaderen. De stuurbestanden van 32 bits besturingssystemen benaderen de harde schijf dus buiten het BIOS om. Maar de informatie over het blokpatroon moeten de stuurbestanden in eerste instantie uit het BIOS halen.

Op een lege partitie kunt u nog geen bestanden kwijt. Pas met de opdracht FORMAT krijgen ook de partities een voor het besturingssysteem herkenbare structuur. De FORMAT opdracht van het besturingssysteem plaatst een voor het besturingssysteem herkenbaar bestandssysteem op de partitie. Dit proces heet logisch formatteren.


Een FORMAT is altijd behoorlijk destructief. Want de logica die het ene besturingssysteem (bestandssysteem) volgt is niet die van een ander.

Een partitie die pas gewist is met FDISK, kan nog wel hersteld worden door met hetzelfde programma de partitie op precies dezelfde locatie weer aan te maken. Dit is mogelijk doordat de FDISK alleen de partitietabel (de kaart) veranderd. Maar de inhoud van de partities zelf blijft ongemoeid. Na die hersteloperatie moet u NIET formatteren, maar rebooten. De oorspronkelijke inhoud zou dan weer tevoorschijn moeten komen.

Maar een FORMAT beschrijft niet de partitietabel (de landkaart) aan het begin van de schijf maar de partitie (het land) zelf zonder rekening te houden met de oude infrastructuur (bestandssysteem).

Een logisch bestandssysteem (file system, FS) zorgt ervoor dat uw bestanden (files) op een herkenbare wijze op de harde schijf terecht komen. Een FORMAT plaatst straten en wegen in het nieuwe land zodat de nu ontgonnen ruimte efficiënt kan worden benut. De administratie van uw bestanden komt in de bestandstoewijzingstabel.

In werkelijkheid kan het op de schijf door fragmentatie een behoorlijke rotzooi zijn, maar voor de gebruikers lijken de bestanden netjes geordend. De stuurbestanden van de bestandssystemen houden die rotzooi voor u bij. De logische ordening wordt in tabellen of inodes opgeslagen. In de praktijk gaan de meeste moderne bestandssystemen uit van een hiërarchische ordening van het de bestanden in mappen en submappen (directories en subdirectories). Ze kunnen willekeurig (at random, non sequential) worden gelezen en beschreven.

Ieder besturingssysteem voert zijn logische bestandssysteem weer anders uit. Hun hulpprogramma's voor het formatteren maken dus verschillende bestandssystemen aan. Programma's als unformat werken daarom alleen als ze snel uitvoert binnen dezelfde omgeving.

Ieder besturingssysteem bevat stuurbestanden om zijn eigen bestandssysteem te lezen. Het ene besturingssysteem is toleranter t.a.v. vreemde bestandssystemen dan het andere. Zo kunt u onder Linux vrijwel ieder bestandssysteem lezen, maar voor Windows 95 of Windows NT heeft Microsoft zelfs nog geen FAT32 driver beschikbaar willen stellen. Hier speelt de marketingstrategie van de leverancier van het besturingssysteem een rol. Wie NTFS wil moet volgens Microsoft maar naar Windows 2000 of XP updaten. Voor Linux gelden dergelijke commerciële overwegingen natuurlijk niet. Maar open source ontwikkelaars kunnen closed source ontwikkelingen natuurlijk nooit op de voet volgen.

Nog enige opmerkingen.

In de volgende tabel staat aangegeven hoe het momenteel met de leesbaarheid van onder verschillende besturingssystemen (OS = operating system) aangemaakte bestandssystemen (FS = file system) grofweg gesteld is. Details vindt u bij de bespreking van de afzonderlijke bestandssystemen.

Bestands- systeem

DOS

OS/2

NT

W2k/XP

Linux

Win 95

W98,

W95-OSR

BE

Commentaar

Fat (DOS)

+/+

+/+

+/+

+/+

+/+

+/+

+/+

+/+

Universeel bestandsformaat (door MS FAT16 genoemd)

vFat (Win9x, NT)

8.3/8.3

8.3/8.3
( +/+ )

+/+

+/+

+/+

+/+

+/+

+/+

Een vFAT driver is nodig om de lange namen op een FAT16 schijf te zien.

FAT32 (W95-OSR, W98)

-/-

-/-

( +/+ )

-/-

(+/-)

+/+

+/+

-/-

+/+

+/+

Zie OS/2 en FAT32

HPFS (OS/2)

-/-

(+/-)

+/+

-/-

(+/+)

-/-

(-)

+/-

(+/+)

-/-

(+/+)

-/-

(+/+)

-/-

De DOS drivers zijn ook onder Windows bruikbaar.

NTFS (Windows NT)

-/-

(?)

-/-

(+/-)

+/+

v5

-/-

( +/-)

-/-

(? )

-/-

(?)

+/-

(?)

New Technology File System: Uitstekend bestandssysteem, helaas niet door W9x ondersteund.

NTFS5 (W2K, XP)

(?)

-/-

(+/-)

-/-

(+/+)

+/+

-/-

(+/-)

-/-

(?)

-/-

(?)

-/-

(?)


Ext2fs (Linux)

-/-

(+/-)

-/-

(+/+)

-/-

(+/+)

-/-

(+/+)

+/+

-/-

(+/+)

-/-

(+/+)

+/-

(+/+)

De drivers lezen de bestanden, maar zien niet de vele attributen van Ext2fs!



Toelichting: +/+ in principe toegankelijk voor lezen en schrijven; +/- wel lezen, niet schrijven; -/- ontoegankelijk voor lezen en schrijven; 8.3 klassieke DOS bestandsnaamgeving (zonder lange namen). Driver(s) beschikbaar voor alleen lezen (+/-) of lezen en schrijven (+/+).

Let op: Als u een bestandssysteem kiest, let er dan op dat u het ook repareren kunt. FAT32 is bijv. een breed ondersteund (Windows, Linux, BEOS, OS2) bestandssysteem, maar defragmentatie en uitvoerige checkdisks zullen toch vanuit de FAT32 ondersteunende Windows versies moeten plaatsvinden.

De ontwikkelingen op dit gebied gaan snel. Een URL om in de gaten te houden was de: Filesystems HOWTO uit 2000. Deze was weer gebaseerd op de the "PC Filesystems access HOWTO" van Georgatos Photis. Hier vindt u ook hyperlinks naar de homepages van de auteurs van deze drivers en naar de drivers zelf. Maar inmiddels weet ook ik niet meer waar ik te rade kan gaan. Waarschijnlijk is Comparison of file systems - Wikipedia, the free encyclopedia een redelijke keus. De wikepedia staat immers open voor kritiek.

Ik ga nu op de eigenschappen van enige veelgebruikte bestandssystemen in.

Het FAT bestandssysteem

> Top <

Het file allocation table (FAT) bestandssysteem is in 1977 door Bill Gates and Marc McDonald ontworpen. Het is genoemd naar de bestandstoewijzingstabel (file allocation table) die bijhoudt in welke 'low level" clusters de bestanden en de vrij ruimte zich bevinden.

Het FAT bestandssysteem was ontworpen voor diskettes. Voor vaste schijven is het een primitief en dus inefficiënt bestandssysteem. En het is zeker ontoereikend voor gigabyte grote vaste schijven. Om de snelheid er toch in te houden wordt de FAT tabel door DOS en Windows 3x in het geheugen gecached (smartdrv), zodat het trage bestandssysteem nauwelijks geraadpleegd hoeft te worden.

Het FAT bestandssysteem ondersteunde de onder DOS bekende 8.3 naamgeving. Een bestandsnaam of map kon 1 tot 8 tekens bevatten, plus een extensie van een tot drie tekens. De extensie wordt meestal gebruikt om het bestandstype (MIME-type) aan te duiden.

FAT is onder DOS, Windows en OS/2 niet hoofdlettergevoelig (case-sensitief): PROG.C en Prog.c betekenen hetzelfde. Maar onder Linux of UNIX geldt dit niet. En aangezien de vFAT uitbreiding van Windows 9x PROG.C als Prog.c weergeeft ontstaan er soms problemen.

Onder OS/2 2.2x maken de FAT tabel en de bestandsstructuur deel uit van het zogenaamde Super FAT bestandssysteem, dat ook lange namen via uitgebreide attributen ondersteunde. Het 32 bits vFAT stuurbestand van Windows 95 voegde lange namen aan het basale FAT bestandssysteem toe. Deze FAT (DOS, OS/2, Windows) variaties werken volledig langs elkaar heen.

Het wissen of beschadigen van de centrale bestandstoewijzingstabel zou desastreus uitpakken. Daarom is er een reserve FAT tabel aanwezig. Het wissen van een bestand is in de regel een kwestie van een bestandsingang in de FAT tabel door te halen. Recovery Tools (Peter Norton) kunnen recent gewiste bestanden daarom vlot terughalen.

Voor DOS 4 kon een partitie maximaal 32 MIB groot zijn, dat is 64k maal de clustergrootte van 512 bytes. Vierenzestig kilobyte (oftewel het maximale aantal 16 bits getallen) is het magische getal van een 16 bits besturingssysteem. Na DOS 4 werden de clusters vergroot. Het FAT bestandssysteem wordt sinds FAT32 ook wel FAT16 genoemd, hoewel het door door 32 bits besturingssystemen meestal 32 bits benaderd wordt. De 16 slaat op de beperktheid van de File Allocation Table en heeft niets met de snelheid te maken.

Het FAT bestandssysteem slaat bestanden op in clusters. Een cluster bestaat uit een vast aantal sectoren. Naarmate de partitie groter wordt worden de clusters groter. Het maximaal aantal clusters (65.525=2^16 minus het gekkengetal) bepaalt ook het maximaal aantal bestanden. De kleinste cluster is nog altijd 4 sectoren (4 x 512 bytes) groot. Ook het kleinste bestand (bijv. een W95 "snelkoppeling" van 0,26 KiB) zal minimaal de clustergrootte in beslag nemen (8 KiB op een 500 MIB FAT partitie). De verspilde ruimte (hier 8-0,26 = 7,74 KiB) heet slack. De gemiddelde verspilde ruimte per bestand is de helft van de clustergrootte. Naarmate u grotere partities of veel kleinere bestanden hebt zal de verkwisting door "slack" snel toenemen.

Partitiegrootte in mebibyte

Clustergrootte in kibibyte

Verspilde "slack space"

0-15 MIB

4 KIB

4%

16-127 MIB

2 KIB

2%

128-255 MIB

4 KIB (JFS, FAT32)

4%

256-511 MIB

8 KIB

10%

512-1023 MIB

16 KIB

25%

1024-2047 MIB

32 KIB

40%

Uit bovenstaande tabel blijkt dat u FAT16 partities vanuit het oogpunt van efficiëntie het best een omvang van 127, 255 of 511 MIB of iets kleiner kunt geven. De maximale grootte van een FAT partitie is 2.147.483.648 bytes (2 GIB) onder Windows 9x en DOS (4 GiB onder Windows NT 3.51 en 4).

En het zal u na bestudering van de tabel niet meer verbazen, dat als u een bijna volle 512 MIB FAT16 partitie met 1 MIB verkleint tot 511 MIB, u door halvering van de "slack space" zelfs vrije schijfruimte kunt creëren! Kies voor de partitiegrootte in Megabytes dus bij voorkeur de hoogste waarden voor de gegeven clustergrooote (15, 127, 255, 511, 1023 0f 2047 MIB).

Het kan voor velen een reden zijn om FAT32 te installeren. FAT32 schijven hebben een clustergrootte van 4 KiB. Dit bestandssysteem wordt ondersteund door Windows 95b (OSR2) en opvolgers, maar niet door WindowsNT. De installatie van OS/2 wordt er door bemoeilijkt. Zie OS/2 en FAT32 en ook even verderop.

Het vFAT bestandssysteem

> Top <

Het vFAT bestandssysteem van Microsoft is een uitbreiding van het FAT bestandssysteem voor protected-mode Windows. De vFAT interface biedt Windows 95 en navolgers ondersteuning voor lange bestandsnamen op FAT schijven tot 2 GiB. In tegenstelling tot FAT32 kunt u de bestanden op vFAT schijven ook onder de 8.3 formaat benamingen van DOS benaderen. Onder DOS worden lange bestandsnamen met een tilde tekens afgekapt. Zie Lange namen op vFAT schijven.

Bestandsnamen mogen op een vFAT bestandssysteem maximaal uit 254 zichtbare tekens en spaties bestaan. De bestandsnamen worden door een onder Windows onzichtbaar null teken (op locatie 1-255) beëindigd. Het volledige pad (c:/map/bestandsnaam) mag uit 259 zichtbare tekens bestaan. Ook het volledige pad wordt door een onzichtbaar null teken beëindigd.

OS/2 ziet de bestanden op een vFAT schijf zoals DOS programma's dat doen, dus in het 8.3 formaat. Met Fixpack 5 kan OS/2 Warp 3 veilig een schijfcontrole (chkdsk /c) uitvoeren op een vFAT schijf met lange namen. Warp 4 kan dit meteen. Bij de foutmelding "Windows cannot initialize vfat cache" bespaart de OS/2 chkdsk u een schone Windows installatie. Onder MS DOS kan dit niet, omdat de DOS' Scandisk niet met lange namen om kan gaan.

Ook OS/2 kan op FAT16 schijven lange namen aanbrengen, maar deze zijn weer niet te gebruiken onder Windows 9x, tenzij u een OS/2 vFAT IFS driver gebruikt. De OS/2 vFAT driver van R Steiner is behoorlijk buggy. U moet er ook geen CHKDSK of andere ingrijpende bewerking mee uitvoeren. Zie voor meer informatie: Lange namen op vFAT schijven.

Bij recente versies van OS2DASD.DMD (FP13?, in ieder geval FP14 en eCS) geeft het voor de vFAT en EXT2 IFS stuurbestanden benodigde stuurbestand MWDD32.SYS problemen bij het laden van de CONFIG.SYS. Om dit te voorkomen moet u bij toepassing van een fixpack dit stuurbestand remmen! Zet de oudere OS2DASD.DMD apart. Na toepassing van het fixpack kunt u de met de oude OS2DASD.DMD de vFAT en EXT2 drivers weer activeren.

Onder Linux leveren de lange namen op vFAT schijven geen enkel probleem op. U kunt onder Linux FAT16 schijven naar wens als msDOS (8.3 formaat) of als vFAT (met lange namen) benaderen. Ook BEOS kan er goed met vFAT overweg.

Daarnaast kent Linux de mogelijkheid om een FAT partitie als umsDOS te mounten, waarmee het mogelijk wordt Linux op een FAT partitie te gebruiken. Zaken die (v)FAT niet kent, zoals bestanden met ongebruikelijke namen, eigenaren, permissies, links en device files worden door de umsDOS driver toegevoegd. De directory toegang is langzamer. Linux4Windows maakt er gebruik van. Op een snelle computer merkt u er waarschijnlijk weinig van.

Meer info: The Protected-Mode FAT File System (VFAT)

VFAT and USB memory sticks

Het FAT32 bestandssysteem

> Top <

Microsoft introduceerde het FAT32 bestandssysteem in de OEM versie van Windows 95 (Windows 95b alias OSR-2). Het werd het standaard bestandssysteem van Windows 98 en opvolgers. FAT32 is een voor grotere partities aangepaste versie van het vFAT systeem.

Als u onder Windows 9x voor ondersteuning van grote harde schijven kiest worden partities groter dan 512 MIB als FAT32 geformatteerd. De kleinere partities krijgen het vFAT bestandssysteem toebedeeld. Het FAT32 bestandssysteem laat op de grotere partities clusters van 4 KiB toe. De "slack" is hierdoor beduidend minder dan die van vFAT. Maar de verspilde ruimte is nog steeds 8 maal zo groot als die van het veel snellere HPFS. Maar het door OS/2 gebruikte HPFS werd door Microsoft aan de kant geschoven.

Microsoft liet ook het snellere NTFS uit Windows 98 omdat NTFS een te groot beroep op de MS DOS kernel zou doen (fat32.html). Maar de echte reden is dat de op DOS gebaseerde Windows versies niet met Installeerbare bestandssystemen (IFS) overweg kunnen. Windows en NT gebruiken incompatibele IFS drivermodellen (Windows 2000/XP IFS FAQs). Microsoft adviseerde bedrijven om snel naar Windows 2000 of XP met NTFS versie 5 over te stappen.

Volgens Microsoft zijn de voordelen van FAT32 tegenover het FAT16 bestandssysteem:

Nadelen van FAT32 zijn:

H:\test>dir

The volume label in drive H is NETDRIVE.

Directory of H:\test

26-02-08 0:06 <DIR> 0 ---- .

26-02-08 0:06 <DIR> 0 ---- ..

15-09-02 0:14 1.709.938 K 758.082.529 ---- ##

6-02-106 8:28 0 7.929.933 ---- 

4 file(s) 1.709.938 K bytes used

1.073.741 K bytes free

Om die reden moet ik op mijn IOMEGA NAS schijven vanuit OS/2 met Netdrive via hun FTP server benaderen.

Ook al omdat de Windows FDISK zogenaamde FAT32X partities kan aanmaken en DOS en Windows NT FAT32 standaard niet kunnen gebruiken, wordt FAT32 ook wel een "for Windows only " bestandssysteem genoemd. Toch kunnen enige andere besturingssystemen er gebruik van maken:



Het FAT32X bestandssysteem

> Top <

Door BIOS limitaties konden geen primaire partities worden aangemaakt op en voorbij de 1024e cylinder (8,4 GIB grens). Het BIOS kan slechts het eerste deel van een grotere vaste schijf zien. Daarom ziet een van het BIOS afhankelijk besturingssystemen als DOS slechts dit bootbare gebied. Alleen de stuurbestanden van de 32 bits besturingssystemen kunnen voorbij de BIOS grenzen kijken. Maar als ze via het BIOS booten en hun stuurbestanden nog niet geladen zijn, zijn ze nog van de BIOS limitaties afhankelijk. Hun bootbestanden moeten daarom in bootpartities in het eerste deel (meestal de eerste 8,4 GIB) van de vaste schijf staan.

In de tijd van FAT en vFAT was dit geen probleem. 2 GIB was de maximale partitiegrootte voor het FAT bestandssysteem. Een Windows 95 computer kon van een primaire vFAT partitie in de eerste 1-2 GIB booten en de rest van de schijf benaderen via logische stations. OS/2 kon van HPFS booten, maar de bootpartitie moest wel volledig in de eerste 8,4GIB staan. Maar daar was altijd wel ruimte voor te maken.

Om het wat concreter te maken: Hieronder is afgebeeld wat u met de 20 GIB van uw laptop kunt doen: deze boot DOS, Windows 98, Windows 2000, eComstation (OS/2) en Linux in de eerste 8 GIB. De overige 12 GIB worden besteed aan data, wisselbestanden en programmatuur. Windows 2000 wordt via een "vreemde" FAT of FAT32 partitie geboot.

Vaste schijf cilinders 1-1023 (<8,4 GIB)

Cilinders 1024 tot einde van de vaste schijf (8,4-20 GIB)

Niet op de IDE schijf aanwezige adressen (>20 GIB)

Voor het BIOS zichtbare ruimte. Te gebruiken voor bootpartities met bootbestanden of voor DOS (programma's en data).

Niet bootbare maar wel door 32 bits besturingssysteem benutbare ruimte. Ideaal voor logische stations met programma's en data.


Bijv: OS/2 BM, C (512 MIB FAT voor DOS ), C (Windows 98, 5 GIB FAT32), D (2 GIB OS/2 HPFS) en E (512 MIB linux /boot).

F (JFS data), G (Windows 2000, boot via de C van DOS), H (FAT32 DATA), I (linux /), J (linux swap).


C (Windows 98, 8,4 GIB geformatteerd als FAT32)

C (Windows 98 resterend deel geformatteerd als FAT32)

Het deel de FAT32X "partitie" dat als bad cluster geformatteerd is.

Met Windows 95 OSR-B werd FAT32 geïntroduceerd. Dit bestandssysteem kon 32 GIB aaneengesloten vaste schijf ruimte aan. Voor de Windows 95 OEM leveranciers was het aantrekkelijk om alles op een C met FAT32 te zetten. In plaats van een 8 GIB C:/Windows en een D: voor de rest. Ook al zou die C groter dan 8,4 GIB zijn. Ook voor Microsoft was dit een aantrekkelijk idee. Er zou dan dan op het OEM systeem geen bootbare ruimte meer over zijn voor een concurrerend besturingssysteem...

Om dit mogelijk te maken kreeg de FDISK van Windows 95OSR-B en Windows 98 (OSR-C) een optie /X mee die de Logical Block Addressing (LBA) van het BIOS omzeilde. Windows 9x gebruikte deze optie automatisch voor iedere partitie die groter was dan 8,4 gigabyte. De partitietabel moest hiervoor worden aangepast. Want die kon slechts een bootpartitie in de eerste 8,4 GIB herkennen. Het aanmaken van een primaire partitie > 8,4 GIB kon volgens de adresseringsregels van het BIOS niet eens plaats vinden. Om die reden introduceerde Microsoft het uitgebreide FAT32X (X van eXtended) partitietype 0F.

Microsoft loste het BIOS probleem op door de uitgebreide FAT32X partitie correct te laten beginnen, maar voor het eind een virtuele waarde in te voeren die de fysieke grenzen van de vaste schijf overschreed (laatste kolom). De correcte eindwaarde van de partitie kon vanwege de BIOS limitaties toch niet worden opgegeven. Als Windows maar wist wat ze met partitietype 0F deed. Deze slechte gewoonte nam zij ook over voor logische FAT32X partities (FAT32 > 8,4 GIB, partitietype 0F) die aan het eind van de schijf aangemaakt werden. Maar het 32 bits Windows zorgde er natuurlijk wel voor dat alleen die sectoren die daadwerkelijk bestonden correct als FAT32 werden geformatteerd. De in de partitietabel foutief opgeven niet bestaande sectoren kregen het label "bad cluster" mee (logisch: niet bestaande sectoren zijn niet te formatteren). Voor de programmatuur van het Windows OEM systeem bestond er dus geen probleem. Die zag slechts het correct (in de tabel blauwgekleurde) geformatteerde gebied.

Maar van zo'n volgens de alleen bij Windows bekende spelregels gepartioneerde schijf kon een ander besturingssysteem niet booten. De fysieke ruimte ontbrak. En ook het wissen of verkleinen van zo'n virtuele FAT32X partitie vanuit een ander besturingssysteem gaf onoverkoombare problemen. Gewoon omdat de partitietabellen foutief ingevuld waren. De partitiemanagers (fdisks) van fatsoenlijke (BIOS getrouwe) besturingssystemen als OS/2 zullen bij het niet door hun IDE drivers herkennen van een partitietabel iedere dienst weigeren. Alleen de fabrikanten van partitiemanagers met een "confidentiality" of "non-disclosure agreement" toegang de oor buitenstaanders gesloten Windows trukendoos konden zich hierop instellen. PowerQuest PQ Magic was er als eerste bij. En als dank formatteerde PQMagic 4 zijn FAT32 partities aan het eind van de schijf (volstrekt onnodig) als FAT32X en besloot het Microsofts concurrent OS/2 niet meer te ondersteunen (waar PQM ooit mee begonnen was).

De kans dat u Linux, Windows 95, DOS, NT of OS/2 zonder dataverlies op een eventuele 2e harde schijf binnen de 1024e cylinder zonder PQM kon installeren was natuurlijk definitief verkeken. De niet door MS geïnformeerde en voor het blok gezette concurrentie konden deze alleen voor Windows 98 onworpen partitietabel niet lezen. De informatie om te booten halen ze immers uit het BIOS. Vandaar dat deze "vooruitgang" in feite een grote achteruitgang was en zeker een zaak voor de anti-trust commissie. Linux is er jaren later aan gewend. OS/2 gebruikers kunnen inmiddels gebruik maken van danidasd.zip en Jan van Wijk's DFSee om het te corrigeren.


Most Common FAT types : een heldere tekst.

Installeerbare bestandssystemen

> Top <

Een Installable File System (IFS) is zoals de naam al aangeeft een installeerbaar bestandssysteem. IFS stuurbestanden worden niet als onderdeel van de de OS/2 kernel geladen, maar worden via een interface ("stopcontact") aan de kernel gebonden. Alleen het FAT bestandssysteem en het via sysinstx ingestelde mini bestandssysteem voor het booten van de vaste schijf maken vast onderdeel van de OS/2 kernel uit. De stuurbestanden van de andere bestandssystemen worden via CONFIG.SYS opdrachten geladen.

Van oorsprong was OS/2 16 bits. Veel essentiële stuurbestanden zijn dat nog steeds. Om die reden bevatte de 32 bits OS/2 versie 2.0 kernel (1992) een 16 bits IFS interface waarmee de in 16 bits assembler geschreven installeerbare stuurbestanden (HPFS, NFS en CDROM) met het 32 bits besturingssysteem konden communiceren. Ook recente stuurbestanden (FAT32, UDF, RAMFS, HPF en zelfs het intern 64 bits werkende JFS) maken van deze snelle 16 bits IFS interface gebruik. Als een 32 bits OS/2 programma via een systeemaanroep een 16 bits bestandssysteem aanroept verzorgt de OS/2 kernel de 32 naar 16 bits en vice versa vertaling.

Matthieu Willm ontwierp voor zijn 32 bits Ext2 OS/2 stuurbestand (1996) een 32 bits API naar de OS/2 kernel (32drv170.zip), maar deze kon niet met de OS2DASD.DMD van FP13 en later (eCS, WsEB) samenwerken. Daarnaast was zijn 32 bits interface niet zo efficiënt als in de OS/2 kernel geïntegreerde IFS API, die de 16 bits stuurbestanden in ring 2 liet draaien.

Nog steeds lijdt het in 16 bits machinetaal geschreven OS/2 IFS drivermodel niet tot een merkbaar performance verlies. Dit komt doordat de in kernelmodus draaiende 16-32 bits conversie assemberroutines (chunking) vele malen sneller zijn dan de op de PCI bus aangesloten perifere randapparaten. De processors worden nog steeds sneller snel dan de bussen en randapparatuur. Daarnaast kan de traagheid van de in steeds "hogere" programmeertalen geschreven programmatuur de snelheidswinst van de hardware niet compenseren (Zie: Niklaus Wirth: A plea for lean software). Vandaar dat het in snel 16 en 32 bits assembler geschreven OS/2 u ook op de 64 bits AMD processor een aangename verassing kan verzorgen.

Onder OS/2 zijn 16 bits en 32 bits stuurbestanden beschikbaar voor HPFS, HPFS386, NFS, CDROM, UDF, EXT2FS, FAT32, vFAT en het Macintosh HPF formaat. U bepaalt zelf welke modules u aan de 16 bits IFS interface (ring 2) wenst te binden. Ondersteuning voor FAT zit daarentegen in de OS/2 kernel (ring 0) ingebouwd.

Bij IFS drivers hoeft u nooit te wachten op een nieuwe versie van het besturingssysteem om een nieuw bestandssysteem te kunnen gebruiken (zoals het FAT32 van Windows 98). Doordat Installable File Systems afzonderlijke modules zijn kunt u ze ook zelf gemakkelijk activeren, deactiveren of updaten. U hoeft slechts de File System Drivers (FSD) te installeren en de pdrachten van de drivers in de config.sys te plaatsen. Dit kan zowel handmatig of met het programmaobject "Stuurprogramma's installeren" (ddinstall.exe). IFS drivers worden regelmatig vernieuwd.

Een goed overzichtsartikel verscheen in OS/2 eZine: Installable File Systems ,

High Performance File System

> Top <

Het High Performance File System (HPFS) is een door Gordon Letwin ontwikkeld installeerbaar bestandssysteem dat beschikbaar kwam voor het 16 bits OS/2 versie 1.20 (1989). De eerste versies van Windows NT konden er al mee werken. Een aardig artikel uit het Microsoft Systems Journal van 1990 over de voordelen van HPFS t.o.v. FAT is lokaal te vinden als hpfs.txt.

Opvallend is dat Microsoft het HPFS systeem nu niet niet meer ondersteund. De ondersteuning die er was (in NT3.51) heeft zij met NT 4 verlaten, kennelijk in een poging om OS/2 te isoleren. De NT 3.5 driver voor HPFS (hpfsnt.zip) is overigens nog wel onder NT 4 (t/m Microsoft Service Pack No. 4.0) te installeren. Maar deze werkt niet onder Windows 2000 en XP. Anonieme ontwikkelaars hebben een patch beschikbaar gesteld die soms nog op het internet te vinden is.

De voordelen van HPFS t.o.v. op FAT en FAT gebaseerde systemen (vFAT en FAT32) zijn groot:

HPFS is een snel en efficiënt bestandssysteem. HPFS inherent snelle zoekstrategieën besparen cache geheugen en voorkomen lange wachttijden voor de processor. OS/2 gebruikt uw geheugen en processortijd liever voor programma's dan om een enorme FAT-cache bij te houden.

Zaken als fouttolerantie, snelle zoekstrategieën, resistentie tegen fragmentatie spelen een belangrijke rol in een multitasking omgeving doordat allerlei bestanden tegelijkertijd gelezen en beschreven moeten worden. Dat speelt niet alleen op het netwerk, maar ook als u een map met duizenden kleine emailbestanden leest. Dan zal het (v)FAT(32) bestandssysteem niet voldoen. De clusters zijn groter en de zoektijden zijn langer. Microsoft ving dit op door de email in grote intern geïndexeerde Outlook bestanden op te slaan. Maar OS/2 werd geleverd met het universele sendmail en ging ervan uit dat u de berichten ook in hun oorspronkelijke vorm wilde kunnen lezen.

Voor OS/2 geldt dat vanaf partitiegroottes van 80-100 MIB HPFS sneller is dan FAT. Dit geldt zeker voor het lezen. Bij het beschrijven kan FAT weer sneller zijn omdat FAT een grotere lazy-write cache kan gebruiken en minder processor belasting heeft vanwege zijn eenvoudige administratie. Ik zag dat vooral bij het kopiëren van grote bestanden (120 MIB) naar een volle HPFS partitie. OS/2 moet dan behoorlijk rekenen om het bestand minimaal gefragmenteerd op de partitie te plaatsen. Onder de WPS zullen kopieer- en verplaatsingsacties extra vertraagd worden door object tracking: Het bijhouden van de locaties van objecten door de WPS. Maar tegenwoordig hebben we 100 keer zo snelle PC's. Testresultaten uit het verleden waarin OS/2 Warp onder de WPS trager is dan Windows 3.x in schijfbewerkingen zeggen mij dan ook weinig. Tegenwoordig erger ik me meer aan het feit dat Windows XP het object "Deze computer" niet kan vinden.

De maximale bestandsgrootte van het 16 bits HPFS is 2 GIB. Voor databases en multimedia is dat krap. OS/2 applicaties als EmperoarTV en DFSee hebben hier een oplossing voor gevonden door grote bestanden in brokken 2047 MIB van te verdelen. Maar de maximale HPFS cache (2 MIB) is met het huidige geheugen veel te klein; zeker voor een server. Hier kunnen HPFS386 en JFS beter worden ingezet. Het Journaling File System voor OS/23 heeft de voorkeur vanwege de snelle schijfcontroles, ondersteuning voor grote bestanden en de beste prestaties. eComStation versie 2.0 kan ook van JFS booten.

Uitgebreide attributen

Heel kenmerkend voor HPFS zijn de zogenaamde uitgebreide attributen (extended attributes, EA's). Het FAT bestandssysteem kent allen de vier DOS bestandsattributen: alleen lezen, systeem, verborgen en archief. Maar HPFS kan per bestand 64 KiB aan extra informatie kwijt. Veel OS/2 programma's maken hier gebruik van om meta-informatie over de bestanden en mappen in op te slaan. Zo bestaan de mappen van de Werkplek grotendeels uit uitgebreide attributen (zie: de werkplek). Op die manier is de lay-out en het gedrag van iedere map individueel in te stellen.

Samba 3 maakt gebruik van de uitgebreide attributen van recente Linux/Unix bestandssystemen als EXT3, JFS, Reiser en XFS om de onder die bestandssystemen onbekende DOS attributen van OS/2 en Windows clients op te slaan. Maar het grote doel was om de Active Directory instellingen van recente Microsoft Windows servers na te bootsen.

HPFS ondersteuning

Onder Linux zijn HPFS partities probleemloos te lezen en sinds kort ook te beschrijven. Mikulas Patocka werkte aan een Read/Write HPFS driver voor Linux. Dit stuurbestand maakt op een creatieve manier gebruik van de uitgebreide attributen:

"If you chown/chgrp/chmod on a hpfs partion, extended attributes with keys "UID", "GID" or "MODE" and 2-byte values are created".

Een fstab ingang die goed voor mij (user 500) werkt is:

/dev/hda12 /mnt/hpfs hpfs user,gid=100,uid=500,umask=022 0 0

In mijn praktijk bleek de HPFS read write driver voor Linux goed te gebruiken. Hij is als module te laden, maar deze module moest (bij voorkeur) wel met de kernel worden gecompileerd. De HPFS driver maakt deel uit van de kernel code van SuSE 8.2 en opvolgers.

Voor DOS is er een read-only driver voor HPFS, die natuurlijk geen lange namen ondersteunt. Deze is ook onder Windows te gebruiken. De HPFS partities moeten wel binnen de 1024e cylinder zitten (< de 8 Gig met LBA), anders kan DOS ze niet zien. Voor meer HPFS voor DOS stuurbestanden zie: HOBBES.

Er is een niet door Microsoft ondersteunde HPFS for Windows NT 4.0 (hpfsnt.zip) in omloop. U moet weten dat deze pinball.sys geen HPFS schijven van > 4 GIB (soms 2 GIB) aankan: er zijn meldingen van dataverlies. Door het veranderde drivermodel lukte het mij niet om deze pinball.sys onder de bèta Windows 2000 te installeren (blauw W2K scherm). Later kwam er een voor het W2K en XP drivermodel gepatchte onofficiële HPFS for Windows 2000 driver in omloop. Deze gepatchte pinball.sys driver kan onder de Windows 2000 en XP maximaal 2 (veilig) tot 4 GIB (kan net) HPFS partities benaderen. Een 15 GIB HPFS partitie werd niet herkend ("Do you want to format it?"). Hoe duurzaam dit is kan ik u niet zeggen. Microsoft is immers zelf immers niet meer aan haar HPFS code gebonden. En haar oude OS/2 compagnon IBM heeft het OS/2 platform zo goed als verlaten. Maar gelukkig zullen de Linux en OS/2 (tegenwoordig eCS) HPFS drivers het nog voor onbepaalde tijd blijven doen.

Meer lezen: The HPFS FileSystem

Gordon Letwin Comments on HPFS Fragmentation

Tangled in the Threads: The future of the file system



Het HPFS 386 bestandssysteem

> Top <

Het van OS/2 architekt Gordon Letwin afkomstige HPFS386 bestandssysteem werd ingezet op OS/2 Warp Server Advanced (WSA). HPFS386 werkt met een 16 bits IFS driver, maar is intern een 32 bits bestandssysteem. Omdat Microsoft hier veel geld voor vroeg, moesten de goedkopere Entry Warp Servers het met HPFS doen. Vanwege de woekerprijzen (Microsoft vraagt honderden dollars) zijn er "merkloze" hpfs386.zip pakketten in omloop gekomen. Inmiddels maken eComStation en de OS/2 Warp Server for eBusiness gebruik van IBM's Journaled File System. Het heeft minder beperkingen dan HPFS386 en het lost het licentieprobleem op.

Maar HPFS386 staat nog steeds bekend als supersnel en betrouwbaar LAN bestandssysteem. De snelheidswinst is vooral te danken aan de ruim instelbare cache en het feit dat HPFS386 in ring 0 (kernelmodus) draait. Bovendien zijn de meest kritieke delen in assembler geschreven. De HPFS386 cache gebruikt niet pagineerbaar systeemgeheugen: Stel de cachesize in \IBM386FS\ibm386.ini ruim in, maar voorkom een tekort aan werkgeheugen voor uw applicaties.

Overigens kreeg ik het idee dat een > 128 MIB HPFS386 cache minder presteerde. Maar op een doorsnee OS/2 systeem van 128 of 256 RAM is een 32-128 RAM HPFS386 cache beslist geen gek idee. Want de snelheidswinst van een flinke HPFS386 cache op een OS/2 systeem met > 32 MIB RAM t.o.v. de 2 MIB HPFS cache is verrassend groot. Dit ondanks het feit dat veel programma's en bibliotheken door OS/2 meteen in het geheugen geladen worden. Ook de op het bestandssysteem afgebeelde WPS zal veel sneller reageren.

U stel het HPFS386 in via IBM386FS\ibm386.ini

useallmem = YES
lanroot   = C:\IBMLAN
cachesize = 32000

HPFS386 heeft veel met NTFS gemeen. De met het NetBIOS samenwerkende HPFS386 IFS driver slaat de LAN server bestandspermissies lokaal in het HPFS386 bestandssysteem op.

Onder HPFS en FAT staan de netwerk toegangscontrolelijsten in een centraal \IBMLAN\ACCOUNTS\NET.ACC bestand. Maar door de lokale opslag van de bestandspermissies in het aangepaste HPFS systeem beschikt HPFS386 net als zijn opvolger NTFS over een Local Security Policy.

De bestandspermissies op de mappen betreffen dan niet alleen de USERS en GUESTS die de server via het LAN benaderen, maar ook de locale gebruikers. De bestandspermissies zijn lokaal zo opgeslagen, dat - als u de schijf onder de gewone HPFS driver benaderd - u de inhoud van menige map niet kunt zien!

Deze Local Security kan problemen opleveren als u OS/2 of eComstation met HPFS.IFS boot of installeert (de standaard). Een deel van de op HPFS386 via het netwerk opgeslagen gegevens is dan niet meer te bereiken. Om dat te kunnen moet u dan alsnog HPFS386 installeren:

IFS=C:\IBM386FS\HPFS386.IFS /AUTOCHECK:FGIJKL
REM /AUTOCHECK:F* geeft problemen met > 30 GIB grote schijven 
CALL=C:\IBM386FS\CACHE386.EXE
REM IFS=C:\OS2\HPFS.IFS /CACHE:2048 /CRECL:4 /AUTOCHECK:FGIJKL

Als u een door de NetBIOS en HPFS386.IFS stuurbestanden naar HPFS386 opgewaardeerde partitie met HPFS.IFS benadert, kunnen lokale mappen en bestanden verborgen blijven ("SYS0005 Access Denied"). Hetzelfde kan gebeuren als u ze via het netwerk onder verschillende gebruikersnamen benadert. HPFS386 is net als NTFS en Ext2 een voor het netwerk ontworpen bestandssysteem. Ook dan is de oplossing om met het HPFS386.IFS stuurbestand te rebooten en op het LAN in te loggen als de OS/2 systeembeheerder. En ook voor het maken van (volledige) backups moet u beheerder zijn.

Om die reden moet u na een update van HPFS naar HPFS386 ook de nog naar HPFS verwijzende CONFIG.SYS in \OS2\ARCHIVES\0X\ en vooral \OS2\BOOT\CONFIG.X voor HPFS386 aanpassen (Zie: De Alt-F1 methode). Hetzelfde geldt voor bootdiskettes (zie: Al Savage).

Bij een resize met PartitionMagic gaan de bestandspermissies van HPFS386 verloren. De oudere PQMagic versies t/m 6 ondersteunden HPFS, maar geen enkele versie ondersteunt HPFS386. Wilt u ze behouden, dan zult u van tevoren onder HPFS386 een backup van de Access Control Lijsten (ACL) moeten maken met \IBMLAN\NETPROG\BACKACC. Na de resize zal RESTACC ze herstellen.

HPFS386 kan gebruik maken van partities tot 64 GIB, maar de maximale bestandsgrootte blijft 2 GIB. Dit zijn de specificaties van HPFS. In feite zijn de HPFS386 IFS stuurbestanden (en de cache) op iedere gewone HPFS schijf te gebruiken. HPFS386 is hier slechts een variant van. De situatie is te vergelijken met de 32 bits varianten vFAT (W9x) en Super FAT (OS/2) van het 16 bits FAT van DOS.

Let op: Benadert u grote partities (bijv. van 32 GIB) onder HPFS386, zorg er dan voor dat deze niet onder de /AUTOCHECK parameter vallen, want op de chkdsk van een 30 (of ? minder) GIB schijf kan het HPFS386.IFS stuurbestand vastlopen. Boot daarom van een 1-4 GIB vaste schijf en controleer een > 30 GIB HPFS(386) schijf vanaf OS/2.

Second Extended File System

> Top <

Het Second Extended File System (EXTFS2, EXT2) is door Rémy Card en Wayne Davison ontworpen. Het was lange tijd de standaard in de Linux wereld. De eerste versie (EXTFS, 1992) is van het Minix bestandssysteem (Minix FS) afgeleid. EXTFS liet bestandsnamen van 255 tekens in plaats van 14 tekens toe en nam de 64 MIB partitie limiet van het Minix bestandssysteem weg. De tweede versie, het huidige EXT2FS (1993), kende verbeteringen in bestandsallocatie, bestandstoewijzingen en -permissies en was uitbreidbaar tot vele terabytes.

Ext2/3 Blokgrootte

Bestandsgrootte

Maximale grootte bestandssysteem

1 KiB

16 GIB (2^34 bytes)

2 TB (2^41 bytes)

2 KiB

256 GIB (2^38 bytes)

8 TB (2^43 bytes)

4 KiB

2 TB (2^41 bytes)

16 TB (2^44 bytes)

8 KiB (alfa)

2 TB (2^41 bytes)

32 TB (2^45 bytes)

EXT2FS heeft veel met HPFS gemeen. De belangrijkste overeenkomst is de gedecentraliseerde organisatie van het bestandssysteem in kleinere functionele eenheden - banden (HPFS) en groepen (EXT2FS), die gelijkmatig verdeeld zijn over de partitie. Deze organisatie plaatst bestandsinformatie dicht bij de bestanden, waardoor harde schijf koppen minder hoeven te bewegen. Bewegingen van harde schijfkoppen bij het lezen en schrijven vertragen de snelheid van multitasking systemen in hoge mate.

FAT32

EXT2FS

HPFS

Toelichting

Clusters (4 KiB)

Ja (1,2,4,8 KiB)

Ja (0,5 KiB)

Bestanden worden in blokken opgeslagen.

Nee

Groups

8 MIB Bands

De blokken zijn geordend in groepen.

centrale FAT tabel

Inodes

File nodes

Bestandsinformatie (over een bestand of map) wordt lokaal in een inode bij het bestand opgeslagen. Bij FAT gebeurt dit centraal (in de File Allocation Table).

Nee

Ja

Ja

Allocatie algoritmen voorkomen defragmentatie van bestanden.

Nee

Ja

Ja

Locale Bitmaps traceren de vrije ruimte ter plekke.

Het EXT2 bestandsysteem geldt onder Linux en BSD als zeer betrouwbaar. Omdat het al zo lang bestaat en intensief is gebruikt, zijn alle fouten in de stuurbestanden en de bijbehorende utilities (e2fschk) inmiddels wel verholpen. Dat geldt natuurlijk niet voor de Ext2 stuurbestanden van Windows en OS/2 die hieronder besproken worden. Een nadeel van EXT2 is dat een schijfcontrole erg lang duurt, omdat alle bestanden en mappen worden gecontroleerd.

Voor Windows 9x is er een prille bèta VXD driver beschikbaar. Sinds kort is een freeware Win32 EXT2 driver die ook onder NT werkt: http://uranus.it.swin.edu.au/~jn/linux/explore2fs.htm. Deze driver toont slechts Ext2 partities binnen de 1024e cylinder (de driver benadert de schijf blijkbaar via het BIOS).

Voor BEOS : The Linux Ext2 Filesystem Driver for Be.

Enige typische eigenschappen van het EXT2FS (en Linux) zijn:

Dankzij Matthieu Willm is sinds 1996 Ext2 als een Installable File System onder OS/2 te gebruiken (Read-Write Access to Linux Partitions Under OS/2). Maar bij recente versies van OS2DASD.DMD (Warp 4 FP13, eComStation) geeft het voor de vFAT en EXT2 IFS stuurbestanden benodigde stuurbestand MWDD32.SYS problemen bij het laden van de CONFIG.SYS. Om dit te voorkomen moet u bij toepassing van een fixpack dit stuurbestand remmen! Zet de oude OS2DASD.DMD apart. Na toepassing van recente fixpack kunt u met de oude OS2DASD.DMD de vFAT en EXT2 drivers weer activeren, maar mist u de voor JFS benodigd LVM eigenschappen van de FP13 OS2DASD.DMD.

Meer info:

Design and Implementation of the Second Extended Filesystem

Ext2fs Home Page



New Technology File System

> Top <

De huidige (3.x) versies van het New Technology bestandssysteem (NTFS) werden voor het eerst gebruikt door Windows NT 4 en Windows 2000 bèta.

NTFS 3.x is een bijzonder krachtig bestandssysteem. Het maakt gebruik van de door Microsoft voor HPFS386 ontwikkelde Security Access Control Lists (ACL), maar is daarnaast een journaling file system dat veel grotere bestanden kan opslaan dan HPFS386.

NTFS maakt evenals FAT gebruik van clusters, maar deze clusters mogen net als HPFS(386) eventueel 512 bytes (=1 sector) zijn, zodat verspilling t.o.v. FAT (en FAT32) gering kan zijn. NTFS is echter bedoeld voor grote schijven (> 400 MIB) met veel Input Output operaties waar grotere clusters (default 4 KB) worden ingezet.

New Technology File System versie 5

> Top <

Windows 2000 en XP maken altijd gebruik van NTFS versie 5 (NTFS5). Windows NT 4 kan er vanaf Service Pack 4 mee overweg. NTFS 5 heeft veel veiligheidsopties zoals quota en encryptie van data. Deze zijn alleen onder Windows 2000 en XP te gebruiken.

Het NTFS van Windows 2000/XP (2000) zou in Windows SVista opgevolgd worden door het op een relationele database gebaseerde Windows Future Storage (WinFS), maar dat kwam er niet van.



Meer info: A File System for the 21st Century: Previewing the Windows NT 5.0 File System

Voor informatie over NTFS en NT: Windows NT FAQ - File Systems .

NTFS drivers

Wininternals Software heeft een gratis NTFS read-only driver en payware NFTS-DOS drivers voor Windows 9x en DOS.

De OS/2 NTFS driver van Daniel Steiner op de: Windows NT NTFS file system support for OS/2 (NTFS-OS2) home page). Een OS/2 config.sys ingang zou kunnen zijn:

IFS=C:\VFAT\vfat-os2.ifs -cache:256 -errors=continue -NTFS -q
RUN=C:\VFAT\vfat_lw.exe

Tegenwoordig maakt eComstation (OS/2) gebruik van een stabiele ReadOnly NTFS.IFS. Er wordt door Russische ontwikkelaars aan een bootable OS/2 NTFS driver gewerkt.

Er was een alleen lezen NTFS filesystem for Linux by Martin von Loewis. In kernel 2.2.10 kunt u ook een experimentele schrijfoptie voor NTFS inbouwen. Het stuurbestand heeft zo ongeveer dezelfde status als de HPFS stuurbestand van Linux. Een poging om op een Windows 2000 NTFS5 schijf "My Linux" te kopieren resulteerde echter in een Segmentation Fault. Voor zover ik kon nagaan is de niet in de laatste kernel ingebakken HPFS R/W driver stukken betrouwbaarder dan de NTFS5 R/W. Maar misschien verandert het met het Linux-NTFS Project.

Linux-NTFS Project : De open source NTFS driver voor Linux. De laatste Linux kernel drivers kunnen NTFS "with no fault-tolerance support" goed lezen. Maar schrijven blijft een probleem.

NTFS-3G Stable Read/Write Driver

Paragon NTFS for Linux : De partitie en bestandssystemen expert firma Paragon heeft een betrouwbare (closed source) NTFS read write driver voor Linux. Paragon kreeg wel toegang tot de NTFS broncode. Overigens kan een regelmatige schijfcontrole vanuit Windows geen kwaad.

Jan Kratochvil: Captive: The first free NTFS read/write filesystem ... : De truc van Jan Kratochvil bestaat eruit dat hij de Windows NTFS driver onder Linux gebruikt. Het is dus alleen "free" voor Windows gebruikers.

The ntfsresize Frequently Asked Questions gaat een open source programma dat steeds meer deel uitmaakt van Linux distributies.

NTFS.com NTFS File System. Data Recovery Software :

How to Locate and Correct Disk Space Problems on NTFS Volumes

Een bestandssysteem kiezen NTFS, FAT of FAT32 : Kies altijd voor NTFS tenzij u bestanden met FAT32 besturingssystemen met bijv. Windows 9x/ME of Linux moet delen. Maak voor die gedeelde gedeelde bestanden een aparte FAT32 datapartitie aan waarvan u regelmatig een backup maakt. Maar zet uw Windows systeemmappen (Windows, Program Files) nooit op het internet te kijk op dit verouderde en vrij voor virussen toegankelijke FAT32 bestandssysteem. Zie : Nieuwe Windows technologie.

Voor BEOS bestaat (bestond?) er een readOnly NTFS Filesystem Driver for e .


Logbestanden schrijvende bestandssystemen

> Top <

Stel u bent uw autosleutel kwijt. Dat is nog geen reden om de hele stad op de verloren sleutel te doorzoeken. Waarschijnlijk loopt u precies dezelfde weg naar de auto terug als u heengegaan bent, in de hoop dat u de sleutel op uw pad zult aantreffen.

Een checkdisk die op de klassieke manier naar verloren bestanden zoekt, doorzoekt echter de hele schijf naar plaatsen waar het mis gegaan kan zijn. Zo'n checkdisk van alle bestanden kan op een grote server met een Ext2 of HPFS386 bestandssysteem uren tot dagen duren.

Een Journaled File System (JFS, XFS, BeFS, Ext3, NTFS 5 en het ReiserFS) houdt een logbestand (journaal) van de laatste schrijftransacties bij. De actie kan uit het logbestand gewist worden zodra de actie is voltooid. Bij fouten of na een verplichte schijfcontrole na een harde reset wordt eerst het logbestand geraadpleegd. Met de gevonden informatie kan terstond een snelle, lokale hersteloperatie plaatsvinden zonder de hele schijf op fouten te controleren.

Checking file systems...
Parallelizing fsck version 1.19a (13-Jul-2000)
/dev/hda3 was not cleanly unmounted, check forced.
/dev/hda3:
Special (device/socket/fifo) inode 1473797 has non-zero size. FIXED.
/dev/hda3: |================================================= | 87.5%

Logbestanden schrijvende bestandssystemen zijn ontworpen voor de (web)server markt, waar langdurige onderbrekingen door schijfcontroles en uitbouwen van de capaciteit tijd, geld en klandizie kosten. Vaak is het ook mogelijk om zonder de server te rebooten vaste schijven toe te voegen. Maar ook de overheid, een ziekenhuis of het bedrijfsleven kunnen er al hun voordeel mee doen. En ook op de grote schijven van particulieren. Daarom zijn ze inmiddels standaard op alle moderne besturingssystemen van XP tot Linux.

Afhankelijk van de mate waarin logbestanden schrijvende bestandssystemen de schrijftransacties bijhouden zijn ze meer of minder trager dan gewone bestandssystemen die alleen maar de bestanden en de bestandsstructuur bijwerken. De vertraging is vooral merkbaar bij het schrijven van grote hoeveelheden kleine bestanden. Leesacties werken ze normaal af.

Maar het grote voordeel is dat een hersteloperatie gemakkelijker en veiliger verloopt omdat het schijfcontroleprogramma minder hoeft te gissen naar de oorzaken van fouten in het bestandssysteem.

Meer informatie

Journal File Systems : overzichtsartikel van Juan I. Santos Florido (Linux Gazette #55, July 2000)

Interview With the People Behind JFS, ReiserFS & XFS - OSNews.com

SGI - Developer Central Open Source | Linux XFS

Journaled File System

> Top <

De opvolger van HPFS386, het Journaled File System (JFS) van IBM, is onderdeel van de Aurora OS/2 Warp Server (mei 1999) en eComStation (2000). De file journaling techniek van JFS kwam van IBM's RS6000 AIX.

Op deze mission critical UNIX server geldt een "dit is een deal of er is niets gebeurd" transactiemodel. Oftewel: een schrijfactie gaat door of alles blijft bij het oude als de schrijfactie door een fout of crash wordt afgebroken.

Dit transactiemodel wordt ook op Microsofts laatste NTFS bestandssystemen gebruikt, maar IBM besloot JFS open source te maken. Het paste in IBM's strategie om haar servers voor Linux toegankelijk te maken. Maar dat kan alleen als Linux het JFS bestandssysteem betrouwbaar kan lezen en beschrijven. Dat is inmiddels het geval.

In 2000 werd de Linux broncode bekend gemaakt. In juni 2001 kwam JFS versie 1.00 voor Linux uit. Russen werkten aan een FreeJFS voor OS/2 4.5 kernels (Russian/2 - FreeJFS) die het ook onder Warp 4 met FP14 moest doen. En zelfs zonder een Logical Volume Manager. JFS leek een veelbelovend open source bestandssysteem.

Toch heeft het nog lang geduurd voordat OS/2 en Linux veilig elkaars bestanden op JFS konden delen. Pas in 2003 kwamen meldingen op comp.os.os2.* van succesvol door Linux en OS/2 gedeelde JFS partities, maar nog meer meldingen van data- en partitieverlies. De open source Linux versies liepen ver op de officiële en helaas closed source IBM OS/2 versies achter. En hoewel JFS voor OS/2 al sinds 1998 op Warp Server voor eBusiness is gebruikt, vertrouwen nog maar weinig OS/2 gebruikers hun partities aan JFS toe. Hoe zit dat?

Het Journaled File System is niet ontworpen voor noden van de OS/2 thuisgebruiker met een Windows OEM multiboot PC, maar voor servers met slechts een besturingssysteem (OS/2 Warp Server, AIX, Linux). Een harde compatibiliteits vereiste geldt slechts voor de read only bestandssystemen (CD en DVD).

JFS ondersteunt het centraal beheer van data verdeeld over meerdere partities en schijven.

Verschillende LVM volumes kunnen door de Logical Volume Manager tot één stationsaanduiding worden samengevoegd. Op die manier kunnen als JFS geformatteerde partities (type 35) zonder een reboot aan de stationsaanduiding van een bestaand LVM volume worden toegevoegd. De data op de toegevoegde partitie raakt u kwijt (van tevoren backuppen!), maar die ruimte komt daarna voor het LVM volume beschikbaar.

Maar als één onderdeel van zo'n over meerdere partities en schijven vertakt LVM station uitvalt, hebt u een groot probleem. Het verwijderen van één onderdeel van een samengesteld LVM station (bijv. om een vaste schijf te vervangen) is niet mogelijk zonder verlies van alle data. Backups blijven essentieel.

Verder is JFS nog steeds in ontwikkeling. Er zijn verschillende versies in omloop, die met elkaar overhoop kunnen liggen. Op de JFS project Web site is steeds de laatste Linux versie op te halen.

Afzonderlijk JFS partities (type 35) kunnen vanuit Linux en OS/2 benaderd worden, maar voor logische JFS volumes die uit meerdere partities op een of meerdere schijven bestaan geldt dat ook de Logical Volume Managers compatibel moeten zijn. Maar dat zijn de Logical Volume Managers niet.

Om die reden moet u nooit van logisch samengestelde volumes gebruik maken als u het volume onder Linux en OS/2 gebruiken wilt.

Informatie over het JFS vindt u lokaal in IBM's "JFS/LVM Technical White Paper" in Lotus WordPro en Winword 6 formaat. Een goede introductie voor OS/2 is Short Introduction to LVM and JFS.

Enige evidente voordelen van JFS ten opzichte van HPFS zijn:

Nadelen van de OS/2 versie van JFS zijn:

De 64 bits API van JFS verdient enige toelichting. OS/2 is immers een 32 bits besturingssysteem. Het biedt ondersteuning voor 8 bits DOS, 16 en 32 bits OS/2 en Windows (Win-OS/2, Odin) applicaties, maar niet voor 64 bits code. De klassieke OS/2 API ondersteunde slechts een bestandsgrootte van 2 GIB. Dat was tevens de maximale bestandsgrootte van FAT en HPFS.

Met JFS en de Warp Server voor eBusiness (Aurora) kernel kwam daar verandering in. Maar dat betekent niet dat alle OS/2 programma's nu honderden gigabytes grote logbestanden en databases kunnen aanmaken. Dat kunnen ze pas als ze de 64 bits JFS API ook aanroepen. Hiervoor moeten ze deels worden herschreven en gecompileerd. En dat zijn de meeste OS/2 programma's nog niet. Om die reden zult u nog vaak tegen de 2 GIB grens aanlopen.

Op dit moment kunt u nog geen JFS bootpartities aanmaken. Belemmeringen bij het bootproces spelen ook onder Linux met het ReiserFS en JFS, maar Linux distributies bieden u wèl de mogelijkheid om al tijdens de installatie aparte /boot (Ext2), swap en /root (ReiserFS) aan te maken. Daarna hoeft u zich niet meer om de paden te bekommeren. Maar onder OS/2 zult u er steeds op moeten toezien dat uw programma's op JFS terecht komen.

In Installing eComStation on a JFS Volume worden methodes beschreven om 99% van OS/2 vanaf een JFS volume te draaien : JFS was toen nog niet bootable, maar u kon OS/2 of eComStation vanaf een mini FAT of HPFS bootpartitie booten en daarna met een grote JFS cache werken. Voor bedrijven zijn er netwerkoplossingen voor dit probleem (RIPL, DHCP/PXE).

Omdat JFS nog in ontwikkeling is, kan het zijn dat u een JFS partitie of volume met de ene versie aanmaakt (bijv. de eCS bèta uit 2000) en na een update met een andere versie benaderd. In principe zou een JFS update de bestandsstructuur zelf niet mogen beïnvloeden (die zal aan nauwkeurige specificaties moeten voldoen), maar u loopt altijd het risico dat de eigenschappen (features) van een bestandssysteem niet alleen berusten op zijn specificaties maar ook afhankelijk zijn van de implementatie. In principe zou je dan moeten spreken van een zwakke implementatie. Maar het is feit dat de eerste JFS 1.0+ implementaties onder Linux niet compatibel bleken te zijn met de JFS implementatie van OS/2.

In 2003 zag ik de eerste berichten van gedeeld gebruik van JFS onder Linux en OS/2. Met een 2.4.20 SuSE Linux kernel kon ik een onder OS/2 aangemaakte solitaire JFS partitie van 30 GIB (type 17) onder Linux benaderen (Zie: JFS onder OS/2 en Linux). Om dit te kunnen doen moet u de blocksize op 4K zetten. Maar dit is ook OS/2 default.

Toch verwacht ik dat het nog enige tijd zal duren voordat de diverse JFS implementaties (m.n. die voor OS/2 en Linux) mission critical op een multiboot PC inzetbaar zullen zijn. JFS heeft zeker onder OS/2 nog niet de stabiliteit van het ReiserFS dat ik onder Virtual PC en op mijn Linux server (P75!) gebruik. JFS mag dan wel goed draaien op een door een systeembeheerder bewaakte Aurora server, maar misschien stelt een OS/2 multiboot Desktop PC wel de hoogste eisen. Die moet immers echt idioot proof zijn. Een OS/2 server die van HPFS boot en JFS gebruikt voor de transacties heeft immers een andere CONFIG.SYS dan de gemiddelde OS/2 Desktop PC waar allerlei bèta en alfa drivers te vinden zijn. Op dit moment loopt u bij iedere installatie van een ander besturingssysteem, groot gevaar dat de complexe opbouw van het JFS bestandssysteem wordt gecorrumpeerd. In dit verband werd vooral Linux genoemd. Ik kan het dus nog niet op de multiboot PC aanbevelen.

Een JFS volume - van partitie kun je niet spreken; een volume kan uit meerdere partities bestaan - wordt met de Logical Volume Manager van Warp Server voor eBusiness of eComStation aangemaakt. Met de LVM wordt er een schijfletter aan toebedeeld. Daarna wordt de door LVM toebedeelde harde schijf ruimte geformatteerd.

[H:\]format i: /fs:jfs

Waarschuwing!

Alle informatie in partitie i:

van de vaste schijf zal verloren gaan!

Starten met formatteren (J/N) ? j

Typ een volume-label van maximaal 11 tekens of

druk op Enter als u geen volume-label wilt: jfs

100% van de schijf is geformatteerd.

Het formatteren is voltooid.

4466038 kilobyte totale schijfruimte

4446588 KiB beschikbaar.

Na installatie moet u de /CACHE waarde in kilobytes van de IFS opdracht handmatig aanpassen. Standaard gebruikt de driver 1/8 van het fysieke RAM en dat kan fors uitvallen voor een experimentele schijf.

IFS=H:\OS2\JFS.IFS /CACHE:1024 /AUTOCHECK:*

Onder AIX wordt de JFS/LVM techniek al jaren gebruikt, maar op dit moment is JFS onder OS/2 nog onvoldoende betrouwbaar om er belangrijke data aan toe te vertrouwen. Een recente fix voor eComStation bèta gebruikers is: jfs0328.zip.

IBM heeft de broncode van het JFS vrijgegeven aan de Open Source gemeenschap. JFS for Linux kwam in 2002 in de Linxux kernel. Er was ook een open source versie van de Russian/2 - FreeJFS voor OS/2 te downloaden. Deze heeft de Warp 4.5 kernel nodig. Drivers voor Windows zijn mij nog niet bekend, maar het open source principe schept hiertoe wel de ruimte. IBM heeft ongetwijfeld van HPFS debacle geleerd. HPFS was weliswaar superieur aan FAT16 en 32, maar werd geboycot door Microsoft, die de NT drivers voor HPFS verwijderde.

JFS Cookbook

Journaling File Systems (Linux Magazine / October 2002)

JFS overview

OS/2 Filesystem Shootout : A Tale of Intrigue and Discovery by Michal Necasek, March 2002

Het Reiser File System

> Top <

Voor Linux was het door Hans Reiser ontwikkelde Reiser bestandssysteem het eerste veilige loggende bestandssysteem. Maar omdat het geen open source was maakte het lange tijd geen onderdeel uit van de Linux kernel. Het kon alleen via een patch worden geactiveerd. Hield u hier bij het compileren van een nieuwe kernel geen rekening mee, dan zag u een kernel panic na het opstarten. Pas in 2001 werd het reiserfs in de linux kernel (2.4.1) opgenomen.

SuSE Linux maakt al sinds versie 6.4 (2.2 kernel) gebruik van het Reiser bestandssyteem. Het bestandssysteem bevalt me goed. Het is bijzonder snel en kan de meeste fouten vlot snel herstellen.

De bestandssysteemstructuur is op een flexibele database gebaseerd. Hans Reiser noemt dit een B*-balanced tree. Het lijkt op wat Microsoft in Windows Vista met het WinFS hoopte te bereiken, maar keer op keer uitstellen moest.

Klassiek wordt de structuur van een bestandssysteem van te voren vastgelegd in basiselementen (clusters) met een vaste grootte. Deze clusters zijn een binair meervoud (1,2,4,8...) van de 512 bytes kleine minimale sectoren die de vaste schijf opslaan kan. Tegenwoordig is 4 KiB (8x de sectorgrootte) een gangbare clustergrootte. Een bestand van 7,9 KiB bevat dan 16 sectoren (2 clusters van 4 KiB) en een bestand van 0,1 KiB gebruikt 4 KiB schijfruimte, waarbij de niet beschreven 3,9 KiB als onbenutte "slack diskspace" bekend staat.

Deze verspilling van schijfruimte zien we ook in een database waarin de velden een vaste lengte hebben, maar niet in de doorgaans minder snel te sorteren databases met velden met een variabele spanwijdte (variabel width). Rekenkundige snelheid wordt vooral bereikt in databases en bestandssystemen die symmetrisch zijn opgebouwd.

Maar doordat de processor relatief sneller snel werd dan de vaste schijf, met de grotere schijven de variatie in de bestandsgroottes toenam en er ook slimmere algoritmes kwamen om flexibeler met clusters om te gaan, bleek het variable width principe van Hans Reiser uiteindelijk sneller te werken dan een standaard indeling in vaste clusters.

Enige bijzondere eigenschappen van het op een database gebaseerde Reiser3 bestandssysteem zijn:

Toch zal er na het abrupt uitschakelen van de computer wel eens kernel panic kan voorkomen. De kernel moet immers de in fstab vermelde partitie aankoppelen en als hier problemen bij optreden, weet de kernel niet meer wat hij moet doen. Doorgaan op de verkeerde weg leidt tot dataverlies. Fouttolerantie en kent zijn grens. Op een zeker moment is een bestandssysteem niet meer als betrouwbaar (clean) te beschouwen.

SuSE Linux schakelt in dat geval (kernel panic) over naar een reddingssysteem op een ram-disk in single-user mode, waarbij de beheerder root zijn wachtwoord opgeven. Via een mededeling op het scherm wordt een handmatige (manuele) controle afgedwongen.

fsck.reiserfs /dev/hda5 failed (status 0x4). Run Manually.



U formatteert een Reiser partitie met de opdracht mkreiserfs:

<-----------MKREISERFS, 2000----------->
ReiserFS version 3.5.29

Usage: mkreiserfs [ -f ] [ -h tea | r5 ] device [block-count]

root@zolder:/etc > mkreiserfs /dev/hdb5

<-----------MKREISERFS, 2000----------->
ReiserFS version 3.5.29
Block size 4096 bytes
Block count 589672
First 16 blocks skipped
Super block is in 16
Bitmap blocks are :
17, 32768, 65536, 98304, 131072, 163840, 196608, 229376, 262144, 294912,
327680, 360448, 393216, 425984, 458752, 491520, 524288, 557056
Journal size 8192 (blocks 18-8210 of device 0x3:0x45)
Root block 8211
Used 8229 blocks
Hash function "r5"
ATTENTION: ALL DATA WILL BE LOST ON '/dev/hdb5'! (y/n)y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..

ReiserFS core development sponsored by SuSE Labs (suse.com)

Journaling sponsored by MP3.com.

To learn about the programmers and ReiserFS, please go to
http://www.devlinux.com/namesys

Have fun.

root@zolder:/etc >



Meer informatie: http://www.namesys.com/

Het EXT3 Journaling Filesystem

> Top <

Het EXT3 Journaling Filesystem van Stephen Tweedie is te zien als een uitbreiding van Ext2. Waar Reiser FS een geheel nieuw bestandsformaat is, blijft Ext3 in hoge mate compatibel met Ext2. Wat het toevoegt is de Journaling functie die u lange fsck's bespaart. Deze functie moet in de kernel zijn geïmplementeerd (standaard vanaf v. 2.4.16).

EXT3 ondersteunt de door OS/2 samba clients benodigde uitgebreide attributen van 64 KB niet. Hiervoor worden Reiser, JFS en XFS aanbevolen.

Voordat u Ext2 als Ext3 kunt loggen moet het logbestand worden aangemaakt:

tune2fs -j /dev/hda5

Via de J optie kunnen niet standaard waarden worden ingevoerd (zie man tune2fs).

Daarna kan een Ext2 volume als Ext3 gemount worden:

mount -t ext3 /dev/hdaN /mnt/hda5

Voert u de opdracht tune2fs -j op een lopend systeem uit, dan past u eerst /etc/ fstab aan (ext2 veranderen in ext3) en voert dan een reboot uit.

EXT3FS kan de transacties op de schijf op verschillende manieren loggen.

data=journal

Met de fstab optie data=journal worden zowel de veranderingen/bewerkingen van uw data (uw bestanden) als de metadata (waar zit het precies in de bestandsstructuur), gelogd. Deze methode voorkomt dataverlies na een crash, maar werkt niet zo snel als twee andere methoden, waarin alleen de wijzigingen in de metadata (de bestandsstructuur) worden gelogd.

data=ordered mode

Bij de standaard fstab-optie data=ordered mode, worden de veranderingen/bewerkingen van uw data eerst op de schijf uitgevoerd, voordat de "transactie" afgesloten wordt door de metadata in het logboek te schrijven.

data=writeback

Met de data=writeback kunnen data nog naar bestandssysteem geschreven worden, terwijl het logbestand met de metadata al aangepast is (snel, maar minder veilig).



Uit de de Readme van versie 0.0.7a:

How to move back from ext3 to ext2
----------------------------------
It's quite easy. If you unmount an ext3 filesystem cleanly, then you can remount it as ext2 without any other commands. If you crash and are left with an unclean ext3 filesystem, on the other hand, the filesystem will prevent you from mounting it as ext2: it is not safe to mount it until you have recovered the journal, and the only way to do that for now is to mount it as ext3.

Meer info:

EXT3 Journaling Filesystem

Linux ext3 FAQ

Exploring the ext3 Filesystem

Whitepaper: Red Hat's New Journaling File System: ext3



Het XFS bestandssysteem

> Top <

XFS is een door Silicon Graphics (SGI) ontworpen 64-bit journaling bestandssysteem. Het diende op de met IRIX operating systeem uitgeruste werkstations en servers. In 2000 maakte SGI het open source (GPL). De meeste Linux distributies zullen het ondersteunen.

XFS is erg snel en werkt goed met grote bestanden, maar bij het loggen staat de integriteit van het bestandssysteem voorop. Daarom logt het veranderingen in de metadata, maar geen data.

XFS deelt de schijf op in meerdere allocatiegroepen. Een allocatiegroep is in zekere zin te vergelijken met een pseudo-partitie: de allocatiegroep beheert zijn eigen inodes en vrije ruimte via een snel toegankelijke B+-tree. Hierdoor zullen bestanden uit dezelfde map fysiek dichter op elkaar komen te staan en kunnen de allocatiegroepen min of meer zelfstandig werken.

XFS voorkomt bestandsfragmentatie door van te voren vrije ruimte voor een bestand te reserveren. Natuurlijk werkt dit alleen op al te volle schijf. De voorgenomen schrijfacties worden tot het laatste moment uitgesteld (delayed allocation). Sommige tijdelijke bestanden hoeven op die manier nooit naar de schijf te worden geschreven.

XFS ondersteunt de door OS/2 samba clients benodigde uitgebreide attributen van 64 KB.



SGI - Developer Central Open Source | Linux XFS





Linux swap

> Top <

Een Linux swappartitie is met opzet een primitief systeem. Het gaat om ruig geprepareerde schijfruimte, waarop de Linux kernel geheugenpagina's dumpt om ze later weer in het geheugen te laden.

Linux kon vroeger acht "old style" swap areas van maximaal 128 MIB op het i386 platform benutten (dit verschilt per platform). Tegenwoordig is de 2 GIB de bovengrens (zie man mkswap).

Het bevat geen bestanden, laat staan een echt bestandssysteem. Het commando "mkswap" om de swappartitie (hex type 82) te "formatteren" wordt tevens gebruikt om een swapfile op een reeds geformatteerde partitie aan te maken. Bad blocks moeten natuurlijk worden aangegeven. Maar de overhead van een echt bestandssysteem met een gecompliceerde directory structuur met permissies e.d. ontbreekt. Daarom is een swappartitie veel sneller dan een swapbestand op Ext2.

Virtuele bestandssystemen

> Top <

Virtuele bestandssystemen

Een virtueel bestandssysteem presenteert mappen of stationsletters op uw computer zonder dat er een directe één-op-één verbinding met de bestandsstructuur van een bestandssysteem van een partitie op uw vaste schijf voor bestaat. Uw mappen en bestanden zitten dus niet altijd op de plaats in de bovenliggende map waar ze schijnen te zijn.

Dit is het best te bestuderen aan de hand van het virtuele bestandssysteem van UNIX en opvolgers.

Het virtuele bestandssysteem van UNIX

Onder UNIX (Linux , BSD, etc) bestaan geen driveletters zoals onder DOS, maar worden de partities en drive stations onder een root directory ondergebracht. Dez map heeft de benaming /. Ik laat u een stukje ervan zien:

sjoerd@zolder:~> cd /
sjoerd@zolder:/> ls -ila
totaal 37
     2 drwxr-xr-x   25 root   root   592 2008-04-01 00:17 .
     2 drwxr-xr-x   25 root   root   592 2008-04-01 00:17 ..
    55 drwxr-xr-x    2 root   root  2896 2007-09-05 18:02 bin
    56 drwxr-xr-x    3 root   root  1456 2008-01-09 23:37 boot
  1624 drwxr-xr-x   11 root   root 16080 2008-03-31 22:15 dev
     4 drwxr-xr-x   90 root   root  7816 2008-03-31 20:47 etc
 39346 drwxr-xr-x   89 root   root  7712 2007-08-16 01:18 etc1
     2 drwxr-xr-x   12 root   root   304 2007-08-25 11:08 home
   102 drwxr-xr-x   11 root   root  4024 2008-02-18 21:11 lib
    17 drwxr-xr-x    4 root   root    96 2007-01-10 22:02 media
   106 drwxr-xr-x   20 root   root   528 2008-03-02 13:53 mnt
   107 drwxr-xr-x    8 root   root   200 2007-05-21 09:41 opt
     1 dr-xr-xr-x  109 root   root     0 2008-03-31 22:27 proc
   108 drwx------   23 root   root  1144 2008-03-06 17:03 root
   111 drwxr-xr-x    3 root   root  8144 2008-02-18 21:10 sbin
190000 drwxr-x---   66 squid  root  1616 2008-03-31 20:30 squid
   113 drwxr-xr-x    4 root   root    96 2006-11-23 22:52 srv
113675 drwxr-xr-x    2 root   root    48 2005-09-09 11:59 subdomain
     1 drwxr-xr-x   10 root   root     0 2008-03-31 22:27 sys
   118 drwxrwxrwt   34 root   root  2592 2008-04-01 00:15 tmp
   121 drwxr-xr-x   12 root   root   344 2006-11-23 23:03 usr
 15792 drwxr-xr-x   14 root   root   360 2007-06-01 22:17 var
304539 drwxr-x---   25 wwwrun root   656 2008-03-31 20:30 wwwoffle 

De rootmap bevat altijd de submap /boot. Maar nu bevindt deze map zich niet op de hier afgebeelde rootpartitie. De submap /boot is eigenlijk de rootmap (/) van een aparte Linux bootpartitie die voor de OS/2 bootmanager en het BIOS binnen de 1024e cylinder van een vaste schijf moet zitten. Dit aan elkaar koppelen van verschillende bestandssystemen (mounten) wordt in de de File System Table geregeld.

In feite gebruikt dit Linux systeem twee vaste schijven, waarbij de map /home zich op een andere schijf bevindt. Met een NFS client zou ik /home ook op een NFS of Samba server op een andere computer kunnen mounten. Net zoals een op het Novell Netwerk Operating System (Novell NOS) ingelogde Windows gebruiker zijn onder de Windows Novell NDIS client gemapte (lees: gemounte) home directory op de Novell server zal benaderen. Zolang het netwerk loopt lijkt het alsof je alles op je huidige PC doet. Maar gelukkig zijn je data op de NFS, NDIS of SMB domein server niet verloren als je Windows PC het begeeft.

Daarnaast bevat het Unix bestandssysteem nog veel meer foefjes. Want wat denken van de map device? Deze virtuele map bevat niet zozeer definitief op de vaste schijf opgeslagen informatie, maar de dynamische informatie van de kernel. Wis de map /dev/disk en u zult zien dat hij na een reboot weer wordt aangemaakt. Open een bestand als root met mc en u ziet: Bekijken niet mogelijk: geen normaal bestand. Inderdaad: het is een virtueel bestand, een verwijzing naar de hardware zoals de COPY CON opdrachten onder DOS en opvolgers.

RAM schijven

Een RAM schijf is een deel van het systeemgeheugen dat als schijfletter te benaderen is. De schijfletter wordt aangemaakt met behulp van een stuurbestand dat meteen ook een virtueel bestandssysteem in het geheugen aanmaakt. Programma's denken dat ze naar de vaste schijf schrijven, maar in feite schrijven ze naar het geheugen. Het gaat daarom om een virtueel bestandssysteem.

Tegenwoordig worden RAM schijven bijna niet meer gebruikt. Dat heeft vooral te maken met verbeterde ingebouwde (hardware) vaste schijf cache en software cache technieken. Een vaste schijf cache gaat veel efficiënter met het geheugen om dan een RAM schijf door alleen de (waarschijnlijk) op dit moment meest benodigde bestanden in het geheugen te plaatsen. En dat zijn in de regel de sectoren van de meest recent benaderde bestanden. En via de read-ahead buffers van de cache de schijfsectoren die hier onmiddellijk op volgen. Als er niet teveel schijffragmentatie is, heeft dit het vooraf lezen zeker zin.

Om efficiënt van een RAM disk gebruik te maken moet u van te voren exact weten wat u benodigd heeft. Alleen de essentiele code en data wilt u in uw kostbare RAM plaatsen. Maar het cachen van gegevens die ook door de standaard door de vaste schijf caches gedekt worden heeft niet zoveel nut. Dat is alleen maar dubbel op cachen. Het is zoiets als het instellen van de voor DOS bedoelde ROM cache van het BIOS, voor de door DOS gebruikte ROM BIOS routines emulerende moderne besturingssystemen. Het doet niets of werkt alleen maar vertragend.

Alleen als essentiele en vaak benaderde bestanden niet gecached worden door het besturingssysteem kan het plaatsen van die bestanden in een RAM disk zin hebben. Dit is bijvoorbeeld het geval bij de OS2.INI en OS2SYS.INI van OS/2. Maar dat deze essentiele systeembestanden niet door de HPFS, JFS of FAT caches gespiegeld worden, heeft ook zijn zin.



RAM schijven blijven verder onontbeerlijk op werkstations zonder harde schijf. ROM werkt nu eenmaal niet zo snel als RAM. En ook de netwerkdrives of diskettes waarvan deze systemen booten zijn bepaald niet snel.

En ook bij het installeren van besturingssystemen hebben RAM disks hun nut. Het voordeel van een RAM disk is dat het de installatieprocedure vergemakkelijkt. Het eerst kopiëren van (meestal) gecomprimeerde bestanden van een relatief trage CD of DVD naar een snelle RAM disk maakt dat de code sneller ingelezen wordt. Het besturingssysteem dat de installatie uitvoert



IFS=F:\PROGRAMS\RAMFS101\RAMFS.IFS

SET USER_INI=L:\OS2\OS2.INI

SET SYSTEM_INI=L:\OS2\OS2SYS.INI

RUN=F:\UTILITY\RAMFS\RAMDISK.EXE L: RAMDISK

RUN=F:\OS2\UPDINI.EXE D:\OS2\ 10

Netwerkbestandssytemen

Een netwerkbestandssysteem doet de programmama's ook geloven dat er naar een geformatteerde partitie op de harde schijf geschreven wordt. Maar de harde schijf bevindt zich op een server. De bestanden worden dus niet door de harde schijf controller van de gebruiker weggeschreven, maar via de netwerkkaart naar de de vaste schijf van de server.

Het door vrijwel door alle besturingssystemen te gebruiken Netwerk bestandssysteem (NFS) van SUN wordt in de Linux (NFS) en NFS voor eComStation secties besproken.

Onder OS/2 zijn het Toronto Virtual File System 2.11 (tvfs211.zip, gratis) en het shareware programma Netdrive beschikbaar. Ze hebben met elkaar gemeen dat ze op zich geen data bevatten.

Met het Toronto virtuele bestandssysteem kunt allerlei mappen en bestanden op een TVFS schijf projecteren. Een TVFS schijf kan daarmee fungeren als de root map van het UNIX bestandssysteem. Een verschil met de fysiek altijd wel als een partitie aanwezige is dat een TVFS drive nooit databestanden bevat, maar slechts links naar andere data en mappen.

Free



Toronto Virtual File System is an IFS but it is not a RAM disk. The drives cannot contain any data, only links. So you can link anything, just like with Unix file systems. Files can be linked to a different name on TVFS drives. If a directory is linked, all the files contained will be displayed on the TVFS drive in the linked directory name. Multiple directory can also be linked into one directory on a TVFS drive. These options can all be very useful at times.



Onder Linux is Coda een handig virtueel bestandssysteem (VFS). Bijv. voor laptops en andere computers die niet altijd met het netwerk verbonden zijn. Uit de Linux kernel documentatie:

"Coda is an advanced network filesystem, similar to NFS in that it enables you to mount filesystems of a remote server and access them with regular Unix commands as if they were sitting on your hard disk. Coda has several advantages over NFS: support for disconnected operation (e.g. for laptops), read/write server replication, security model for authentication and encryption, persistent client caches and write back caching."

Een verschil met NFS is dat de client niet een bepaalde map (export) op één server mount, maar via CODA toegang kan krijgen tot een hele reeks van CODA servers (The Coda Distributed File System).


Coda File System

Disk images

> Top <

Disk images zijn één op één afspiegelingen van vaste of verwisselbare schijven in een enkel bestand. Met de Linux opdracht dd (convert and copy a file) maakt u ze aan. Onder UNIX worden hardware block devices (schijven) immers als een bestand afgebeeld. Vandaar dat u er ook een bestandskopie (immage, mirror) van kunt maken.

Maar aangezien een byte voor byte kopie veel bestandsruimte inneemt en de meeste bestanden (laat staan de lege ruimte) goed te comprimeren zijn heeft voor backup doeleinden een gecomprimeerde diskimage de voorkeur. Nortons DiskImage en Symantecs Ghost

De extensie van een verwisselbare schuif is dsk.


ISO bestanden

> Top <

ISO bestanden zijn geen bestandssystemen, maar ruwe (raw) bit voor bit kopieën (images, spiegels) van al dan niet complete partities. Ze kunnen dus ieder bestandssysteem bevatten. Ze zijn populair geworden met de intrede van de beschrijfbare CD ROMs en breedband internet. U "plukt" een ISO bestand van het internet en maakt er met uw CD schrijver een al dan niet opstartbare (bootable) CD met data en/of programma's van.



Universal Disk Format (UDF)

> Top <





Zie: Universal Disk Format - Wikipedia, the free encyclopedia.

RSJ CD Writer File System

> Top <

Een door mij onder OS/2 gebruikt bestandssysteem is het CD Writer File System van RSJ Software.




Comparison of file systems

Universal Disk Format - Wikipedia, the free encyclopedia