2007年5月31日 星期四

[轉貼]不同機型用Ghost複製XP,而且不必封裝

作者:(MyChat 數位男女)fatball


有大大在問關於 Ghost 複製 XP 的問題,我想同機型機器間複製應該是沒問題的,但不同機型間的複製可是問題多多喔,我已經找出解決方案,而且完成許多電腦的複製,我把方法 post 出來大家參考。


如果機型一模一樣,可以用 Ghost 做成映像檔,用那個映像檔可以重灌所有的同機型電腦,沒問題的。
我們學校高達 82 台同機型電腦就是這樣安裝起來的啊!當然有幾點要注意:

1.如果沒有登入網域的問題,重灌完成後改電腦名稱就可以了。

2.如果電腦要登入網域,重灌完第一次開機要先拔除網路線,待改完電腦名稱後再重新接上網路線,進行其他群組與加入網域的設定。

或許有人會問:
同機型電腦比較簡單,如果不同機型呢?
一樣可以用 Ghost 複製 XP,而且不必封裝喔!我在學校已經實驗成功了,學校內高達10多種不同機型都安裝了同一版本的XP

準備工作如下:
1.用來做映像檔的電腦必須用原始安裝方式安裝的(也就是不能拿封裝過的 XP 來用),就累這麼一次。

2.準備被重灌電腦的驅動程式(可以先下載放在 D 碟中)

3.確定兩部電腦的系統磁碟分割區一樣大(最好是這樣啦,比較不會出問題,反正安裝完還可以再調整啊!)

4.確定要重灌那台電腦的電源管理模式,從裝置管理員那裡查詢電腦選項,可以看到(有標準PC,ACPI PC,ACPI uniprocessor PC,ACPI Multiprocessor PC,MPS uniprocessor PC,MPS Multiprocessor PC)。這項一定要選對,否則重灌完會無法開機的。

5.準備一支 PS2 滑鼠(因為等一下會砍除 USB 驅動程式)。

正式開始:
1.先將原電腦以磁片(或開機光碟或USB開機碟)開機後,用 Ghost 將系統碟備份一份到D碟中,以免後面程序錯誤導致系統毀損,那就完了。

2.完成備份後,原電腦正常開機。打開裝置管理員依序刪除以下驅動程式(如遇到電腦說要重新開機,千萬不要重開):音效卡→網路卡→USB驅動程式(如果有很多個,請依序刪除)→顯示卡(這裡會要你重開機,千萬不要重開喔)。

3.將裝置管理員→IDE ATA/ATAPI控制器打開,對名字最長的那個按滑鼠右鍵→選擇更新驅動程式→不要選自動安裝→選擇自行安裝→顯示相容硬體→選擇標準雙通道PCI IDE控制器

4.將置管理員→電腦打開→選擇更新驅動程式→不要選自動安裝→選擇自行安裝→顯示相容硬體→選擇要重灌電腦那台的電源管理模式(一定要選對!一般而言,2003年以後生產的機器多為ACPI uniprocessor PC,之前生產的則有不一樣的設定,切記!)

5.正常關機。

6.若要硬碟對硬碟複製,則需開機殼,將要重灌的硬碟接上來,Ghost 選擇 partition to partition。你也可以直接將系統碟備份成映像檔,然後再用其他方式(如網芳的方式傳到要重灌那台電腦的硬碟後再去做 Ghost 還原)。

7.將原電腦以磁片(或開機光碟或 USB 開機碟)開機後,用 Ghost 將剛剛備份的映像檔還原回來,讓原電腦恢復正常。

8.要重灌的電腦照第7步驟的方式用 Ghost 還原映像檔(如果在第6步驟時是選擇 partition to partition,可以直接開機)。開機後電腦應會重找驅動程式,這時會需要你安裝一些這台電腦所需的驅動程式→通常會重開個2~3次,確定安裝完成 後,選擇關機,如果可以正常關閉電腦表示你成功了。如果不能正常關機表示你的電源管理模式選擇錯誤了,你必須重來一次了。

說真的,過程粉累 ,我打字也粉累。

本來當作私有密技(群校只有我一個人會,其他人只是聽說我是這樣做,但沒實際動手做過),但我還是分享給大家知道。

我目前每個電源管裡模式都製作了一份專有 Ghost 映像檔,沒辦法學校裡的機型太多了,要我每一種機型就重頭灌一次XP,我不瘋了才怪。

目前用 IBM 的 A50 機型成功移植到 LEO 兩種機型(都是微星主機板),三種 ASUS 主機板以及一些雜牌電腦。
至於我自己個人電腦則是用為星主機板的 AMD Duran 1.7 移植到HP筆記型電腦,目前使用正常。

我參考網路上的萬能複製法,但屢試屢敗,花了半年才發展出這套程序,希望可以造福大家

2007年5月10日 星期四

11029 Leading and Trailing

題目網頁

問題:
給定三數字,T代表Case數目(T<1001),n為底(32bit integer),
k則為指數(k<10000001),求nk的前三位與後三位數字(中間以'...'分隔)。

解法:
利用對數來計算前三位,mod 1000取得後三位

應注意部份:
使用scanf()時使用 %lf 才可吃到 double
瞭解 double 與 interger 可存數值上限,並小心別 Overflow

使用到之特殊函數:
log10(),floor(),pow()

ps.如果助教看到這篇的話,不要以為是抄襲啊,我是有修課的學生啊,可以比對一下帳號 :)

2007年5月9日 星期三

double 型態 使用 mod 運算子

會出現錯誤,因為 mod 是取餘數(註一)

而 double 因為有小數點,只要是有理數的話,都可以 double 表示

所以一運算之下,結果沒有餘數,因此 gcc 預設會出現錯誤訊息。


本來想用 floor( )這個函數加上一些運算來代替這功能,

但floor( )只能回傳 largest interger value

所以 傳入floor( ) 的值也不能太大...

就算是unsigned long interger 也只大約 4*10^9

比起 double 可到 10^308 可說是小到不行啊...




註一:Wikipedia:Modulo_operation