使用 ArchlinuxArm 解決樹莓派儲存卡損壞快的問題

語言: CN / TW / HK
  • 起因:2013年開始玩樹莓派,用壞了好多張儲存卡~心疼了很久時間後找到一個解決方法。

  • 方案:儲存卡+行動硬碟+ArchLinuxArm

  • 原理:儲存卡損壞是因為頻繁讀寫。把讀寫放到硬碟上,儲存卡只作為Boot(開機引導)使用,問題解決。

  • 效果:2015年至今,沒換過儲存卡,2015年買的西數3TB桌面硬碟,7*24開機,用到2019年開始速度下降。

  • 前提:Linux下的基本命令、硬碟分割槽、分割槽掛載、文字編輯

  • 核心操作(此處以Ubuntu作為作業系統):

    • 下載 ArchLinuxArm (RaspBerry PI3為例)

      • 地址(http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz), Window 系統用迅雷下載比較快~
      • 自己下載:地址 http://archlinuxarm.org/platforms , 查詢 Pi,點選進入詳情,點選 Installation 進入安裝說明頁。建議先閱讀一遍,瞭解官方的操作步驟 .
    • 行動硬碟上建立 ROOT 分割槽

      • 在終端下為行動硬碟上劃分一個大於 8G 的分割槽。自行搜尋工具, 或參照官方操作。
      • 檢視分割槽位置。 df -h,根據可用空間的大小可以知道分割槽位置,比如 /dev/sdb1
      • 檔案系統建議使用 EXT4 ,mkfs.ext4 /dev/sdb1
      • 掛載到 /mnt/root (不存在就自己建立),mount /dev/sdb1 /mnt/root
    • 安裝檔案解壓到行動硬碟的 ROOT 分割槽

      • 終端執行 sudo bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C /mnt/root
    • 儲存卡上建立 BOOT 分割槽

      • 在終端下儲存卡格式化為 FAT32 (Linux使用mkfs.vfat,win10右鍵格式化)
      • 分割槽與否無所謂
      • 掛載到 /mnt/boot (不存在就自己建立)
    • BOOT 啟動檔案複製到儲存卡

      • 終端執行 sudo cp -r /mnt/root/boot /mnt/boot
    • 修改 /mnt/boot/cmdline.txt 檔案

      • root=/dev/mmcblk0p2 修改為 root=/dev/sda1
      • 由於待會樹莓派只有一個行動硬碟,之前的 sdxn, 要修改為 sdan
    • 儲存卡插入樹莓派,行動硬碟插入樹莓派。開機。

  • 登入系統

    • 賬號密碼都是 alarm
    • root 密碼是 root
    • 登入後記得初始化軟體包管理器
    pacman-key --init
    pacman-key --populate archlinuxarm
    
    • 安裝軟體使用 pacman 命令, 自行了解.
  • 存在問題:

    • 由於CPU不同,不同的樹莓派要使用不同的安裝檔案。
      • 上文提供的地址可在Pi2或Pi3使用。
    • 無法啟動
      • 連線 PI 到顯示器,看報錯資訊
      • 一般是行動硬碟上的 ROOT 分割槽配置錯誤, 用 df 命令確認行動硬碟上 ROOT 分割槽位置, 假設分割槽是 /dev/sdc4 ,修改 /mnt/boot/cmdline.txt, 配置為 /dev/sda4
      • 行動式行動硬碟可能是供電不足, 要換個獨立供電的 USB hub. 我後來一直用桌面式行動硬碟, 就不存在這個問題了.
    • bsdtar 不存在
      • 自行安裝。Ubuntu 下使用 sudo apt install bsdtar
    • 這個方法其他系統是否可用, 比如 RaspbianOS
      • 不知道~從原理上是可以的~