FAT - LBA vs

Başlatan z, 27 Kasım 2013, 20:04:26

z

FATi deşifre ederek SD kart üzerinde dosyalara ulaşmaya çalışıyorum.

SD kartımı PC de winhex ile incelersem MBR kaydının 32. fiziksel sektörde olduğunu görüyorum. Bu bölgenin Lojik sektör numarası 0.

Fiziksel 0. sektöre ulaşamıyorum. (Sanırım winhexi kırmak gerekecek)

Kendi işlemcimle SD kartın 32. sektörünü okursam winhexdeki lojk 0 sektörüyle aynı bilgileri okumuş oluyorum.

Öncelikle neden fiziksel sektör ve lojik sektör tanımı yapılmış?

ilk sektöre 0 dersek

Bir HDD disk C ve D ye bölünmüş olsa 0 sektöründe hangi bilgiler yer alır? C diski ve D diskinin MBR kayıt bilgileri nerede saklanır?

----------------------------------------------

8 GB SD kartı 2-2-2-2 şekline 4  parçaya bölebilirmiyim ve atıyorum C-D-E-F gibi diskler elde edebilirmiyim?


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

FAT12 ile ilgileniyorum.

Her bir sektör 512 Byte yer kaplıyor.

Fiziksel sektör olarak konuşursak;

Neden 0. sektörde MBR yok? MBR nin ilk adreslerinde jpm komutu olduğunu hatırlıyorum.
0. sektöre bakıyorum burada jmp komutu yok fakat sektör sonundaki 55AA imzası var.

32. sektöre bakarsam ilk adresde Jump komutu görüyorum. Son adreslerde de 55AA imzasını görüyorum.

Kafam ilk olarak burada karıştı. 0. sektör ne? 32. sektör ne?

Winhex ile 0.sektörü oku dediğimde gidiyor 32. fiziksel sektöre bakıyor hemen yanında da 0.lojik sektör diyor. (Bu bölümde jmp koduna ait hexi görüyorum.)

Büyük kapasiteli disklerdeki sorun ne onu anlamadım.

Her bir sekötör 512 Byte ise hesaplamada ne zorluk var. Lojik adres bana ne fayda sağlıyor olayı kavrayamadım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engerex

 WinHEXi kırmanıza gerek yok. Open Disk dediğinizde size seçenek sunar. 1. Logical Volumes/Partitions ve 2. Physical Media olarak. Fiziksel medyada kaç gerçek disk varsa onlar listeler.  Lojik te ise C:\ D:\ E:\ olarak diski parçaladıysanız bunları görürsünüz.

ErsinErce

#3
edit..

z

#4


Hocam peki Ilk partitiondaki 512 Byte da MBR yi benzer bir yapida mi? Yanlis anlasilmasin diye tekrar aciklayayim.

Fiziksel 0 ile benim karsilastigim fiziksel 32 sektorleri benzer mi? Dikkatimi her ikisinde de son iki byte'in 55AA imzasi cekti diye soruyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engineer

Çok eskileri bilmiyorum ancak şu an sector size 512 byte ve ilk 512 byte mbr kaydını içerir. (bootstrap koduda dahil, buda mbr nin parçasıdır) Partition'lar ile ilgili bilgi gpt kullansada kullanmasada 1BEh ile 1FEh adresleri arasında yer alır. Burada 4 partition bilgisi bulunabilir. GPT 'ye sahip disklerde yine ilk 512byte mbr (LBA0) sonraki 512byte (LBA1) ise primary gpt header'ını içerir, burada disk ile ilgili bilgiler mevcuttur bir sonraki LBA2 den LBA34 e kadar 128 tane partition bilgisi yer alır, 128 partitionınız olsada olmasada gpt dislerde bu bölüm kullanılamaz, ilk kullanılabilecek alan LBA34 tür. Bu arada gpt kullanan diskler, diskin sonunda tekrar gpt yedeği bulundururlar, bu alanda secondary gpt header'dır. MBR ye dönecek olursak, örneğin sizin ilk partition LBA32 (offset değeri 4000) den başlıyor anladığım kadarıyla, öyleyse mbr kaydında 1C6h adresinden itibaren 4 byte şu bilgi yer alıyor olmalı: "20 00 00 00" buradaki tüm veriler little endian formatındadır. Sonraki 4 byte ise partition'daki sector sayısını belirtir, örneğin 4GB lık bir partition için bu alanda "00 00 80 00" yazılıdır. Partition'ın başladığı alanlarda ilk sector dosya sistemi ile ilgili bilgileri içerir, mbr ile alakası yoktur (fs information sector) fat, ntfs, ext vs.. bilgileri vardır. Bu alanda tekrar 55 AA görmeniz normal, çünkü fs inf. sector'lerin son 4 byte lık imzası 00 00 55 AA dır, mbr'de olduğu gibi. Birde unutmadan bu bilginin (fs inf.) yedeği ilgili partition'ın son sektöründe tekrar yeralır.

z

Mikrosoftun herhangi bir işletim sisteminde formatlanmış bir SD kartın FAT tipini (12,16,32 vs) öğrenmek istiyorum. Eğer FAT tipi benim yazacağım programın tanıdğı FAT tipinde değilse "Bu SD kartı okuyamam mesajı vereceğim"

FAT tipinin nerede kayıtlı olduğunu bulamadım.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engerex

#7
FAT16 için 36:3D, alacağı değerler FAT, FAT12, FAT16, hepsi sıfır.
FAT32 için 52:59, alacağı değerler FAT32
NTFS için 03:0A, alacağı değerler NTFS
exFAT ???
Emin olmak için diski formatlayıp görebilirsin.

mesaj birleştirme:: 29 Kasım 2013, 14:31:03

Bunlar volume değerleri

z

Kullanılan FAT, FAT12 mi 16 mı 32 mi bunu nasıl anlayacağım?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engineer

MBR deki partition table'dan ilgili partition girdisinin 5. byte'ını okuyarak.
01h - FAT12
04h - FAT16
06h - FAT16B
07H - NTFS
... vs liste uzayıp gidiyor bu şekilde, ayrıntılı bilgi wikipedia'da mevcut.
http://en.wikipedia.org/wiki/Partition_type

z

#10


Buradaki 1C3 den FAT Format tipini 6 yani FAT16 olarak ogrendim.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com