Estructura lògica del disc dur

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Introducció

L'estructura física del HDD està formada per sectors. Aquesta caracterísica està determinada pel fabricant, controlada pel firmware i no es pot accedir externament.

Sobre aquesta estructura es forma l'estrucutra lògica que ve determinada pel sistema d'arxius del sistema operatiu (FAT, NTFS, UFS, ext2, ext3).

  • FAT: File Alocation Table. Hi ha versions de 16 i 32 bits (MS-DOS i Windows fins el 98). Encara s'utilitza pels pendrives.
  • NTFS: NT File System (Windows NT, 2000, XP i posteriors).
  • UFS: Unix File System (Sun Microsystems).
  • ext2, ext3, ext4: Second (Third, Fourth) Extended File System (Linux).
  • XFS (IRIX, Linux). Sistema d'alt rendiment per IRIX de SGI (Silicon Graphics) i que es va incorporar en forma de codi obert a Linux el 2000.
  • ReiserFS (Linux).
  • ISO9660 (CDs).
  • UFS (Universal File System) / ISO 13346: millora del ISO9660 per CDs i DVDs.

La mínima unitat d'informació és el cluster, que dependrà el seu tamany de la grandària de la partició.

Per determinar el tamany del cluster ens trobem en un compromís:


Tamany clúster Avantatges Inconvenients
Gran Més rapidesa d'accés a la informació
amb arxius grans
Desaprofitament de l'espai.
Petit Espai de disc més aprofitat
(sobretot amb arxius petits).
Informació més fragmentada
(lentitud d'accés a les dades).

Podem veure a la taula següent, els diferents tamanys de clúster segons el sistema d'arxius. Podem apreciar que pel mateix tamany de la partició, els sistemes d'arxius més moderns fan clústers més petits<ref name="ftn1">Font: Joan COMAS, Manel JOAN; "Instalación y mantenimiento de equipos y sistemas informáticos", Altamar, Barcelona 2005.</ref>:


Tamany del clúster segons el tamany de la partició
Tamany de la unitat:
FAT 16
FAT 32
NTFS
7 – 16 MB
2 KB
No suportat
512 bytes
17 – 32 MB
512 bytes
33 – 64 MB
1 KB
512 bytes
65 – 128 MB
2 KB
1 KB
129 – 256 MB
4 KB
2 KB
257 – 512 MB
8 KB
4 KB
513 – 1024 MB
16 KB
1 KB
1 – 2 GB
32 KB
2 KB
2 – 4 GB
64 KB
4 KB
4 – 8 GB
No suportat
8 – 16 GB
8 KB
15 – 32 GB
16 KB
32 GB – 2 TB
No suportat


El MBR (Master Boot Record)

És el primer sector del disc dur i és un cas especial, ja que s'hi emmagatzema:

  • Codi executable d'arrancada (codi màquina). Màxim de 446 bytes.
  • UUID: Identificador únic del disc dur (opcional).
  • Taula de particions: Hi ha la versió MS-DOS (en desús) i la nova GPT. Cada entrada a la taula de particions conté:
    • Sector inicial.
    • Sector final.
    • Identificador de partició.
    • Flags (boot, sistema, etc.)

Aquesta informació totalitza 512 bytes (acostuma a ser el tamany típic dels sectors i, per tant, el tamany mínim dels clusters).

Gestor d'arrancada

El gestor d'arrancada és el programa (molt curt) enmagatzemat al MBR. Cada sistema operatiu té el seu propi.

  • El gestor d'arrancada Windows busca la partició amb la flag de boot activa i va a buscar allà l'executable del Windows. Si no troba cap partició amb flag de boot actiu, no arrencarà.
  • El gestor d'arrencada de Linux (GRUB o l'antic LILO) ens ofereixen un menú d'arrencada per triar quin Sistema Operatiu volem arrencar, incloent el Windows i diverses versions (nuclis o kernels) de Linux.

Hi ha gestors d'arranc comercials com el BootQuest i d'altres que permeten gestionar diverses particions en Windows.

Particions

Una partició és una divisió lògica del disc dur. Aquestes solen mostrar-se pels sistemes operatius com si fossin diverses unitats de disc, però en realitat estan totes al mateix.

