iT邦幫忙

0

如何看硬碟的MBR?

yoyolo 5 年前7802 瀏覽

我做了軟體的RAID,想看MBR是否每顆硬碟上都有,有什麼方法可以看的到嗎?我的OS是centos。謝謝。

2 個回答

0
cmwang
iT邦高手 1 級 ‧ 5 年前

那種RAID?? 如果是RAID的話用dd把實體HD的MBR dump下來(i.e. dd if=/dev/sd? of=sd?.out bs=512 count=1),然後比對一下吧....

2
slime
iT邦大師 1 級 ‧ 5 年前

您用哪種方式製作的軟體 RAID ?

以磁碟機的架構來看, 最前面的 512Byte 是 MBR 區及分割區(Partition)表,
而分割區建立之後, 軟體 RAID 才會把特定幾個分割區組合成邏輯上的分割區.
一般的軟體 RAID 並不會把 MBR 區加進去.

所以想知道您是以什麼方式製作軟體 RAID ? 確定一下這軟體的原理.

另外硬體式(包括軔體模擬)的 RAID , 是以完整硬碟先製作出邏輯上的硬碟, 才會包含 MBR 區.

看更多先前的回應...收起先前的回應...
yoyolo iT邦新手 5 級 ‧ 5 年前 檢舉

我是用centos做raid1

slime iT邦大師 1 級 ‧ 5 年前 檢舉

那您是用哪些指令, 對哪些磁碟機或分割區組合成 RAID ?
大約的分法: 只要是對分割區組合成 RAID , 大概不會包括 MBR ; 對磁碟機組合成 RAID , 才比較可能有 MBR 區
另外也建議說明一下: 為什麼要去看 MBR 區? 軟體 RAID 本身是已經開機後才製作的, 所以 MBR 區最重要的兩個功能, 一個是開機引導程式, 一個是分割表, 只有分割表對於資料讀寫才有用到; 既然是軟體 RAID , 大概要注意的是硬碟狀態如何檢查是否有異常, 如何更換硬碟及重建 RAID , 那, 為什麼要去看 MBR 區?

yoyolo iT邦新手 5 級 ‧ 5 年前 檢舉

slime提到:
只要是對分割區組合成 R

1.請教一下,可以再詳細說明些關於"只要是對分割區組合成 RAID , 大概不會包括 MBR ; 對磁碟機組合成 RAID , 才比較可能有 MBR 區"這段嗎?
2.在安裝centos時,我是直接分割磁區,然後做raid設定好,再繼續安裝centos.不是在安裝好的centos下去再做raid.
3.因為我看很多文章說,軟體raid安裝好後,主導開機的MBR只會安裝在其中一顆硬碟,我想確定是否兩顆硬碟上都已經有設定好MBR開機程式了.

slime iT邦大師 1 級 ‧ 5 年前 檢舉

以個人經驗, 主機板或 RAID 卡製作的 RAID 1 , 因為是直接以磁區對應, 所以寫入任何一個硬碟的資料, 另一顆硬碟也會有一模一樣的資料, 這也包括 MBR 區及所有分割區.

但是網友用的是軟體 RAID , 這邊就有很多不確定的地方, 因為軟體 RAID 表示已經有其他開機碟, 那製作的 RAID 1 就可能是用其他磁碟或其他分割區, 既然是用其他硬碟開機, 那 RAID 1 內的磁碟, MBR 有沒有開機引導, 在這環境下根本沒有用到, 所以很疑惑的是, 既然沒用到又不影響運作的東西, 幹嘛一直想看?

再者, MBR 只有"引導程式", 只負責找到第一個 Active 的 Partition , 再由該 Partition 內的 OS 接手; 以一般硬碟的話, 通常 OS 都可以透過光碟開機救援或修復 MBR ; 但是以 RAID 的話, 就要再注意該 Partition 內的 OS , kernel 是否能處理軟體 RAID 的功能, 所以要透過軟體 RAID 1 開機, 還有很多要注意的事項, 就又回到原本的問題: 除非要使用軟體 RAID 來開機, 不然為什麼要看 MBR 的引導程式?

而且軟體 RAID 還需要熱插拔支援, 例如: 原本用 /dev/sda3 跟 /dev/sdb3 組成 RAID , 如果 /dev/sda 壞了, 除非有熱插拔, 直接把 sda 換成 sda' , 並處理 RAID Rebuild , 不然如果需要停機 -> 換硬碟, 新硬碟上也不一定有原本的 MBR 架構, 那根本連開機環境都與之前不同, 還是要靠人工去維護開機的處理. 甚至設定不當的話, /dev/sdx 順序與原本 RAID 不一致, 連 RAID 都找不到了, 光想 MBR 區是否存在, 並不符成本.

所以從很多角度看, 本來軟體 RAID 就不太適合拿來開機用, 就算要開機備援, 也可以透過 dd 直接複製一份, 或者用光碟當開機引導都可以克服; 所以才會請大家把重點回到"如果真的遇到硬碟問題, 如何處理重建及還原", 雖然 RAID 1 有安全效果, 但更重要的是, 磁碟的本質是讀寫資料, 所以要讓這些資料可以使用, 還是最基本的動作.

