[置頂]

書單: 安迪葛洛夫:Only paranoid survives.

Mar 3, 2010

拒絕重灌! 將 Windows 從 non-RAID 系統搬到 RAID 系統的方法

不愛重灌!

五年來我都會在我的個人電腦建立RAID 1來避免硬碟故障帶來的災難。今年初我買新電腦,我選了技嘉MA785GM-US2H當主機版。它的南橋是AMD SB 710,就已經有內建RAID 的功能,幫我省下一片RAID控制卡的錢。

評估我的需求,我的 RAID 1 組合是兩顆 WD 6400AAKS 640GB成為第一組,當系統碟;兩顆 Hitachi 7K1000.B 1TB成為第二組,當資料碟。(我並不需要 RAID 0 or RAID 0+1) 本來最好的情況,就是買電腦時所有零件都買齊,然後把RAID在BIOS都設定好,在空硬碟的情況下開始灌Windows(一般來說,如果你要建RAID 1,這會是最標準的做法。況且AMD SB710 只提供基本的 RAID 1功能,我並沒有在它身上找到 duplication 的功能(也就是拿一個有資料的HDD 跟一個空的HDD新建一個 RAID 1)。所以最好就是灌Windows前就把RAID設好!)可是因為一些說來話長的原因,我的硬碟是陸陸續續到手;而且我因為無法再忍受舊電腦的慢,於是就先拿了一顆WD 6400AAKS灌了Windows 就先開始用了!

用了一個多月,終於,我的四顆硬碟全數到齊! 我也該把電腦建立成當初計畫的樣子了。但是! 問題來了,將 BIOS 設定裡的 Integrated Peripherals -> OnChip SATA Type 從 Native IDE 換成 RAID 之後,我的Windows 每次開機到4顆珠珠合在一起的 logo  畫面時(我的Windows 是 Windows 7 64-bit),就會自動重開機! 無論怎麼改都沒有用(安全模式...不管有沒有含命令提示字元都沒用啦!) 點選INF檔案右鍵安裝也不行,當時到網路上看人家的方法,什麼預安裝 driver 、改 registry 什麼的,試了都沒效! 惟有一件事是有效的...如果在放入Windows 安裝光碟前就設為 RAID 模式,Windows 裝完就順順利利什麼事也沒有(就是要重灌啦!)

(在AMD SB710上,如果你在BIOS裡設為RAID mode,還不算是真的把RAID建立起來。你還要在開機的時候按 Ctrl + F 進入它的 Option ROM Utility界面,才能把你的RAID 0, RAID 1, RAID 10 or JBOD建立起來。但是我有試過,如果你在 native IDE mode 先灌好了一個Windows,只要一把它換成 RAID mode,雖然這時 Option ROM Utility 裡都還是 single disk沒有建立任何RAID組合,Windows也是會跑到logo畫面就重開機了。)

這裡先說一下問題的徵結:當在BIOS設為 Native IDE or RAID的時候,在Windows看起來,你就好像用兩塊「完全不一樣」的硬碟控制晶片。我當初用 Native IDE 灌的Windows , 照internet上網友說的,會拿 Windows 內建的 IDE driver來用。但是當切到 RAID 模式時,Windows 就必須用 RAID driver去 access 硬碟(或說與硬碟控制晶片溝通)。但是呢,原本我的Windows 是沒有把RAID driver載入的(因為沒有這個「硬體」啊);但是我切到 RAID mode之後,又無法進入 Windows。於是就卡住了。

(以上這一段, SomeJoe7777 講的比我更好,請見下文的連結)
(我還另外納悶一件事,理論上 CPU control 在開機時的交接順序是 BIOS -> 開機硬碟的MBR -> boot sector -> ntldr 或 bootmgr 等程式 -> 其餘 OS 程式,為什麼到 Windows logo 畫面才出問題,那之前那一個部分...是用 INT 呼叫或是一個大家都公定的方式去溝通? 所以不會有 IDE/SATA/RAID 的問題?)

