Category Archives: 電腦

電腦不止是一份職業﹐也是從少到大的嗜好。

Head First Python

說到要學電腦程式語言,Python相信是近年最炙手可熱的語言了,一來Syntax易學易用,二來library支援眾多,更是近期最熱門人工智能的主要語言,我最近因工作需要也要學Python。以前我讀大學時程式入門課教C,然後過幾了年進化為教Java,不過最近陸續轉為教Python了。公司新請回來的大學生個個都懂Python,吾等老海鮮也要與時並進才不會被淘汰。

原本公司內部個兩不同部門使用不同語言,chip testing和apps那邊以前用tcl,貪tcl不用compile方便操作,我們software testing那邊則以C++為主,因為需要OOP和static type來架構軟件測試系統。兩個部門有很多基礎的應用程式功能重壘,不過因為使用不同語言,同一個功能需要寫兩次。高層認為一code兩寫很沒有效率,下令我們統一使用同一語言,在雙方列出對語言的要求後,Python成為很自然的選擇。Python是interpreter language不用compile,同時又支援OOP和type checking,一次過滿足我們兩個部門的願望。

學習新程式語言,很多人喜歡讀網上課程,不過我比較傳統喜歡看書,我嫌網上課程看影片太嘥時間,看書容易明的部份可以速讀,難明的部份可以花多此時間重看幾遍。學習寫程式最重要是落手落腳寫code,跟課本的練習做同做網上課程的功課分別不大,反正程式寫得好就work有bug就唔work,沒有需要改功課對答案的問題。在芸芸眾多本Python書中,我挑選了這本《Head First Python》,看電腦書不是大大本很厚多字就好,最重要是把應用慨念解釋清楚,有時一張圖或一個例子可以抵得上三版紙枯燥的文字。這本書開宗明義不是教寫程式,而是寫給已懂其他語言的人學習Python語法。這本書最優勝之處的單元的編排,整本書就是寫一個有趣的小小網上應用程式,每章都教一些新東西為程式加上新功能,看書就好似一路做project咁不會悶。最怕有些程式書只是把語法由頭到尾列出來,再口水多過茶地加鹽加醋地長篇大論講解。

最初看Python很不習慣那個indent style,寫了咁多年程式都係用curly bracket, 唯有Python別樹一格強迫indent,不過寫幾個星期習慣了就不再覺得礙眼。同C++或Java比,Python同Ruby算是第四代的程式語言,去年學過Ruby所以Python很快上手,兩者的設計理念不同,不過最核心的本質其實一樣,明白了個背後用C寫的Ruby/Python個interpreter,睇埋個interpreter入面的internal data-structure,咁成個語言就一理通百理明。Ruby就乜都係object,Python雖然有人都係咁講,但我認為Python的真蒂其實乜都係callable,連class declaration都係一個function。明白了這一點後,Python所有新feature concept,如generator,declaration,context manager,future, asyncio等等就能清楚理解明白。

睇完本書跟住它做完個project仔,再上Python官網看一次官方tutorial,把standard library的所有API係咁意睇一次,大慨知道有乜function乜library可以用,遇到問題就問stack overflow大神求救,還有功能強大的PyCharm相助,其實Python很容易上手。越寫越覺得Python好使好用,大有相逢恨夜的感覺。現在學了用了Python兩個多月,自問至少追上公司新仔的水平,review佢地寫的code也不會失禮問白痴問題。

Embedded Linux Primer 2nd Edition – Christopher Hallinan

在PC上安裝Linux很簡單,上網下載個今期最新最流行的distribution,然後跟著畫面步驟照做就可以,基本上與安裝Windows同樣方便快捷。在embedded system上安裝Linux,就沒有這樣簡單了,embedded system規格千萬化,就算是使用同一塊晶片做CPU,不同的開發板也有不同設備。若果是熱門多人用的開發板(如Raspberry Pi, BeagleBoard等)還好,用家社群可以找到不同package的Linux系統,有些冷門的開發板就只有廠家提供的package,若果不適合或廠家不再更新,就要自已落手落腳去compile合用的Linux。

