MBR一直定下來的結構如下:
0x0000 (400 bytes) - Code Area
0x01B8 (4 bytes) - Optional Disk signature
0x01BC (2 bytes) - Usually Nulls; 0x0000
0x01BE (64 bytes) - 存放該硬碟partition資料
0x01FE (2 bytes) - MBR signature: 0xAA55
0x01B8 (4 bytes) - Optional Disk signature
0x01BC (2 bytes) - Usually Nulls; 0x0000
0x01BE (64 bytes) - 存放該硬碟partition資料
0x01FE (2 bytes) - MBR signature: 0xAA55
MBR的Code通常是跑到存放該硬碟partition資料的地方,嘗試找出bootable的partition,然後載入並執行該partiton的Volume Boot Record。也有可能是Multi boot的Code。
現在詳細看看partition資料。每一個partition都會以一個16 bytes的entry代表,第一個entry的位置是0x01BE,所以總共可以放4個partition的資料(16x4=64)。
0x00 (1 byte) - Status (0x80 = bootable (active), 0x00 = non-bootable)
0x01 (1 byte) - Partition第一個block的head
0x02 (2 byte) - Partition第一個block的sector及cylinder
0x04 (1 byte) - Partition type
0x05 (1 byte) - Partition最後一個block的head
0x06 (2 byte) - Partition最後一個block的sector及cylinder
0x08 (4 byte) - LBA of first sector in the partition
0x0C (4 byte) - Number of blocks in partition, in little-endian format
有一點要注意的,就是上面的都只是通常的情況,因為MBR裡面要放什麼,如何放,甚至有沒有,從來都不是必然的。
Reference:
Wikipedia - Master Boot Record
How It Works -- Master Boot Record
How It Works -- CHS Translation
1 則留言:
最近骨仔大大研究電腦書很從容呀!唉,珍妮佛腦細胞快死光了。
聽過MBR病毒嗎?
在硬碟最開始的磁區叫MBR (Master Boot Record),有一種病毒專門躲在裡面伺機感染其他檔案,更變態的是,當你要重灌的時候,需要MBR來查看硬碟分割紀錄,因此它會複製一份正常的,你重灌時再把自己換上去,神不知鬼不覺......
珍妮佛麥走
發佈留言