
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:
określa ze nie jest bootowalna a 00
Code:
określa ,ze jest bootowalna.
80
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.
Quote: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
Quote: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.

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

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.


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/