2017年4月2日 星期日

樹莓派寫入映像檔時出現 not enough size 問題

上週六 3/24 收到露天賣家寄來的 Pi 3 後一直沒時間測試, 昨天整理公司抽屜時發現一個 8G TF 卡, 用讀卡機檢視卡片內容研判應該是菁菁那支螢幕壞掉一角的 iNo 手機以前使用的 Micro SD 卡, 於是將其中的相片與錄音檔另存於硬碟後, 使用 SDFormatter 將其格式化, 再用 Win32DiskImager 將之前備份起來的樹莓派 img 映像檔燒入 TF 卡中, 但是很意外地卻出現如下錯誤訊息 :

"Not enough space on disk : Size 15564800 sectors Available : 15523840 sectors Sector Size : 512"


意思是說映像檔大小是 15564800 個區段 (sectors), 而 TF 卡卻只有 15523840 個區段可供存放, 短缺了 40960 個區段, 每個區段 512 Bytes, 所以映像檔多出了 40960*512=20971520 Bytes 塞不下去.

在下面這篇文章中提到, 即使是同型號的 8G SD 卡, 格式化後可使用的容量可能會有一些差異, 這使得使用較大可用容量 SD 卡製作的映像檔塞不進可使用容量較小之同款 SD 卡, 更何況是不同廠牌的 8G 卡, 差距可能又大些 :

win32diskimager not enough space

例如我另一片同廠牌同款式的創見 8G Class 4 TF 卡, 在 PC 檔案總管中顯示可用空間為 7939686400 Bytes, 除以 512 為  15507200 個區段, 比上面那片同款式的 TF 卡還少, 當然也寫不進去 :


這篇文章還提到這跟擴展 SD 卡可用空間有關 (在 raspi-config 中可設定, 以便作業系統可使用到整片 8G 容量), 但是我重新安裝系統後, 刻意不去 Expand File System, 而是馬上製作 img 映像檔, 但結果 img 檔一樣是 7.8G, 沒有比較少, 所以我覺得跟擴展檔案系統沒關係, Win32DiskImager 就是做整片卡的映像.

我另外參考了下列文章試圖去縮減 img 檔大小, 但有的看不懂, 有的沒辦法做, 例如想把 7.8G 的映像檔放進隨身碟插入樹莓派, 然後用一個 Perl 程式去將映像檔瘦身, 問題是 7.8G 太大放不進 FAT 格式的隨身碟, 而 NTFS 雖放得下, Raspbian 卻讀不到. 也安裝了一個 Windows 軟體來瘦身, 但寫入 SD 卡後卻開機中途失敗, 都是徒勞無功 :

2 則留言:

  1. 版主您好
    最近剛好研究到類似問題
    查了許多讓img瘦身的方式
    但大多都是神人寫的腳本 有看沒有懂
    最後查到了一個raspbian jessie內建的新程式
    有成功將7.9G的卡透過pi直接複製到容量較小的卡
    不曉得是否有參考價值

    https://www.raspberrypi.org/blog/another-update-raspbian/

    回覆刪除
  2. 感謝您, 我找個時間也來試試看, 畢竟重灌實在有點花時間.

    回覆刪除