dysk fizyczny i dysk logiczny

 

Struktura fizyczna i logiczna dysku twardego


Adres sektora fizycznego dysku twardego niewiele odbiega od struktury fizycznej dyskietki. Przypomnimy tylko, że był on nazywany adresem CHS.
Dla dysków twardych zamiast numeru ścieżki wprowadzono numer tak zwanego cylindra. Cylindrem jest zbiór wszystkich ścieżek na wszystkich talerzach dysku mających ten sam promień. Adres fizyczny na dysku można określić jako CHS ( ang. Cylinder Head Sector ). Podając numer cylindra, wybieramy wszystkie ścieżki o tych samych numerach, lecz na różnych powierzchniach. Numer głowicy identyfikuje konkretną ścieżkę, z której wybieramy sektor o podanym numerze. Adres sektora logicznego można inaczej nazwać numerem sektora logicznego lub po prostu numerem sektora.
Strona zerowa nazywana jest stroną ukrytą (ang. hidden). Jest ona poświęcona celom systemowym. Sektory tej strony nie wchodzą do numeracji sektorów logicznych na dysku. Strona ukryta nie ma swojego odpowiednika na dyskietce. Reguła numerowania sektorów logicznych jest następująca: numeracja rozpoczyna się od liczby 0. Sektorem logicznym 0 jest pierwszy sektor na stronie 1 i ścieżce 0 dysku. Kolejne numery otrzymują kolejne sektory leżące na tej ścieżce. I tak CHS = 012 to sektor 1, 013 - 2 itd. Po wyczerpaniu wszystkich sektorów ścieżki system zmienia stronę nie zmieniając cylindra. Dopiero po wyczerpaniu wszystkich sektorów fizycznych bieżącego cylindra, następuje zmiana, czyli przejście na cylinder o numerze wyższym o 1 i numeracja kontynuowana jest od pierwszego sektora fizycznego pierwszej strony tego cylindra, aż do wyczerpania wszystkich sektorów fizycznych. Ostatnia możliwość adresowania informacji na dysku polega na podaniu numeru klastera, w którym się znajduje. Adresować w ten sposób możemy jedynie obszar danych, gdyż ich dotyczy pojęcie klastera. Numeracja klasterów zaczyna się od liczby 2.
Główny rekord ładujący i tablica partycji
Dyski twarde są nośnikami o dużych pojemnościach, stąd założono, że mogą być na nich instalowane różne systemy operacyjne. Instalacja kilku systemów operacyjnych wymaga zwykle umieszczenia ich na wydzielonym, logicznie niezależnym, obszarze dysku zwanym partycją. Informacja o tym, w jaki sposób dysk twardy został podzielony na partycje, znajduje się w specjalnej strukturze umieszczonej na ukrytej stronie dysku. Struktura ta nosi nazwę tablicy partycji (ang. Data Portition Table) i jest często oznaczana skrótem DPT. Tablica partycji jest częścią innej ważnej struktury zwanej Master Boot Record.
https://ifnt-old.fizyka.amu.edu.pl/dydaktyka/hatem_p/zapis/mag/rysm/partycje.jpg
Polskim odpowiednikiem tego terminu, oznaczanego często skrótem MBR, jest główny rekord ładujący. Adres fizyczny (CHS) głównego rekordu ładującego wynosi 001. Zajmuje on więc pierwszy sektor ścieżki zerowej strony ukrytej dysku twardego. W głównym rekordzie ładującym umieszczony jest program, którego zadaniem jest przeglądnięcie tablicy partycji w celu znalezienia tak zwanej partycji aktywnej i w dalszej kolejności, załadowanie z tej partycji umieszczonego tam programu ładującego system operacyjny. Tylko jedna partycja może być partycją aktywną. Przykładowymi rodzajami partycji są: · DOS, 16-bitowa tablica FAT, rozmiar <32 MB- kod 04h · DOS, 16-bitowa tablica FAT, rozmiar >=32 MB (oznaczany jako BIGDOS) - kod 06h · OS/2, system plików HPFS - kod 07h · UNIX Sys V/386 - kod 63h. Mimo możliwości wpisania w adresie początku tablicy partycji także numeru sektora i głowicy, programy dzielące dyski, takie jak Fdisk, działają w ten sposób, że granicą podziału jest zawsze koniec i początek kolejnych cylindrów na dysku.
Tablica rozmieszczenia plików (FAT)
Rola tablicy FAT na dysku twardym jest taka sama jak rola tablicy FAT na dyskietce. Istotna różnica występuje jedynie w ilości bitów zarezerwowanych na zapis numerów klasterów. Na dyskietce rezerwowano na ten cel zawsze 12 bitów, co dla pojemności dyskietki było ilością w zupełności wystarczającą. Dla dysków twardych może to być obecnie 16 lub 32 bity, stąd mówimy o tablicach FAT 16- lub 32-bitowych. Pozycje w tablicy FAT o długości 16 bitów pozwalają numerować 65536 klasterów. Przykładowo, w przypadku dysku o pojemności 208 MB daje to klastery składające się z 8 sektorów, czyli o długości 4 KB. Dla dysku 508 MB długość ta wzrasta do 8 KB, a dla dysku 4,3 GB wynosi 64 KB. jeden klaster może być używany tylko przez jeden plik. Stąd przestrzeń na końcu ostatnich klasterów plików jest niewykorzystana. Im większe klastery , tym większa może być nieużywana powierzchnia dysku. Powiększenie pozycji w tablicy FAT do 32 bitów pozwala ponownie zmniejszyć wielkość klasterów, także dla dużych dysków Katalog główny dla dysku twardego nie różni się niczym od katalogu głównego na dyskietce. Maksymalna ilość pozycji w katalogu głównym wynosi 512. Od początku obszaru danych mamy możliwość adresowania informacji na dysku trzema sposobami: za pomocą adresu fizycznego, numeru sektora logicznego i numeru klastera. W obszarze danych zapisywane są pliki oraz podkatalogi. Ilość pozycji w podkatalogu jest ograniczona jedynie pojemnością obszaru danych.
Profilaktyka dysku twardego
Po podziale dysku na partycje oraz po ich zmianach należy zrobić na dyskietce kopie jego podstawowych struktur: MBR wraz z DPT. Można także wykonać kopie tablic FAT oraz katalogu głównego, choć te struktury zmieniają się znacznie szybciej i wymagają częstszego kopiowania. Kopie takie można wykonać ręcznie, na przykład przy użyciu programu Disk Editor z pakietu NU, jednakże istnieje też gotowy program z tegoż pakietu, noszący nazwę Rescue, realizujący te same zadania, a dodatkowo pozwalający szybko odtworzyć struktury na podstawie przechowywanych wzorców. Inną ważną czynnością jest tak zwana defragmentaryzacja twardego dysku. Po dłuższym użytkowaniu dysku, częstym zapisywaniu i kasowaniu plików i katalogów, pliki zaczynają być zapisywane w klasterach nieprzylegających do siebie, a nawet dość odległych. Zmusza to głowice dysku do częstych zmian ścieżek i oczekiwania na odczyt kolejnych klasterów, co znacznie spowalnia pracę dysku. Za pomocą odpowiednich programów (takich jak np. Defrag firmy Microsoft czy Speedisk z pakietu NU) można przywrócić "spoistość" plikom na dysku. Przy omawianiu programów narzędziowych warto jeszcze wspomnieć o programach pozwalających na repartycjowanie dysku bez utraty informacji. Jednym z ciekawszych jest program Partition Magic firmy PowerQuest, który potrafi między innymi zmienić wielkość partycji, dodać, usunąć oraz przesunąć partycję. Program obsługuje systemy plików FAT, FAT32, HPFS, NTFS oraz system plików Linuksa. Można również za jego pomocą zmienić wielkość klasterów na dysku. Program ten umożliwia też analizę pewnych własności dysku, takich jak ilość miejsca traconego na dysku czyli analizę błędów na dysku.

