存儲結構主要內容:css
磁道
linux
柱面
app
分區
ide
扇區
spa
引導扇區
操作系統
主引導扇區
orm
主引導記錄
xml
硬盤分區表blog
課程快結束了,開始整理之前作的冗雜的筆記,發現這部分細節方面仍是不太清楚,就查資料總體再總結一下;若是有不詳細或錯誤之處,望共同探討; ip
1. 磁盤通常有多個盤片,每一個片面雙面存儲;
2. 磁道(Track)是盤面上由磁頭磁化出來的,以盤片爲中心的不一樣半徑的同心圓區域。
3. 柱面(Cylinder)是有多個盤片的相同磁道組成的柱體;柱面是從外向內編號的,依次爲0柱面,1柱面...而且根據機械特性,柱面越靠外,吞吐量越大
4. 扇區是磁道上的圓弧狀區域,每段圓弧叫作一個扇區,扇區從「1」開始編號,每一個扇區中的數據做爲一個單元同時讀出或寫入。
5. 硬盤的0柱面、0磁頭、1扇區是系統啓動時首先讀取的扇區。它由三個部分組成,主引導記錄(MBR)、硬盤分區表DPT(Disk Partition table)和硬盤有效標誌(55AA)。在總共512字節的主引導扇區裏主引導程序(boot loader)佔446個字節,這部分標示那個分區有系統引導信息,它執行到最後的是一條JMP指令跳到操做系統的引導程序去。第二部分是disk Partition table(DPT)區(分區表),佔64個字節,每16KB存儲一個分區信息,硬盤中分區有多少以及每一分區的大小都記在其中(目前linux內核支持最多16個邏輯分區)。第三部分是magic number,佔2個字節,固定爲55AA。
注 1.) MBR、分區表,通常都是存在硬盤的0號扇區上。應該說0號扇區包含MBR和分區表,而不該該是MBR包含分區表。
2.) 最後的兩個標誌「55 AA」是分區表的結束標誌,是檢驗主引導記錄是否有效的標誌;若是這兩個標誌被修改(有些病毒就會修改這兩個標誌),則系統引導時將報告找不到有效的分區表
6. 存儲容量=磁頭數×磁道(柱面)數×每道扇區數×每扇區字節數
7. 分區是按照柱面劃分的,劃分某幾個相鄰的柱面爲一個分區,用戶分區是按照大小的,可是系統會找最鄰近的柱面來創建該分區,所以實際的大小會跟用戶指定有小幅的出去;
8. 低格是劃分磁道;高格是創建文件系統;
9. 數據是按照柱面來存儲的;數據的讀/寫按柱面進行,即磁頭讀/寫數據時首先在同一柱面內從「0」磁頭開始進行操做,依次向下在同一柱面的不一樣盤面即磁頭上進行操做,只在同一柱面全部的磁頭所有讀/寫完畢後磁頭才轉移到下一柱面,由於選取磁頭只需經過電子切換便可,而選取柱面則必須經過機械切換。電子切換至關快,比在機械上磁頭向鄰近磁道移動快得多,因此,數據 的讀/寫按柱面進行,而不按盤面進行。也就是說,一個磁道寫滿數據後,就在同一柱面的下一個盤面來寫,一個柱面寫滿後,才移到下一個扇區開始寫數據。讀數 據也按照這種方式進行,這樣就提升了硬盤的讀/寫效率。
10. 分區並格式化後的硬盤以扇區爲基本單位;系統讀取數據時每次讀取一個扇區;讀出數據時經過告訴磁盤控制器要讀出扇區所在的柱面號、磁頭號和扇區號(物理地址的三個組成部分)進行。
在Linux裏有一種方法能夠恢復MBR是用以下的命令:
# dd if=/boot/boot.bak of=/dev/hda bs=446 count=1
其中bs(buffer size)是指重寫的字節數。爲何不是512呢?主引導扇區是一個扇區(512字節呀)?
A:答案是由於咱們用上面的命令是爲了修復可能被病毒修改了的主引導記錄MBR,或者想把LILO卸載掉,而不是恢復整個主引導扇區。因此咱們只把主引導扇區的備份文件boot.bak的前446個字節重寫入主引導扇區。boot.bak是咱們在安裝Linux以前整個主引導分區的備份。若是咱們把512個字節所有寫入主引導扇區就可能會把安裝了Linux後改變了的硬盤DPT表也破壞掉。那就壞事了。 :-)
固然若是是最新備份過的MBR,而且因爲誤操做分區表被破壞還原時就要使用bs=512了
這也就是爲何進行MBR備份的時候要指定bs=512 或者 bs=1k, count=1的緣由. 而後恢復時常常看到HOWTO裏面是bs=446 count=1. 這個446就是指令部分的恢復, 不是DPT的恢復.
參:
http://sonyericssonss.blog.163.com/blog/static/109683969200911233723670/
http://zh.wikipedia.org/zh/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95