最後找到了救星:SomeJoe7777 的文章:
http://www.tomshardware.com/forum/196922-32-switching-storage-controllers-reinstalling-windows

簡單說他的方法:
1. 如果你可以讓新舊兩個硬碟晶片同時存在(例如,你原本用on board chip, 後來買了一個 RAID 控制卡),就先把卡接上,灌driver,讓「要被移植的Windows」系統內有新controller的driver,然後再把硬碟接到新controller上,就大功告成。(我省略了中間許多開機/關機的步驟,當然那些開關機都是必要的!!!)
2. 如果你沒辦法讓新舊兩個硬碟晶片同時存在(就像我們的例子),SomeJoe7777說,你就找一塊 SATA卡,然後把1. 的步驟做兩輪(舊BIOS設定 to SATA卡;SATA卡 to 新BIOS設定),也大功告成。

不過我手上沒有多的SATA卡,也不知道這方法能不能成功,更不想買一片之後不會用到的SATA卡....結果...忽然想到一個方法!

我手上不是有一顆沒在用的 IDE 硬碟嗎? 雖然它才只有 40GB, 但因為我的系統才用沒多久,裝得下! (所以啊...平常屯硬碟真的是有好處的!)

開始動工吧:
1. 把 WD 640GB 的資料 clone 到 Seagate 40GB HDD
(這裡我用的是 Symantec Ghost 11.0。注意Windows 7 會有一個100MB的 boot volume 與 包含系統的 system volume (大小是你決定的)。Ghost 的好處是 在一開始你有權決定這些 partitions 被 clone 過去後的大小,而且也支援不同大小的 disk clone。
2. 用 Seagate 40GB HDD開機看看...要確定它沒有問題。
3. 到 BIOS裡把 OnChip SATA Type 從 Native IDE 調成 RAID mode. 把RAID組合設定好
4. 還是用 Seagate 40GB HDD開機,若有需要灌driver就灌driver,要確定從裝置管理員看到 RAID裝置。
5. 如果RAID硬碟都看得到(把AMD的RAIDXper裝起來! 幫助你確定這件事),下一步就是再用 Ghost 做 Seagate 40GB to RAID_1 640GB 的 disk clone. (很奇妙的是, Ghost 毫無困難的可以認到 RAID_1 640GB 硬碟。我用的是 Windows 98 開機片...)
6. 用 RAID_1 640GB 開機看看...如果順利進到Windows,就大功告成了~

5 comments:

Unknown said...

請教下使用SB710的效能是不是很差
昨天用ST3160312AS*4比不上一顆SATA3的硬碟
還是我Drive的問題
謝謝

Unknown said...

忘了說使用RAID 0

klhsieh said...

當年我在用的時候並沒有去測速
不過文中那台系統我實際使用只在
2010年1月~2012年7月
後來我忍受不了整個系統的速度不符我的預期
又去買了新的系統
(i7 + Z77 + 16G RAM + SSD RAID 0)
所以你的SATA3 硬碟如果是最近買的
已經比我當時的硬碟新了5年了
不可同日而語

我找了一下近期的硬碟評測
http://rezxx.blogspot.tw/2012/10/segate-2t-35.html
seq w/r 可以跑到186MB/s了

憑印象 那時RAID0 的 sequential 應該
是 100MB/s 上下吧

ST3160312AS 也算是舊款硬碟

我找到這個評測
大致參考看看吧
http://techreport.com/review/9147/seagate-barracuda-7200-9-hard-drives/12

我找這個是SB710 raid 0
HDD * 2的
http://hk-miyuki.blogspot.tw/2010/02/amd-27-sata-3-raid-0-amd-sb710-sb850.html

您參考看看吧

klhsieh said...

你如果真想知道是否為drive問題
如果可以的話
就把你的硬碟拿單顆來測 performance 吧

Unknown said...

謝謝你,我再試試