·         BUDOWA FIZYCZNA DYSKU

Wewnątrz obudowy mieści się od jednego do kilku talerzy. Po obu stronach każdego z nich znajdują się ścieżki podzielone na sektory zawierające standardowo 512 bajtów. Liczba sektorów na ścieżce zależy zatem od odległości danej scieżki od środka dysku: im dalej w kierunku zewnętrznej krawędzi, tym więcej sektorów na ścieżce.

Zapisane na dysku informacje odczytywane są przez głowice umieszczone na ruchomym ramieniu. Te ścieżki, które można odczytać bez potrzeby przemieszczenia ramienia z głowicami, tworzą jeden cylinder. Cylindry, głowice i sektory zostały ponumerowane, aby łatwo odwoływać się do konkretnego miejsca (standard C/H/S; cylindry i głowice numerowane są od 0, sektory od 1).

Pierwszy sektor na każdym dysku (CHS=001) to MBR (sektor bootujący). MBR składa się z dwóch części: umieszczonego na początku kodu wykonywalnego i tablicy partycji. MBR kończy się sygnaturą 55 AA (takie są dwa ostatnie bajty).

Kod wykonywalny, inaczej IPL (Initial Program Loader) lub bootstrap, ładowany jest do pamięci RAM i uruchamiany podczas startu komputera. W samym kodzie znajdziemy program odpowiedzialny za odnalezienie i odczytanie tablicy partycji oraz określenie, która partycja jest aktywna - czyli z której powinien być uruchamiany system operacyjny. Kod wykonywalny zajmuje około 400 początkowych bajtów MBR. Musi się kończyć najpóźniej na bajcie nr 445.