Hi ha 2 tipus de particions:

  • Particions primàries
    • Permeten arranc (boot) del sistema operatiu.
    • Només hi poden haver 4 com a màxim.
    • Una d'aquestes particions pot ser una partició "extesa", capaç de contenir diverses unitats lògiques.
  • Particions lògiques
    • Han d'anar dintre de la partició extesa.
    • Hi pot haver un nombre il·limitat.
    • No poden contenir un sistema operatiu
    • Solen utilitzar-se per contenir
      • Dades
      • Espais temporals d'emmagatzemament (/tmp)
      • Memòria virtual (swap en Linux).


Sistema d'arxius FAT

FAT significa File Allocation Table i va ser creat per Microsoft per ser utiltizat al MS-DOS i els Windows fins la versió 98 (NT, 2000 i XP ja utilitzen el NTFS). Està en desús però encara es pot trobar en màquines antigues amb aquests sistemes operatius o en disquets i algunes unitats Flash. L'estudiarem més en detall que els altres perquè ens permetrà entendre com funciona un sistema d'arxius sense entrar en la complexitat dels més moderns.

El sistema FAT s'estructura de la següent manera:

Sector d'arranc
(MBR)
FAT (1a còpia) FAT (2a còpia) Directori arrel Arxius i directoris
(índex)

Cada entrada de la taula conté:

  • Un 0 (zero) si està lliure.
  • EOF (End Of File, un caràcter especial) que indica final de l'arxiu.
  • Si conté un número, aquest apunta al següent clúster del fitxer.

