使用 ArchlinuxArm 解決樹莓派儲存卡損壞快的問題
-
起因: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 系統用迅雷下載比較快~ - 自己下載:地址 https://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
- 自行安裝。Ubuntu 下使用
- 這個方法其他系統是否可用, 比如 RaspbianOS
- 不知道~從原理上是可以的~
- 由於CPU不同,不同的樹莓派要使用不同的安裝檔案。
「其他文章」