Tablica partycji złożona jest z czterech rekordów o długości 16 bajtów każdy. W rekordach może być zapisana informacja maksymalnie o czterech partycjach podstawowych (albo o maksymalnie trzech partcjach podstawowych i jednej rozszerzonej). Każdy rekord ma następującą strukturę:

    • pierwszy bajt określa stan partycji (aktywna to 80, nieaktywna to 00)
    • trzy bajty (nr 2, 3, 4) to adres początkowy w formacie CHS
    • piąty bajt to identyfikator (ID), który określa typ partycji (FAT, NTFS, ext2, itp.)
    • trzy następne bajty (nr 6, 7, 8) to adres końcowy w formacie CHS
    • cztery bajty (nr 9, 10, 11) to podana w sektorach odległość między początkiem dysku a początkiem partycji
    • ostatnie cztery bajty to rozmiar partycji, określany jako liczba zajmowanych (alokowanych) przez nią sektorów.

Jeżeli na dysku znajduje się partycja rozszerzona, to zawiera ona kolejną tablicę partycji i informację o dyskach logicznych.

BUDOWA LOGICZNA DYSKU

Zanim zainstalujemy system operacyjny na nowym komputerze, musimy przygotować dyski twarde. Proces ten polega na podzieleniu dysku fizycznego na partycje i ich sformatowaniu. Typowy duży dysk twardy jest podzielony na jedną partycję podstawową (primary) i jedną rozszerzoną (extended), ta ostatnia zaś może się składać z kilku dysków logicznych. Dodatkowy fizyczny dysk twardy, na którym nie będzie instalowany żaden system operacyjny, może zawierać jedynie partycję rozszerzoną podzieloną na dyski logiczne.

Do tworzenia i zmian partycji służy program FDISK. Pozwala on wybrać wielkość i typ partycji. Ustawia się też która partycja podstawowa na dysku jest aktywna. Każda partycja dyskowa ma swoj wpis w tablicy partycji. W tablicy tej oprócz dokładnych adresów początku i końca partycji (numery cylindra, głowicy i sektora) zapisany jest jej identyfikator (ID). Na podstawie tego numeru system operacyjny jest w stanie określić, czy będzie potrafił odwoływać się do danej partycji.

Korzystając z programu FIPS do podziału partycji, z jednej partycji podstawowej możemy uzyskać do czterech partycji podstawowych. Jest to nieoficjalna możliwosc w DOS-ie. Przydaje się to pod Linuksem, gdy chcemy mieć Windows na pierwszej partycji podstawowej, LILO na partycji podstawowej typu Linux native, a trzecią partycję podstawową typu Linux swap.

Na partycji extended można utworzyć wiele dysków logicznych. Na początku każdego dysku logicznego znajduje się odpowiednik MBR - EMBR (Extended MBR), który zawiera adresy poczatku i konca dysku logicznego.

LICZBA I ROZMIAR KLASTRÓW W SYSTEMACH PLIKOW FAT


                                   FAT12    FAT16,VFAT    FAT32
