開機沒畫面?Noobs 安裝

如果你閱讀過 驚鴻一瞥;啟動過程與燈號 一文,你應該能了解 SD 卡對開機的重要性。要成功的把比方說 2014-05-06 的最新發行版NOOBS_v1_3_7.zip 拷貝到 SD 卡,你需要知道『如何準備樹莓派用的 SD 卡?』。雖然 軟體新手 的目的就是為了減少困難工具軟體的使用,但由於不同廠商出產的 SD 卡,容量、速度、檔案系統的規劃不同,所以對 SD 卡的基本了解依然不可缺少。這意思是說︰假如你有一片 SD 卡,容量真的 夠大──有8G以上,速度夠快等級 Class 6 以上,又適當規劃成 fat 類型的檔案系統的空白卡,而且你知道怎麼從 zip 壓縮檔把整個目錄資料拷貝到 SD 卡的根目錄,那把它拷貝進去就完成了開機片了,開機後再使用 Noobs 提供的安裝軟體去安裝你想要的發行系統就可以了。此外 Nobbs 提供開機系統的管裡辦法,能讓你再次選擇安裝其他發行系統。換句話說,假使你的 SD 卡,速度相容於樹莓派硬體而且容量大於 Noobs 建議數值,你只有適當規劃成相容於樹莓派啟動過程的 fat 類型的檔案系統這一關了。即使你很幸運,也許還是了解一下『如何準備樹莓派用的 SD 卡』的好。

適當的模型通常是了解複雜的東西很好的概念工具,對硬碟、SD 卡等等儲存裝置來說,方格紙是一個合宜的選擇。

notebook-paper

你可以把 SD 卡看成依序排列的方格,每一個方格有一個編號代表這個方格。在硬碟的術語上,一個方格是最小儲存單位,稱作磁區 sector。在 SD 卡上一個磁區大小通常為 512 位元組。出於作業系統管理上的方便,以及多個作業系統的共用性考慮,將硬碟分割成若干區塊,每個區塊都可以看成一個可以單獨使用的邏輯磁碟機,稱作分割區塊 partition 。

這些分割區塊為作業系統所使用,規劃成不同的檔案系統,用來管理檔案及目錄。比方說目前 Raspbian 用 ext4 檔案系統,而微軟的  Windows 常用 ntfs 檔案系統,所謂的 fat 檔案系統從 DOS 年代就有,最早用於軟碟機 floppy,這正是樹莓派啟動過程必不可少的分割區塊。那怎麼知道有幾個分割區呢?硬碟一開頭的磁區有一個分割區總表 partition table 說明這個硬碟的邏輯規劃。至此你大概可以猜想到為什麼 Noobs 安裝程式的存在了?

如前所述,使用 Noobs 安裝程式,你只需要知道如何把整個 SD 卡 format 格式化成 fat 檔案系統就可以了。如果你使用 Linux 系統或許你早就知道怎麼做了,假如你是新手,那請你依使用的發行版安裝 gparted 這個應用軟體;如果你使用微軟 Windows、MAC OS … 請到 SD 卡組織下載對應的格式化軟體。假如你使用電腦 HDMI 顯示器,也按照這裡說明的步驟來作了,結果開機沒畫面,那你可能碰到 SD 卡相容性的問題,請參考這裡;如果你使用的是電視上的 HDMI 或 HDMI 轉 VGA 一類的轉換器接上顯示器,請參考這裡

事實上樹莓派早先並沒有 Noobs 安裝程式,而是提供硬碟的映像檔image,比如最新的 Raspbian 的 映像檔是 2014-01-07-wheezy-raspbian.zip,直接安裝後會有兩個分割區塊;而下面是在 Raspbian 終端機上用分割區劃分工具程式 fdisk 指令來看用 Noobs 安裝 Raspbian 系統後的 8G SD 卡,共有五個分割區塊︰

sudo fdisk /dev/mmcblk0

進入後按 p 鍵,列出分割區總表,按 q 鍵離開。顯示如下︰

Command (m for help): p

Disk /dev/mmcblk0: 8068 MB, 8068792320 bytes
4 heads, 16 sectors/track, 246240 cylinders, total 15759360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000ae11
Device BootStartEndBlocksIdSystem
/dev/mmcblk0p1204829101561454054+eW95 FAT16 (LBA)
/dev/mmcblk0p2291635215693823638873685Linux extended
/dev/mmcblk0p315693824157593593276883Linux
/dev/mmcblk0p52924544304742361440cW95 FAT32 (LBA)
/dev/mmcblk0p6305561615693823631910483Linux

經由前面的說明,可以知道在 Raspbian 系統上整個 SD 卡的裝置名稱是 /dev/mmcblk0,五個分割區塊名稱分別是 /dev/mmcblk0p1,/dev/mmcblk0p2 … /dev/mmcblk0p6 ,其中 /dev/mmcblk0p1 就是放置啟動程式的分割區塊。也就是說映像檔是整個 SD 卡的內容,它包括分割區總表以及各個分割區塊,所以不能用一般的檔案拷貝方法來處理。如果說你想要複製整個 SD 卡,在 Linux 上你可以用 dd 工具程式,在 Windows 上的話,請試試這個軟體