這本書2011年出版,當年Linux kernel版本還是2.6,現在已經去到4.14。在科技日新月異的電腦界,三四年已經面目全非,看這本六年前出版的「舊書」,內容會不會過時?其實作業系統的轉變非常緩慢,雖然每個版本的Linux也有新功能,但始終都是建立在UNIX架構基礎上,所有接近CPU硬件的低階知識都是累進的,畢竟CPU架構十多年來也沒有大變化呀。說到要從source code開始去compile Linux,網上料資一是太零碎一是太深,除非付費報名上堂去學,否則要靠這本書當指路明燈。不過這本書並非入門書,對讀者程度有頗高的要求,一是要對Linux作業環境有一定認識,二是要有寫程式和搞硬件的經驗,除非是工作需要或電腦科的學生,應該沒有人會自己compile Linux。

這本書的內容比之前看那本How Linux Works更低階,首兩章講什麼是embedded system,其實會看這本書又怎會不知道,不過開場白總不能避免。第三章正式進入戲肉,講解kernel的source code的架構,粗略介紹如何config。這本不是講kernel的專題書,大部份compile Linux的人都不會改動個kernel,所以不用講太深入。之後兩章分別講kernel init同user space init,平時開機見kernel印一大堆message出來,終於知道那些message是什麼。這本書解釋root file system十分好,之前看其他地方了幾次解釋都看不明白,今次終於睇得明。另一章是教寫device driver亦是本書重點,用一個dummy drive做例子,可以跟著書照做自己試下寫。

之後的章節很有系統介紹整個embedded Linux需要用到的各種工具,從compiler到debugger到build system,讓讀者知道有什麼東西可供使用,然後可以自己google更進一步的資料,如何連名稱也不知道,想google也無從查起。原本我打算用Yocto去compile,不過經這本書提醒,再看看網上的比較資料,初學者還是用Buildroot較容易上手。

之前只是跑其他人寫落的script去compile kernel,感覺很不實在,完全不知道自己在做什麼,如果有什麼事唔work,只能叫人幫手整,自己完全幫不上忙。睇完這本書,我才覺得有足夠的知識,去應付工作上可能遇到問題。我有自知之明,我還未夠料親自落手落腳去fix問題,不過至少填寫bug report時,不用好白癡咁乜都只係識話唔work,至少識話俾人邊度唔work有乜野要fix。

How Linux Works – Brian Ward

接觸Linux大大話話都有廿幾年,從最初唔知買乜鬼雜誌送CD,自已裝來裝去到搞唔掂個graphics driver,到後來Linux一統江湖,日日返工都在Linux上寫code,到最近因工作需要自己compile Linux,才發覺我從來沒有認真學習過Linux。日常使用Linux跑程式,砌機灌OS裝Linux那些手板眼見功夫,遇到難題上網Google答案輕易過關,基礎打不好,現在書到用時方恨少,要有系統地重新認識Linux。

這本《How Linux Works》雖然美其名是入門書藉,不過除了第一章的Linux簡介,第二章日常使用的commands外,第三章打後難度三級跳,從Filesystems,到Kernel Bootup,systemd執行先後次序,每一個題目都超過一般用家要知道的知識,可以說是Linux admin的指南索引。這本書不太厚只有不到四百頁,所以每個題目都不會講得太深入,反而是系統化地把Linux的內容例出來,讀者大約知道有什麼題目,然後自己再找上網找資料。

這本書的內容,大慨有八成我以前看過,所以看過本書非常快,很多章節只是粗略翻看。剩下來的兩成新知識非常有用,補完我對Linux認知的缺漏,有些很簡單的基礎慨念,一般網上速食解答沒有講解,例如/usr其實同user無關,新process如何fork出來,shell script可以開subshell,X系統server同client的分功等等。很多東西我懂得用但不求甚解,現在學好了基本知識,開始看通Linux的設計邏輯,很多疑問便一理通百理明。

不過看完這本書,雖然對Linux的認識是完整了,對於compile Linux的幫助不大,頂多在我執package時至少知道放了什麼入去個build度,但解決不了kernel開不到機的燃眉之急,還要繼續找其他書看。

Google Daydream VR 初玩感想 – 虛擬實境會步3D的後塵嗎?

15241226_10154552264290269_2166070192745834860_n

買了Pixel電話,沒有理由不買Daydream View。Daydream未推出時已經預定,美國出了好幾個星期,等到頸到長終於收貨。急不及待,馬上開來玩。身在公司,為免玩VR的傻樣被拍下來公諸於世,當然不能在座位玩,book間會議室躲起來玩。返工時玩耍倒沒有所謂,在高科技公司工作,只要準時交到貨,基本上不返工也沒有問題。開盒沒有什麼驚喜,未到手前上網早已看過不少開盒報告,不過VR這玩意,讀他人的文字完全不能身同感受,要自己試過才有知好壞。

15192556_10154552264280269_1350863380915190959_n 布織VR眼罩和遙控器

15284180_10154552264295269_1647874060556351606_n 可以把遙控器放入眼鏡收藏

15220178_10154552264340269_5049843559083814150_n 外觀有點像滑雪鏡

除了在商場試過三叔的VR Gear幾分鐘外,我沒有玩過其他VR,所以無從比較優劣。Daydream眼鏡十分輕盈,初戴時覺得對焦不準,後來上網看正確的戴法,才知那條帶不是放在耳仔上,而是要像戴滑雪鏡般放在額旁。下載Daydream的App後,把部電話放入去作螢幕。我的Pixel不是XL,解像度不是最高,放入去看VR會看到LCD點陣的網紋,看多一陣眼睛自動適應,除非特別去留心看,玩時腦袋會自動無視網紋。據網上說用XL也會看到網紋,只是網點細些比較難察覺。玩VR原來是要帶眼鏡,雖然個電話放得很近,但那塊鏡片把焦距拉遠,大約等於平時看書的距離。如果你近視深,不帶眼鏡看不到字,那玩VR時就要帶眼鏡。由於Daydream用布做,可以在VR內戴普通眼鏡,戴時有少少技巧,把眼鏡放入VR對正才戴上面,就不會不舒服。那其他用硬膠殼的VR系統,是否要戴隱形眼鏡才可以玩?由於Daydream用布做,VR眼罩鼻位有空隙會漏光(大慨設計要照顧鬼佬的高鼻樑),解決方法很簡單,把房間的燈關掉了就可以,反正玩VR都係一個人自己玩。

15235359_10154558287445269_1304156188857872367_o 系統教學模式

15304531_10154558287470269_935083658488211014_o VR Home Page

初次使用時有教學模式,基本上是在show off技術。把玩家放在一個虛擬森林內,叫玩家轉頭追看蝴蝶飛夢,抬頭看天上的星星,又把遙控器當電筒用,照森林中的各種動物。畫面非常流暢,轉頭時完全感覺不到有lag,同三年前用Nexus 5玩Cardboard有天淵之別,當年lag到頭暈。遙控器手感還可以,主要是用來指畫面當mouse用,靈敏度大慨和Wii控制器差不多。目前Google的VR平台並只有很少app,最失策是不支援舊有的Cardboard apps。我看了不少Youtube VR的360影像,下載了幾個免費VR App來玩,還買了一個恐怖類遊戲,然後趕在半小時內退貨不收錢。玩了個多小時,眼睛便已十分疲累,好像開通宵長途車般辛苦,該是時候休息回去工作了。玩VR十分食電,電話非常溫暖,不過這都是意料中事。有點意外是玩VR不能用藍芽耳機,因為藍芽同樣食電,玩了十幾分鐘後Daydream自動提示電話過熱,要我轉回用有線耳筒。

15304628_10154558287420269_4668906876678167971_o 虛擬博物館

15259209_10154558287430269_5260076932932947002_o 360度看球賽

15259499_10154558287585269_8143722669207502736_oBBC的怪獸VR遊戲

親身深度試玩過VR後,我預測VR將會是另一個3D,在一輪hype過後,市場便會尋找更新奇好玩的東西。事實上VR有著3D相同的死症,就是看得長時間眼睛會很累。有些所謂的「大屏幕」的VR app簡直是除褲放屁,戴著VR眼罩文字或2D影片很辛苦,我寧可在廿四吋大芒看得舒服。看360度影像很有趣,頭鱷鱷可以看鏡頭後面,但新鮮感過後,其實鏡頭後面沒有什麼好看。例如看球賽當然是向前望看比賽,擰轉頭看其他觀眾來幹什麼。VR唯一的生存空間是打機,開賽車,揸飛機用VR玩很有代入感。恐怖遊戲與VR簡直完美結合,坐在梳化對著電視玩不會太驚,始終你知道電視入面是另一個世界, 用VR玩則完全不同感覺,真的以自己處身遊戲之中,好驚驚。至於其他遊戲類別,我想不到VR有什麼優勢,電子競技類的講操控準確,VR對一心求勝的玩家只是分心負累。運動類遊戲走Wii和Kinect的老路,新鮮感過後不能留著玩家。戴VR的膠樣和眼罩的衛生問題,VR也吃不到Wii和Kinect的party game市場。至於動作射擊類遊戲,對於玩開實彈射擊的我,射擊遊戲根本是個笑話,感覺與現實相差太遠了。只靠模擬和恐怖類遊戲,市場夠不夠養起VR開發商呢?我不太樂觀。

Oculus,Vive和PS4 VR那些獨立VR系統,除非真是深度玩家發燒友,買了回來若覺得不好玩,幾百美元就浪費了。用手機為平台的VR,過多兩年入門級手機也合乎Daydream的規格,Daydream View一百美元不到,遲些第三方廠商或山寨貨肯定更平,如果手機技援VR的話,不妨平平地買個VR眼罩回來試玩。只要每次不玩多過半小時,玩VR應該不會傷眼吧。

Google Pixel 第一天實戰測試

20161024_214713

望穿秋水,終於等到Google Pixel寄到。我是Google手機的忠實擁躉,先後擁有平價王Nexus 5,和Mo記大機Nexus 6。三叔,小米那些不是純正統血的Andriod,只有Google原味版才是正宗。開盒報告不用我寫,網上有很多影片可以看。有趣是跟機有兩條USB-C線,一條兩邊都是USB-C頭,用來插叉電器,另一條是舊USB-A大頭,用來插電腦。有一舊細USB-A to USB-C dongle,說明書是用來駁iPhone條lighting線,讓iPhone用家可以一鍵把資料轉到Pixel上。盒內沒有耳機,其實那些跟電話的平價耳機大部份是垃圾,家中堆了不少,Google索性不送,一來可以省成本,二來減少癈物,夠環保。

20161024_215142

開機亳無驚喜,與其他Andriod機一樣,登入Google賬戶,自動把你用開的apps裝過來。我買細芒32GB最平價的型號,夠用就可以了。我喜歡五吋機,大機放入褲袋梗著不舒服。以前用Nexus時,大部份storage都是用來裝相片和影片,Pixel送無限Google Drive相片和影片原size儲存,除非長時間offline才需要128GB。雖說是32GB機,但除去OS後,還有27GB左右。我部Nexus跌爛了後,用了先後用了兩台16GB的平價Andriod機(Moto E2和Samsung某平價型號),完全滿足到日常工作需要,只是沒有空間安裝遊戲,電話不能打機。我不是重度手機遊戲玩家,同一時間只會玩一兩個遊戲,玩完就刪,32GB夠用有餘。

昨晚安裝好apps後,沒有什麼時間測試。今天如常用了一天,早上七點斷電,整天正常用量,開車時聽下Spotify,無聊時上網,正常用量講幾個電話,不過影了好多相測試功能,又成日玩OK Google語音助手,五點回家還有50%電。與我以前的電話比較,部Nexus 6很大食,用一日只剩30-40%,而四吋芒的Moto E2非常省電,用一日還有70%,Pixel中中間間,不算很大食,但亦不是省電。網上廣告主打的Google Assistant,老實說我不覺得有什麼特別,不就是上一代的Google Now換了新衣,以前好用現在一樣好用,新功能不用開機都可以聽指令就真係幾方便。

Pixel的賣點只有一個,就是部相機非常強勁,冠絕所有Andriod機,同iPhone7可以一較高下,所以與iPhone7同價亦非無道理。電腦雜誌甚至給Pixel相機的評分比iPhone7還高幾分,不過我就看不出有什麼分別。天朗氣清影靜態畫面,任何中價手機以上沒有分別。Pixel的相機勁在,低光暗的環壞下,拍出的照片非常清晰。第一張相是昨晚隨手影阿仔的Lego,客廳沒有開大燈,只有一盞LED裝飾燈,暗到看書都看不到,影出來顏色很清楚。第二張相是返工地下停車場影,影出來的效果與其他手機拍戶外差不多。最後一張是放工停紅燈,見到運車車覺得有趣,拿起手機便拍,打開相機app和快門都非常快,用以前的手機架車走了個app都未load完。另外一秒十二張HDR連環快拍超強,按著個相機製便擦擦聲不停拍,張張都拍得非常清楚,不過拍完後感覺到部機有點暖,因為HDR要用很多CPU。

Pixel值不值得買?如你好似我,是Google的死忠,一定要買。如果你用開Android機又有錢,這部是最好沒有第二的Android機,好過用會爆炸的三叔,唔知有冇偷你資料的大陸機。果粉當然一定不會買,Pixel目前還未目超越iPhone的必殺技,不過下個月Daydream出街,有可能靠VR一起蘋果尾注。至於不介意手機OS用什麼的朋友,通街都係iPhone亳無新意,出部Pixal可以扮hi-tech友以示與眾不同,至少別人問你點解買Andriod機,不用答因為買不起iPhone咁失禮。

img_20161024_223430

img_20161025_093943

img_20161025_171820

Visual Quickstart Guide Ruby – Larry Ullman

ShowCover.aspx

這本書買了好幾年,一直提不起勁去認真看,此書當年出版時Ruby版本還是1.9,現在已經去到2.3。因為要架設網站,才臨急抱佛腳去讀書,先學慬基本的Ruby程式語言,才可以進階學習Ruby on Rails網站framework。架設網站為什麼不用近期流行的Node.js?一來我對Javascript沒有好感,Javascript周身刀冇張利,二來據說寫後台Ruby比Javascript寫起更得心應手,最重要是除了弄好個網站外外,我還想順便學習新的程式語言,做電腦這一行,若果不與時並進,很快便給淘汰了。

Ruby易不易學?我覺得很容易學,只用兩個星期左便上手,每晚看書太約一兩個小時。不過我的C/C++功夫扎實,加上因工作需要用了tcl這個非常古怪的程式語言十多年,Ruby的object orient programming部份有C++底子很易明,至於Ruby的dynamic programming部份,相信沒有任何程式語言比tcl更dynamic。Ruby的最大特點是所有東西都是object,包括任何variable,任何literal,甚至class和module definition都是object。因為所有東西都是object,在程式執行時,可以重寫任何method,加減class中的variables,寫code起來十分方便,不過一不小心亦很容易出錯。因為所有binding都是在run time進行,在傳統static或dynamic typing外外,Ruby獨有的duck typing,只要個object有同名的method,不理那個object是什麼就可以call。

這本書寫得十分淺白,書中的例子以irb實時執行,作者一邊教寫syntax,一邊用irb的output去解釋,為什麼執行這個指令,會得出這個結果。不過我認為Ruby並不適合初學程式者,因為它內建太多好使好用的魔法,不利學生觀測電腦如何執行程式。書中對一些高級Ruby魔法略過解釋,只是叫學生背書般不求甚解記下syntax和用法,如symbol,class attr,module include/extend等。我看書時完全看不明白,要另行上網看ruby.org的官方課本Ruby Monk的網上教材,結果我一口氣看了三本Ruby課本。真正讓我開竅,明白Ruby的精髓,是官方課本講ruby.h那一章。Ruby整個程式言是用C寫成,ruby.h便是C程式的源碼,讓開發員把Ruby程式連結其他語言的程式。當我看見ruby.h中,Ruby是如何create一個object,每一個object之間的關係,一份熟悉的感覺油然而生, ruby.h不正就是tcl.h的孖生兄弟嗎。

書中最後一章講Rails,不過Rails比Ruby本身進化得更快,書中教的那個舊版本2.x已完全過時,只有十幾頁紙完全不夠時間去教Rails,看完也是水過鴨背,還是去Rails的官方網站看user guide。其實學寫程式,真的不用俾錢上堂,網上有很多免費教材,買本書也十分便宜,自已跟著例子去玩下,寫下寫下便自自然然學識了。目標Ruby達成,下一個目標Rails。

睇波啫,犯法呀?

13598948_10208439131367423_267828557_n-650x389

話說樂視網頁程式有漏洞,讓用戶可以免費看歐洲盃。某網媒公諸同好益街坊,教用家如何簡單更改網頁程式碼,召來道德之士責罵,說他們教壞人(詳情見明明自己犯錯,唔好講到人地打壓,好唔好?)。該文作者與《謎米》的恩怨,恕我無從插手,不過身為一個電腦人,倒可以從技術角度,去評一評理。

在商言商,樂視發表聲明,譴責有人以非法途徑收看歐洲盃,他們發樣板新聞倒也無可厚非,畢竟這是任何大公司法律部的例行公事。不過更改網頁程式,免費看歐洲盃,有犯法嗎?到底犯了什麼法,不誠實使用電腦罪乎?樂視搞七秒直播的噱頭,七秒後自動彈你去入會廣告,在網頁的程式設計上,基本上與其他網媒的強迫讀者看十秒全版廣告是相同的技術。網頁的所有內容,一早已經下載到用家的browser上,再用javascript設timer,讓廣告定時幅蓋內容。由於browser屬於用家全權擁有,用家有權選擇執行或不執行任何網頁傳送過來的javascript,用家可以指令browser不執行彈出廣告的程式,即是跳過廣告直接看內容。這個避開廣告的方法不是什麼安全漏洞,根本是browser設計的基本元素。網上眾多阻擋廣告的plug-in,甚至蘋果iOS8加入的新功能Adblock,都有使用這個方法。(當然阻擋廣告還有很多不同方法,如host table等)。既然阻擋廣告不犯法,那阻擋樂視的入會廣告,當然也不是犯法了。

若果上面那一段技術文太深看不懂,讓我用一個簡單的比喻來說明。有人在街上派免費書,不過除了第一章外,其他的頁數用一張膠紙貼著,書中有指示要先付費才可以撕開膠紙看其他章節。有人拿了本書回家,心想既然本書係我嘅,我喜歡點就點,自已撕開膠紙看書,他有犯法嗎?樂視網頁的技術設計失誤,把歐洲盃的直播免費放上網,用戶沒有責任一定要跟著指示做,不跟指示不等同犯法。也許該文作者志在借題發揮乘機插人,網絡技術和版權法律不是重點,不過在指控別人侵權之前,最好弄清楚版權條例,以免誤導讀者。

開機救星

Hirens-BootCD-15.2-cd-rom-label

昨天家中的電腦忽然hang機﹐reboot後開機畫面黑漆漆的﹐只看見這行令人恐怖萬份的白色字在螢幕上閃著

Invalid System disk replace the disk and press any key

天哪﹗我電腦找不到我的硬碟﹗跟據我多年的玩電腦經驗﹐這個錯誤訊息可大可小﹐小至BIOS設定出錯﹐大至硬碟報銷也有可能。幸好我還有另一台電腦可用﹐還可以上網找資料參考。出現這個錯誤訊息的主要原因電腦開機時﹐BIOS第一件時是找尋開機硬碟的Master Boot Record(MBR)﹐若硬碟還未format或者MBR損壞了﹐就會出現這個錯誤訊息。

第一件事要檢查﹐就是重新開機﹐留意開機畫面中BIOS有否找到硬碟。若找不到硬碟﹐可能只是機內的電線鬆了﹐也可能硬碟完全報銷。可幸重新開機後我兩隻硬碟還安在﹐這樣第二件事就是按del鍵﹐進入BIOS設定﹐檢查Boot Sequence。在電腦開機後﹐BIOS會順著Boot Sequence的次序去找開機碟。若果CD-ROM或磁碟機有非開機碟﹐或插入了USB碟﹐恰巧它們排在硬碟的順序之上﹐也會出現這個錯誤。若是這個問題﹐只要把CD或磁碟取出﹐或把開機硬碟排在Boot Sequence的第一位﹐重新開機就可以軟易解決問題了。

很不幸我的BIOS設定沒有問題﹐換一句話說就是MBR真的壞了。這時我要出動我的開機救星Hiren’s BootCD。這隻碟是每個電腦人必備的恩物﹐集齊所有開機救機軟件﹐在網上可以免費下載。進入BIOS把CD-ROM排在Boot Sequence的第一位﹐放入Boot CD﹐重新開機。開機後會出現一個畫面﹐問你想從硬碟開機還是從CD開機﹐我選了硬碟。過了慢長的半秒後﹐熟悉而令人安心的畫面出現眼前﹐卒之進入了Windows開機畫面。至少我知道硬碟本身沒有問題﹐Partition也安好﹐只需要修正MBR。不過修正MBR是一件危險的工作﹐如出錯的話會連Partition Table也弄壞﹐到時硬碟中所有資料就沒有了﹐只可以重新format硬碟。所有在進行MBR修正前﹐我花了差不多一晚把我的資料備份﹐抄到去安全的外置硬碟上。修正MBR的正統方法是開Windows的安裝CD開機﹐進入Recovery Console﹐然後執行fixmbr和fixboot兩個指令。我依照Mircosoft官網的旨示做了﹐不過還是開不到機﹐依然看見那個錯誤訊息。不過我對Microsoft的工具也不存厚望﹐始終還是要依靠Hiren’s BootCD的救機工具箱。

拿出Windows安裝CD﹐放入Hiren’s BootCD重新開機。今次選擇從CD開機﹐依照畫面上的Menu﹐選擇MBR Tools﹐再選擇MBRWork﹐跟著這個網頁照做就可以了。先按1把first track備份﹐按4清空MBR﹐按3清空EMBR。這時會有新的選項出現﹐按A去重建Partition Table﹐最後按5重新寫入MBR﹐再重新開機就大功告成﹗

差不多弄了一整晚和一個早上﹐才醫好了我的電腦開機﹐讓它可以正常。真的是自己部電腦才會這樣著緊﹐若果朋友的電腦發生同樣問題叫我修理﹐我大慨會叫他節哀順變format硬碟重裝windows算了。怪不得到街外找人修理電腦這樣貴了﹐因為真的花很多功夫和時間。不過相對起要重裝Windows所需的時間﹐盡力搶救MBR還是比較划算。

File Sync 工具

硬碟若不幸壞了檔案盡失﹐相信是每一個電腦人最可怕的惡夢。對沒有錢或懶去安裝RAID的人﹐將重要的檔案備份在另一台電腦上是最方便的辨法。不過重要檔案常常也會更新﹐若個每次也要手動備份不單麻煩﹐亦有可以遺留重要的文件。所以自動備份軟件是必台電腦不可缺少的工具。一般的備份軟件如Norton Backup會將檔案壓縮﹐存取檔案要解壓還原很不方便。我比較喜歡用File Sync的軟件作備份﹐File Sync軟件把檔案作複制﹐在一台電腦更新檔案﹐那個檔案就會抄去另一台電腦上。兩台電腦的檔案隨時可用十分方便。不過缺點就是沒有備份沒歷史性﹐不能找出幾個星期前未更改的檔案。在此我會介紹兩個我常用的備份軟件﹐兩個軟件都是免費﹐ 大家可以在他們的網站下載。

SyncToy Microsoft SyncToy
微軟出品的免費軟件﹐功能很簡單易用﹐將一個directory的檔案複制對另一個directory中。兩個directory可以在同一部電腦那不同硬碟上﹐亦可以在LAN網絡的一台電腦的shared directory上﹐基本上只要在Explorer看到寫到的directory就可以。配合Windows的Scheduler﹐就可以每天定時把檔案備份。這個軟件的唯一缺點是備份速度較慢﹐速度與用Explorer抄檔案差不多﹐不過若把Scheduler設定在深夜沒有人用電腦的時間﹐對日常運作的影響不大。

Power Folder Power Folder
這個軟件有免費版與付費版﹐若在家中LAN網絡使用﹐免費版的功用已經十分足夠﹐只是沒有web interface同security加密。這個軟件是用Java寫成的﹐所以在所有OS也可以運作。這軟件採用Cilent-Server Model﹐即兩台電腦也要安裝並運行這個軟件。首先設定一台電腦當server並選擇想share的directory﹐在另一台電腦上則選擇當cilent﹐把server中的檔案定時覆製。備份速度比SyncToy快﹐亦可用透過Internet作備份﹐功能比SyncToy強大很多﹐檔案備份的首選軟件。