Rozmiar wpisu w tablicy FAT       12 bitów    16 bitów   28 bitów
Max liczba klastrow na partycji    2^12        2^16       2^28
Min rozmiar klastra               512 B        2 KB       4 KB
Max rozmiar klastra                 4 KB      32 KB      32 KB
Max rozmiar partycji               16 MB       2 GB       2 TB

Rozmiar partycji | Klaster w:    FAT16         FAT32
do 128 MB                        2 KB          ---
do 256 MB                        4 KB          ---
do 512 MB                        8 KB          ---
do 1 GB                         16 KB          4 KB
do 2 GB                         32 KB          4 KB
do 4 GB                         64 KB (NT)     4 KB
do 8 GB                          ---           4 KB
do 16 GB                         ---           8 KB
do 32 GB                         ---          16 KB
ponad 32 GB                      ---          32 KB

FAT16 to 16-bitowa tablica alokacji plików. Nośnik z systemem FAT16 składa się

    • z części systemowej: MBR, dwie kopie tablicy alokacji plików i katalog główny dysku (zawiera nazwy plików oraz informacje o ich wielkości i pierwszym zajmowanym klastrze; maksymalnie może mieć zapisane 512 obiektów)
    • części przeznaczonej na dane użytkownika - tu są też informacje o podkatalogach, atrybutach.

MBR (sektor bootujący) zawiera informacje potrzebne do uruchomienia zainstalowanego systemu operacyjnego. FAT to tablica zawierająca informacje łączącą dowolny plik zapisywany przez system operacyjny z jego fizycznym położeniem na dysku. FAT zawiera listę wszystkich plików i folderów oraz adresy kolejnych klastrów używanych przez dany obiekt. W ostatnim klastrze jako adres "następnego" (nie istniejącego) klastra zapisywana jest wartość 0xFFFF. Długość numeru klastra wynosi 16 bitów. Stąd liczba różnych numerów wynosi 2^16 = 65536 i tyle może być klastrów w systemie. Wpis w FAT zajmuje dwa bajty (to wynika z długości numeru). Stąd można oszacować wielkość tablicy alokacji FAT16 na 2^16 * 2 B = 2^17 B = 128 KB.

PRZYKŁAD: szukanie pliku. System zaczyna poszukiwania w katalogu głównym (w części systemowej nośnika). Tu odnajduje adres pierwszego klastra pliku. Adres ten jest jednocześnie wskaźnikiem do FAT. W miejscu wskazanym przez wskaźnik jest adres kolejnego klastra, a zarazem nowy wskaźnik do FAT. Wartość 0xFFFF oznacza, ze odczytano ostatni fragment pliku.

VFAT

VFAT pojawił się w Windows 95. Cechy:

    • partycje o rozmiarach do 2 GB
    • dyski twarde mogą mieć więcej niż 1024 cylindry
    • długość nazwy pliku lub folderu zwiększono do 254 znakow

FAT32

FAT32 to 32-bitowa tablica alokacji plikow. FAT32 pojawił się w Windows 95 OSR2 (OEM Servise Release 2) i jest dostępny w Windows 98. Długość numeru klastra wynosi 28 bitów (4 bity są zarezerwowane). Stąd liczba różnych numerów wynosi 2^28. Wpis w FAT zajmuje cztery bajty. FAT może mieć więcej wpisów. MBR zajmuje dwa sektory fizyczne na dysku. Zawartość katalogu głównego nie jest zapamietana w części systemowej dysku, ale w części na dane, jak dla każdego innego katalogu. Stąd nie ma ograniczenia na 512 obiektów w katalogu głównym.

STRUKTURA PLIKÓW

Sformatowane dyski logiczne są dzielone na jednostki alokacji zwane klastrami. W zależności od rozmiaru dysku klastry mają rożną wielkość. Najmniejszy mieści jeden sektor (sektor ma zawsze 512 bajtów, ale tak małe klastry są tylko w FAT12). Liczba sektorów w klastrze jest przechowywana w systemie FAT16 przez system operacyjny w postaci jednego bajtu. Liczba ta musiała być mniejsza od 256 i musiała stanowić potęgę dwójki. W ten sposób największy możliwy do skonstruowania klaster mógł mieć 128 sektorow, co daje 128 * 512 B = 64 KB. Tak duży klaster może być w Windows NT. Daje to maksymalny rozmiar partycji 2^16 * 64 KB = 4 GB.

