我因為手頭上有很多台 Raspberry Pi,有時候不小心無故斷電了,Raspberry Pi Boot 不起來而且 SD 卡又寫不進,總會覺得是不是 SD 卡壞掉了?
其實不然,很多時候都只是 Partition Table 出了錯誤,雖然在 Windows 上會不停彈出 “無法格式化” 的錯誤警告,又或者甚至連 Disk Manager 都無法改更磁碟編號,但是卡本身還是可能有救的,最簡單的方法就是拿一台能正常運作的 Raspberry Pi 來跑 fdisk 了
檢查卡本身有沒有物理故障
要檢查這個很簡單,把 SD 卡使用 SD 轉 USB 轉接器插進 Raspberry Pi 的 USB 口前,執行一次下面的指令,插進了後再執行一次,看看有哪個新的儲存裝置彈出來了
ls /dev | grep sd
如果你看到 /dev/sdx 出現了的話,恭喜你,你的卡沒壞。
重設 Parition Table
要重設 partition table,你就會需要用到 fdisk 功能。在這例子中我會使用 /dev/sdf 作為例子,你需要把裝置路徑更改到你的 SD 卡的儲存裝置編號。
首先,使用 sudo 或 su 模式啟動 fdisk
sudo fdisk /dev/sdf
然後輸入 p 拍 enter,你會看到現在存在在卡上的 partition。輸入 d + enter ,重複直至所有 partition 被刪除。
輸入 n + enter 創建一個新的 partition,其餘的問題全部用預設值就好
之後再按 p + Enter,你會看到新的 Linux partition 已經準備好了。這個時候,你要把 Partition Type 設成 Windows 能讀取的格式,輸入 t + enter 之後輸入 L + enter,找到 Microsoft Basic Data 的代號 (在下面的例子是 11 號),輸入 11 + enter。
完成之後你的 SD 卡 Partition table 應該會長這樣
最後就是輸入 w + enter 把更改真正的寫進 SD 卡內就大功告成了!
Windows 格式化
把 SD 卡重新插到 Windows 主機上, Windows 會彈出提示要求把 SD 卡進行格式化。你最後只需要按照一般 Windows 格式化的方法就可以把 SD 卡救回來了