slime iT邦大師 1 級 ‧ 5 年前 檢舉

如果只是要測試的話, 照下面步驟:

  1. 硬碟 A & B , 先執行 dd if=/dev/zero of=/dev/sdx (確定連 MBR 區都清空)
  2. 把硬碟 A & B 裝到主機上, 開始安裝軟體 RAID 及開機引導(lilo 或 grub ).
  3. 裝完之後, 把兩顆硬碟都拿下來.
  4. 用其他硬碟或光碟開機
  5. 分別用 dd if=/dev/sdx of='檔名' bs=512 count=1 , 把兩顆硬碟的 MBR 區抓下來
  6. 用軟體比較或 HEX Editor , 看看這兩個檔案是否相同.
slime iT邦大師 1 級 ‧ 5 年前 檢舉

先說明一下, 硬體或軔體 RAID 是比較方便的區分, 不是正式的名稱.

一般電腦開機時, 都是透過主機板 BIOS -> (硬體 RAID 會在這階段) -> 找到磁碟機(不一定可以開機) -> 選擇可以開機的磁碟 -> 磁碟的第一個磁區 -> 如果是 MBR 式, 則 MBR 內的引導程式會繼續找到 kernel loader -> Kernel Loader 找到真正的 Kernel 開機 -> Kernel 會開始接手硬體驅動及資源配置等 -> (軟體 RAID 會在這階段) .

硬體或軔體 RAID 就在主機板 BIOS 要找磁碟時, 就已經把兩個"實體"的硬碟, 組成一個 RAID 1 (舉例), 回報主機板 BIOS 時, 主機板 BIOS 只會看到一個"邏輯"硬碟, OS 開機及安裝動作, 看起來都像只對一個邏輯硬碟動作, 但實際上硬體 RAID 會把寫入動作分別寫到兩個實體硬碟, 而且通常使用在 Server 上, 會搭配熱抽拔.

而軟體 RAID 是 OS Kernel 甚至是 module 處理的動作, 已經遠遠在後面, 以上面的流程, 如果:

  1. 主機板 BIOS 找到的第一個可開機硬碟是沒有 MBR 區(比如舊硬碟壞了, 剛換新硬碟, 或者硬碟順序換了)
  2. MBR 區與 OS 不同(比如市面常見的新硬碟是適合 Windows , 而如果原本環境是把 lilo 或 grub 裝在 MBR 區, 那這時候引導程式也不完整)
  3. 引導程式及 Kernel Loader 不一定認識軟體 RAID : 因為 Linux 的多樣化, 有些精簡的版本只提供標準磁碟, 會把軟體 RAID 放在 module , 等 Kernel 載入時才會啟動.
    只要這些步驟有一項發生, 軟體 RAID 就無法順利開機, 而問題不一定在 MBR .

所以才會提醒, 只看 MBR 區不太有效, 因為要開機還要上面這麼多階段配合.

順便聊一下, Mac OS X 或 Windows Server 可以透過軟體 RAID 開機, 因為這兩個 OS 處理這方面的動作時, 把上面的開機步驟都"按奈"好了, 甚至開機順序在一定條件下也可以互換; 而 Linux 下由於各功能較獨立, 所以這方面的串連就要靠使用者自己找資料.

slime iT邦大師 1 級 ‧ 5 年前 檢舉

另外有幾點個人想法:

  1. 由於這些資料很硬, 所以描述時也沒有修飾, 如果態度讓人覺得不當還請見諒.
  2. 雖然邏輯上"大約"是這樣, 但不同程式或產品到底如何定位, 有時並不確定, 比如 MBR 區的引導或 Kernel Loader , 那 lilo 或 grub 該算哪一種, 或兩者兼具?
  3. 由於之前回應時, 同時聯想到"成本"的估算, 所以有些描述看起來很怪,
    例如: 要看 MBR 區的技術不難, 但是要驗證是很花時間成本(例如要清空硬碟才能確認 MBR 區是自己建立的, 而不是新硬碟上面就有裝好的), 所以才會好奇為什麼要驗證, 但是沒有提到時間成本的話, 可能有些人會以為我在刁難. (我檢討一下自己....)
  4. 所以建議您再多描述一下需求或期望達到的功能, 畢竟多一個功能可能整個架構就會大改, 如果有各位網友的經驗可能可以省下更多成本.
  5. 乍看之下硬體 RAID 費用不低, 不過這些費用跟上面的經驗, 就可以評估看看成本, 還有假設一下: 如果硬碟真的壞掉, 處理成本? 之前的客戶用硬體 RAID , 壞掉一顆硬碟的成本是 $12000 , 只計算更換硬碟的 IT 人力及硬碟的錢, 不含資料損失的部份. 所以如果要選用軟體 RAID , 我會強烈建議 MIS/IT 至少分析一下"硬碟壞掉時的處理成本"; 而且老闆或主管還要再看到"資料損失或無法營運的成本"

我要發表回答

立即登入回答