Dla klasycznego FAT16 maksymalny klaster zawiera 64 sektory i ma wielkosc 32 KB. Dyski w systemie FAT16 mogą zawierać 65536 (2^16) klastrów, co daje maksymalną pojemność dysku logicznego około 2 GB (2^16 * 32 KB = 2^16 * 2^5 * 2^10 B = 2^31 B = 2 GB).

Dyski w systemie FAT32 mogą zawierać 2^28 klastrów. Minimalna wielkość klastra dla FAT32 to 4 KB. Maksymalna wielkość partycji z FAT32 to 2 TB (2^41 B). NIE ROZUMIEM DLACZEGO. Jeżeli jeden klaster ma 32 KB, to dostajemy pojemność dysku 2^28 * 32 KB = 2^28 * 2^15 B = 2^43 B = 8 TB, a nie 2 TB.

KOMBINACJA OGRANICZEŃ: BIOS I IDE

PARAMETR                 BIOS   IDE          Ograniczenie
Max liczba cylindrów     1024   65536=2^16         1024
Max liczba głowic         256      16                16
Max liczba sektorów        63     256                63
Max pojemność            8 GB   128 GB           504 MB

BARIERY POJEMNOŚCI DLA DYSKÓW TWARDYCH

    • OGRANICZENIE: 504 MB dla standardowych dysków IDE/ATA.
      PRZYCZYNA: BIOS potrafi zaadresować tylko 1024 cylindrów na dysku. 2^10 (C) * 2^4 (H) * 63 (S) * 512 B = 504 MB (w przybliżeniu 2^10*2^4*2^6*2^9 = 2^29)
      ROZWIĄZANIE: upgrade BIOS-u lub zastosowanie nakładki software'rowej.
    • OGRANICZENIE: 2016 MB (1,97 GB).
      PRZYCZYNA: niektóre BIOS-y pozwalają adresować tylko 4096 cylindrów. 2^12 (C) * 2^4 (H) * 63 (S) * 512 B = 2016 MB (w przybliżeniu 2^12*2^4*2^6*2^9 = 2^31
      ROZWIĄZANIE: upgrade BIOS-u lub zastosowanie nakładki software'rowej.
    • OGRANICZENIE: 2 GB.
      PRZYCZYNA: rozmiar klastrów w FAT16 może być maksymalnie 32 KB pod DOS, Windows 3.1x i 95.
      ROZWIĄZANIE: duży dysk trzeba podzielić na partycje i co najmniej na dwa napędy logiczne.
    • OGRANICZENIE: 8 GB.
      PRZYCZYNA: ograniczenia BIOS-u co do sposobu adresowania; funkcja obsługi przerwania Int 13H zapewnia dostęp do 16383 cylindrów (2^14 - 1), 16 głowic (2^4), 63 sektorów (2^6 - 1) zawierających klastry po 512 bajtów; adres miejsca na dysku jest przekazywany za pośrednictwem 24 bitów w konwencji CSH (cylinder-head-sector); można policzyć w przyblizeniu 2^24 * 512 B = 2^33 B = 8 GB.
      ROZWIĄZANIE: wprowadzono w BIOS-ie nową metodę adresowania LBA; metoda ta przesyła pojedyńcze adresy długosci 28 bitów, co daje dostęp do danych o pojemności około 126 GB; można policzyć w przybliżeniu 2^28 * 512 B = 2^37 B = 128 GB; należy więc wymienić BIOS lub wykorzystać program wspomagający adresowanie, np. DiscWizard lub OnTrack Disk Manager.

TRANSLACJA W BIOS-IE: ROZMIARY PARTYCJI I ILOŚCI BITÓW W ADRESIE

Liczba adresowanych cylindrów  1024  2048  4096  8192  16384  ---
Bity wymagane do zaadresowania   10    11    12    13     14  ---
           cylindrów
Liczna adresowanych głowic       16    16    16    16     16  ---
Liczba cylindrow po translacji 1024  1024  1024  1024   1024  65536
Liczba głowic po translacji      16    32    64   128    256    256
Maksymalna pojemność         504MB 1008MB 2016MB 4032MB 8064MB 128GB
Bity wymagane przez LBA       CHS*     21    22    23   

 


Załóż własną stronę internetową za darmo Webnode