Tenim 2 còpies de la FAT per motius de seguretat. Si per algun motiu es corromp la informació de la primera taula (per exemple, per un error d'escriptura), es pot recuperar de la segona còpia. És molt estrany (però no impossible) que hi hagi errors a les 2 còpies.


La FAT o File Allocation Table és una taula que controla la disposició dels arxius sobre els clústers del disc dur. El número que acompanya el sistema FAT indica el nombre d'entrades per sectors que conté la taula. Així, tindrem:

Sistema d'arxius nº màxim
de clusters
tamany màxim
d'arxiu
tamany màxim
de disc
noms d'arxius
(nº caràcters)
FAT 12 212 = 4096 clusters 32 MB 32 MB 8 + 3
FAT 16 216 = 4096 clusters 2 GB 2 GB 8 + 3
FAT 32 232 teòrics, 228 reals
268.435.456 reals
4 GB 2 TB 255
NTFS 264 32 MB 16-256 TB 255


A l'espai d'arxius i directoris s'emmagatzema la següent informació:

  • Nom d'arxiu o directori (carpeta).
  • Un byte d'atributs d'arxiu. Pel FAT tenim r (read-only), h (hidden), s (system) i a (archive).
  • Dates i hores de creació, accés i modificació.
  • Clúster de inici de l'arxiu o directori.
  • Tamany de l'arxiu o directori.


Per reconstruir un arxiu anirem a l'índex d'arxius, buscarem el clúster inicial i, a través de la FAT, podrem anar a buscar els diferents clústers consecutius i recuperar els diferents fragments de l'arxiu. L'arxiu quedarà íntegrament reconstruït a la memòria RAM per ser executat si és un programa (un .exe), o, si es tracta de dades (per exemple, un .txt) descodificat per extreure'n dades o ser modificat.

Sistema d'arxius NTFS

NT File System de Microsoft. Va sortir pel Windows NT (versió per servidors, paral·lela al Windows 3.x) i millora les prestacions del FAT:

  • Journaling: seguretat en la recuperació de dades enfront a fallades en els sistema d'axius. Per dur-ho a terme es té un registre (journal) de les transaccions dels arxius. En cas defallada, aquest registre permet desfer els canvis i recuperar les dades com al principi.
  • Control d'accés als arxius i directoris: (permisos i usuaris).
  • Capacitat per treballar amb unitats de gran tamany: de 16 a 256 TB (depèn del tamany del clúster).
  • Millor aprofitament de l'espai de disc: clústers menors que en FAT.
  • Noms llargs per arxius i carpetes.

Altres característiques addicionals:

  • Compressió d'arxius i carpetes (redueix rendiment de la CPU).
  • Encriptació: només l'usuari podrà llegir els seus directoris (redueix rendiment).
  • Quotes de disc (només en Windows Server).


Noms d'unitats

Els sistemes Windows (FAT i NTFS) assignen una lletra a cada unitat del sistema.

  • A: floppy disk de 5,25"
  • B: floppy disk de 3,5"
  • C: disc dur de sistema
  • D: i endavant (E:, F:, etc.): s'assigna a les diverses unitats o particions dels discs durs restants (de dades) i per dispositius com CDs i DVDs.


Sistemes d'arxius ext2, ext3 i ext4 (Linux)

Es llegeixen:

  • ext2: Second Extended Filesystem
  • ext3: Third Extended Filesystem
  • ext4: Fourth Extended Filesystem


Característiques del ext3:

  • Tamany màxim de disc dur: 2 -16 TB.
  • Tamany màxim d'arxiu: 2 -16 TB (el mateix que el disc dur).
  • Noms d'arxiu i directori de fins a 255 caràcters.
  • Tamany de bloc variable ("bloc" equival al concepte de clúster): millora la fragmentació.
  • Journaling: com s'ha explicat en el NTFS.


Característiques del ext4 (el què s'utilitza actualment):

  • Tamany màxim del disc dur: 1 exabyte (1 milió de TB, o 1024 PB=PetaBytes).
  • Tamany màxim de fitxer: 16 TB
  • Millora del sistema de disposició de dades (delayed allocation) el que millora encara més la fragmentació.
  • Millores del journaling per millor seguretat.
  • Trencada la barrera dels 32.000 subdirectoris per directori.


La disposició de les diferents unitats (muntatge) en Linux es fa a través de la comanda mount i de l'arxiu de configuració /etc/fstab. Exemple d'un fstab:

/dev/hdb5     /             ext3       defaults     1    1
/dev/hdc      /mnt/cdrom    iso9660    noauto       0    0
/dev/fd0      /mnt/floppy   auto       noauto       0    0

Per la manipulació de particions es recomana la utilitat "gparted" de Linux (es pot executar des d'un live CD de qualsevol distribució). És més complerta que les utilitats que venen amb el Windows, tot i que hi ha programes comercials que permeten això mateix (pagant, és clar) com el PartitionMagic.

Nom de les unitats en Linux

En Linux els discs durs es nomenen habitualment amb aquesta nomenclatura:

  • /dev/hda , /dev/hdb , etc. pels discs durs IDE ("hda" venia a ser Hard Disk A, etc.)
  • /dev/sda , /dev/sdb , etc. pels discs durs SATA i SCSI

Les particions es fan amb números afegits a la unitat física. Per exemple:

/dev/sda1
/dev/sda2
/dev/sda4 -> la nº 4 sempre serà la partició "extesa" (només hi pot haver 1)
/dev/sda5 -> totes les particions lògiques son a partir de la 5 endavant


ISO 9660 i UDF

Són els sistemes d'arxius pels CDs i DVDs. El primer en aparèixer fou el ISO 9660 l'any 1985. Característiques:

  • Noms estil MS-DOS: 8+3 caràcters (nom+extensió).
  • Repertori de caràcters bàsic (alfanumèrics + el "_").
  • Màxima profunditat de directoris: 8 nivells

Després es van fer ampliacions per permetre més nombre de caràcters als noms de fitxers: Joliet per al Windows (64 caràcters) i Rockridge per al Linux (255 caràcters). Encara que s'utilitzin extensions, es grava també un índex amb les dades compatibles amb l'orginal ISO 9660, així es podràn llegir en un dispositiu que no sigui compatible amb extensions. Només hi ha problemes pel Rockridge sota Windows (no els suporta). En Linux es poden llegir tots els formats.


UDF (Universal Disk Format) també conegut per ISO 13346 es va fer l'any 1996 per ser utiltizat amb els DVDs. Es pot fer servir també en CDs i memòries Flash. Existeix un format UDF Bridge que permet ser llegits pels dos sitemes alhora: UDF i el ISO 9660.