Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Partycje na Dysku Twardym

migol21 12 Mar 2008 18:12 68348 2
  • #1 12 Mar 2008 18:12
    migol21
    Specjalista HDD Recovery

    Partycje na Dysku Twardym


    MBR zaczyna sie od LBA 0 (sam początek) a kończy sygnatura

    Code:
    55 AA


    Zasadniczo możemy mieć jedynie 4 podstawowe partycje każda z tych partycji jest opisana 16 bajtami od
    Pierwsza partycja 000001B0 E do 000001C0 D
    Druga partycja 000001C0 E do 000001D0 D
    Trzecia partycja 000001D0 E do 000001E0 D
    Czwarta partycja 000001E0 E do 000001F0 D

    Gdzie określenie czy partycja jest bootowalna (ta z której startuje system) okreśa pierwszy bajt opisu partycji
    Code:
    00
    określa ze nie jest bootowalna a
    Code:
    80
    określa ,ze jest bootowalna.

    Code:
    Przy pierwszej partycji :
    
    1 bajt to bajt czy partycja jest botowalna tu nie jest i wpis mamy 00 (dziesiętnie 0)
    2 bajt to głowica początku partycji tu 01 (dziesiętnie 1)
    3-4 bajt sektor/cylinder początku partycji tu 01 00 (1 sektor 0 cylinder)
    5 bajt to ID partycji tu 07 - 07 oznacza NTFS. Wrzuciłem plik opisu ID partycji. (dziesiętnie 7)
    6 bajt to głowica końca partycji tu FE (dziesiętnie 254)
    7-8 bajt to sektor/cilinder końca partycji tu BF 03 (63 sektor 14 cylinder)
    9-12 bajt to offset początku partycji tu 3F 00 00 00 (dziesiętnie 63 (63 LBA))
    13-16 bajt to liczba sektorów partycji tu C5 7C 7E 00 (dziesiętnie 8289477)

    Przy partycji drugiej mamy extended :
    1 bajt to bajt czy partycja jest botowalna tu nie jest i wpis mamy 00 (dziesiętnie 0)
    2 bajt to głowica początku partycji tu 00 (dziesiętnie 0)
    3-4 bajt sektor/cylinder początku partycji tu 81 04 (1 sektor 18 cylinder)
    5 bajt to ID partycji tu 0F - 0F oznacza partycje Extended. (dziesiętnie 15)
    6 bajt to głowica końca partycji tu FE (dziesiętnie 254)
    7-8 bajt to sektor/cilinder końca partycji tu FF FF ( 63 sektor 1023 cylinder)
    9-12 bajt to offset początku partycji tu 04 7D 7E 00 (dziesiętnie 8289540)
    13-16 bajt to liczba sektorów partycji tu BC 97 AB 00 (dziesiętnie 11245500) (z tego wynika (11245500+8289477+63)=19535040 ostatni sektor)

    na trzeciej i czwartej partycji same 00 Czyli ich brak.

    Cytat:
    Zamieniałem na dziesiętne liczby w ten sposób ,że uruchamiam kalkulator daje Menu widok wybieram Naukowy zaznaczam HEX Wpisuje liczbę Hexydecymalną od prawej do lewej czyli liczba 04 7D 7E 00 wpisuje jako 007E7D04 (zera na początku się pomija ale można je wpisać i tak ich nie będzie widać wyświetli sie 7E7D04) po czym zaznaczam Dec (Dziesiętnie) wynik 8289540





    Cytat:
    Jak obliczam sektor/cylinder :
    3-4 bajt sektor/cylinder początku partycji tu 01 00 (1 sektor 0 cylinder)
    (Jak to obliczam : Wpisuje w kalkulator HEX liczbę od prawej 0001 zamieniam na dziesiętne (Dec) daje 1 to zamieniam na binarne BIN co daje 1 (tak naprawdę wygląda to tak 0000000000 000001 (10 znaków na cylinder i 6 znaków na sektor) Gdzie 6 znaków liczby BIN od prawej (Starszych bitów) określa liczbę sektorów Więc pisze w kalkulatorze liczbę binarną 000001 i zamieniam ją na dziesiętną (DEC) daje nam 1 (1 sektor) potem wpisuje resztę cyfr binarnych które pozostały 0 i zamieniam na dziesiętne co daje 0 (0 Cylinder) (Cylindry liczymy od 0, 1, 2, itd.)

    3-4 bajt sektor/cylinder początku partycji tu 81 04 (1 sektor 18 cylinder)
    (jak to obliczam : Wpisuje w kalkulator HEX liczbę od prawej 0481 zamieniam na dziesiętne (Dec) daje 1153 to zamieniam na binarne BIN co daje 10010000001 (tak naprawdę wygląda to 0000010010 000001 ) Gdzie 6 znaków liczby BIN od prawej (Starszych bitów) określa liczbę sektorów Więc pisze w kalkulatorze liczbę binarną 000001 i zamieniam ją na dziesiętną (DEC) daje nam 1 (1 sektor) potem wpisuje resztę cyfr binarnych które pozostały 0000010010 i zamieniam na dziesiętne co daje 18 (18 Cylinder))

    7-8 bajt to sektor/cilinder końca partycji tu FF FF (63 sektor 1023 cylinder)
    (jak to obliczam : Wpisuje w kalkulator HEX liczbę od prawej FFFF zamieniam na dziesiętne (Dec) daje 65535 to zamieniam na binarne BIN co daje 1111111111111111 (tak naprawdę wygląda to 1111111111 111111 ) Gdzie 6 znaków liczby BIN od prawej (Starszych bitów) określa liczbę sektorów Więc pisze w kalkulatorze liczbę binarna 111111 i zamieniam ją na dziesiętną (DEC) daje nam 63 (63 sektor) potem wpisuje resztę cyfr binarnych które pozostały 1111111111 i zamieniam na dziesiętne co daje 1023 (1023 Cylinder)(jak doliczymy 0 to wyjdzie ,ze mamy maksymalnie 1024 cylindry))


    To sektor 8289540 w którym zaczyna się partycja extended i pierwsza partycja (dysk) logiczny.
    Partycje na Dysku Twardym
    MBR wskazuje na partycje extended na sektor 8289540 gdzie w offsecie 0FCFA09B0E zaczyna się opis :
    Pierwsza partycja 0FCFA09B0 E do 0FCFA09C0 D
    Druga partycja 0FCFA09C0 E do 0FCFA09D0 D
    Trzecia partycja 0FCFA09D0 E do 0FCFA09E0 D
    Czwarta partycja 0FCFA09E0 E do 0FCFA09F0 D

    Code:
    Przy pierwszej partycji :
    
    1 bajt to bajt czy partycja jest botowalna tu nie jest i wpis mamy 00 (dziesiętnie 0)
    2 bajt to głowica początku partycji tu 01 (dziesiętnie 1)
    3-4 bajt sektor/cylinder początku partycji tu 81 04 (1 sektor 18 cylinder)
    5 bajt to ID partycji tu 07 - 07 oznacza NTFS. Wrzuciłem plik opisu ID partycji. (dziesiętnie 7)
    6 bajt to głowica końca partycji tu FE (dziesietnie 254)
    7-8 bajt to sektor/cilinder końca partycji tu FF 88 (63 sektor 547 cylinder)
    9-12 bajt to offset początku partycji tu 3F 00 00 00 (dziesiętnie 63 (63 LBA))
    13-16 bajt to liczba sektorów partycji tu 06 5B 5F 00 (dziesiętnie 6249222)

    Przy drugiej partycji mamy :
    1 bajt to bajt czy partycja jest botowalna tu nie jest i wpis mamy 00 (dziesiętnie 0)
    2 bajt to głowica początku partycji tu 00 (dziesiętnie 0)
    3-4 bajt sektor/cylinder początku partycji tu C1 89 (1 sektor 551 cylinder)
    5 bajt to ID partycji tu 05 - 05 oznacza partycje Extended (Dysk logiczny). (dziesiętnie 5)
    6 bajt to głowica końca partycji tu FE (dziesiętnie 254)
    7-8 bajt to sektor/cilinder końca partycji tu FF FF (63 sektor 1023 cylinder)
    9-12 bajt to offset początku partycji tu 45 5B 5F 00 (dziesiętnie 6249285) (8289540+(63+6249222=6249285))=14538825 -Tam jest początek drugiej partycji logicznej (dysku)
    13-16 bajt to liczba sektorów partycji tu 77 3C 4C 00 (dziesiętnie 4996215)

    trzeciej i czwartej nie ma same 00


    Sektor 14538825 gdzie zaczyna sie druga partycja (dysk) logiczna
    Partycje na Dysku Twardym
    MBR wskazuje na druga partycje (dysk) logiczna na sektor 14538825 gdzie w offsecie 1BBB093B0E zaczyna się opis :
    Pierwsza partycja 1BBB093B0 E do 1BBB093C0 D
    Druga partycja 1BBB093C0 E do 1BBB093D0 D
    Trzecia partycja 1BBB093D0 E do 1BBB093E0 D
    Czwarta partycja 1BBB093E0 E do 1BBB093F0 D

    Code:
    Przy pierwszej partycji :
    
    1 bajt to bajt czy partycja jest botowalna tu nie jest i wpis mamy 00 (dziesiętnie 0)
    2 bajt to głowica początku partycji tu 01 (dziesiętnie 1)
    3-4 bajt sektor/cylinder początku partycji tu C1 89 (1 sektor 551 cylinder)
    5 bajt to ID partycji tu 07 - 07 oznacza NTFS. Wrzuciłem plik opisu ID partycji. (dziesiętnie 7)
    6 bajt to głowica końca partycji tu FE (dziesiętnie 254)
    7-8 bajt to sektor/cilinder końca partycji tu FF FF (63 sektor 1023 cylinder)
    9-12 bajt to offset początku partycji tu 3F 00 00 00 (dziesiętnie 63 (63 LBA))
    13-16 bajt to liczba sektorów partycji tu 38 3C 4C 00 (dziesiętnie 4996152) (z tego wynika (6249285+8289540=1453825)+4996152=19535040 ostatni sektor)

    partycji drugiej trzeciej czwartej nie ma wpisy same zera.

    Z tego co sie orientuje partycja bootowalna może być każda z tych czterech ale tylko jedna z nich .

    Jeden sektor ma 512 Offsetow. Jeden Offset to jeden bajt. Jeden Bajt to 8 bitów. W tym jednym bajcie mamy zapisana jedna cyfrę Hexydecymalną od 00 do FF.

    Co się stanie gdy poszczególne wpisy znikną ?

    Tutaj przykładowy MBR i jego opis oraz schemat partycji na tym przykładzie. MBR mieści się w jednym sektorze.
    Partycje na Dysku TwardymPartycje na Dysku Twardym
    Podaje plik z sektorem 0 i 8289540 i 14538825 (Partycja Podstawowa , 1 Exstended na której są dwie partycje (Dyski) Logiczne formatowane w NTFS)
    Podaje plik z ID partycji.

    Sektor 0 długość 1 to MBR
    Struktura NTFS to :
    0) Sektor 63 długość 1 sektor to Boot (Boot jest zawsze w 63 sektorze pierwszej partycji)
    1) Dane
    2) MFT długość 8 sektorów zajmuje pierwsze 4 sektory (MFT jest umieszczane w miejscu które wybiera program formatujący i zwykle jest ono inne przy formatowaniu przez Windows czy przez Partition Magic czy inny program. To gdzie znajduje sie MFT można przeczytać w Boot sektorze.)
    3) Dane
    4) MFT Mirror długość 8 sektorów (kopia MFT - w Boot znajduje się zapis gdzie się ona znajduje)
    5) Dane
    6) Boot copy długość 1 sektor (kopia Boot-a)



    Opis położenia tablic MFT w zależności od użytego programu formatującego w systemie plikowym NTFS.

    Acronis - MFT - 48 klaster , MFTmirror - 2 cluster : 8 sektorów/klaster
    ParagonDM - MFT 2 klaster, MFTmirror po środku partycji : 128 sektorów/klaster
    ParagonDM - MFT 4 klaster, MFTmirror po środku partycji
    PartitionMagic - MFT 786432 klaster, MFTmirror po środku partycji : 8 sektorów/klaster
    Microsoft - MFT 786432 klaster, MFTmirror po środku partycji : 8 sektorów/klaster


    Przykład:
    Dysk posiada 976 773 167 LBA
    Partycje jedna podstawowa od 63 LBA do 976 768 064 LBA
    Czyli ma 976 768 000 LBA
    Formatowana z pod Windowsa XP
    MFT jest w 786432 klastrze czyli 6291519 LBA
    MFTmirror znajduje się po środku partycji 61048000 klaster czyli 488384000 vol.sec. Czyli 488384063 LBA

    Inny przykład
    Dysk 0 - 1953497087 LBA
    Partycja 63 - 81915434 LBA
    boot 63 LBA bootcopy 81915434 LBA
    MFT 6291519 LBA
    MFTmirror 5119710 klaster 40957680 LBA vol.sec. Czyli 40957743 LBA

    Wszelkie uwagi prosze przesyłac na PW

    Do odczytu podglądu HEXydecymalnego użyłem WinHEX którego można probować bez ograniczeń tylko do odczytu :
    http://www.x-ways.net/winhex/


    Fajne!
  • #3 03 Lut 2010 09:05
    migol21
    Specjalista HDD Recovery

    Dodałem nowe opisy ID partycji :

    00 - Free Space
    01 - FAT12
    04 - FAT16 (<32MB)
    05 - Extended
    06 - FAT16B (>=32MB)
    07 - Instalable File System (NTFS, HPFS)
    0A - IMB Boot Manager
    0B - FAT32
    0C - FAT32X
    0E - FAT16X
    0F - ExtendedX
    42 - Dysk dynamiczny systemu Windows
    EE - GPT partycja
    EF - EFI System partition wpisany w MBR dysku

    Partycje ukryte czyli Hidden

    11 - Hidden FAT12
    12 - PQSERVICE Ukryta partycja ACER
    14 - Hidden FAT16 (<32MB)
    16 - Hidden FAT16B (>=32MB)
    17 - Hidden IFS (NTFS, HPFS)
    1B - Hidden FAT32
    1C - Hidden FAT32X
    1E - Hidden FAT16X

    Inne w tym i ukryte:

    27 - Toshiba Recovery ,ukryta partycja naprawcza w laptopach Toshiba
    FE - IBM OEM partycja
    DE - Dell 8.0 DellUtility ,ukryta partycja naprawcza w laptopach Dell
    3C - PowerQuest Recoverable Partition
    64 - Novell Netware 286
    65 - Novell Netware (3.1 oraz 4.1)
    66 - Novell Netware 386
    81 - Linux/Minix v. 1.46X
    82 - Linux Swap Partition
    83 - Linux Native File System (EXT2FS)
    84 - OS/2 Hiding Type 04H Partition
    86 - NT FAT Volume Set
    87 - NT IFS Volume Set
    93 - Hidden Linux Native File System (EXT2FS)
    C6 - Disabled NT FAT Volume Set
    C7 - Disabled NT IFS Volume Set

    źródło

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo