科學追求真理,為的是打開大自然的黑箱;然而真理明白若昭,就是透明的白箱。我們總在求真的旅途上一知半解,努力化灰箱為白箱。如果偵錯就是科學,除錯即求真理,那這一段話用在『偵錯』與『除錯』上來講依然合適。這也說明為什麼人們喜歡用不同的灰度,來表達對『箱內之物』的認識與了解了。
經過了一段辛苦,你終於把Raspbian 安裝好,可以開始使用了。是否自此就像童話故事上所說的『從此過著幸福、快樂 ……』;等一下︰戲才剛開鑼、人物都還沒上場呢!!這時假如告訴你『剛安裝好的 Raspbian 上有問題』呢?就在此時偵探柯南立馬登場,好戲也即將展開︰
………柯南想 Linux 核心 kernel 程式,通常一直輸出紀錄著系統運作活動,用 dmesg 命令就能閱讀,嗯!結果太大了,最好用 dmesg | more,啊哈!!我找到了。原來是︰
[ 21.678058] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
如果我們已經知道是這個問題了,那麽用 dmesg | grep fsck 就能更快找到系統是否曾輸出過這個訊息。現在已經確定是有問題了 ── ㄋㄚㄟㄤㄚㄋㄟ ──,怎麽會這樣 .XX!?最重要的是,如果你是柯南,你會怎麽辦呢?
………柯南想起,在哪裡找資料?一文上提到了樹莓派的論壇,何不到那裡查查,看看是否有人已談論過這個問題?該用什麼關鍵字來查尋呢?『fsck』 797 則,太廣泛了,『Volume was not properly unmounted』45 則,而且摘要也確實符合,嗯!答案是︰這個ㄆㄛ癹文 Post 啊!『癹』 ── 好一隻『將草踩平的大腳』,咦!原來還要編譯程式ㄟ。唉!難道只能問阿笠博士了嗎?又想,難道不能『依樣畫葫蘆』造著做?……解決了!!
雖然柯南怎麽做到的?不得而知,然而依樣畫葫蘆之法,卻很可以嘗試︰
第一行是『# umount /boot』,造著打︰
pi@raspberrypi ~ $ umount /boot
umount: only root can unmount /dev/mmcblk0p1 from /boot
嗯!『 # 』和 『 $』不同,又說到 root ,大概是操作權限問題;好。就用 sudo -s 改成 root 使用者,再執行一次,果然 O.K.。
第二行是『# git clone http://daniel-baumann.ch/git/software/dosfstools.git
』,不知是什麼?依樣畫葫蘆,顯示︰
Cloning into ‘dosfstools’…
第三行是『# cd dosfstools
』,知道是改變目錄。
第四行是『# make
』,不知是什麼?造打不誤;看來在做些 cc 命令之事。也許就是柯南說的編譯程式之事?
第四行是『# ./fsck.fat -V /dev/mmcblk0p1
』,不知是什麼?跟著做,按造癹文比對,要輸入 1,輸出的結果相似。很好。
第五行是『./fsck.fat -a /dev/mmcblk0p1
』,不知是什麼?造做。輸出了刪除一個叫做「dirty bit」的。啊哈!!抓到它了。
第六行是『#mount /boot
』,不知是什麼?造打不誤。
此時沒有任何訊息顯示,步驟也已經都做完了,問題解決了嗎?也許你可以試試 reboot ── 重新開機,再次用 dmesg | grep fsck 驗證看看?
如何打開黑箱?讓我們歸結到胡適之先生的兩句名言︰作學問要,
大膽假設,小心求證。而讀書要,
於不疑處有疑,於有疑處不疑。