---
# System prepended metadata

title: 樹莓派 SD 卡完整複製與 Tailscale 獨立節點設定指南
tags: [電系組]

---

# 樹莓派 SD 卡完整複製與 Tailscale 獨立節點設定指南

這篇教學將引導你如何將樹莓派（Raspberry Pi）的 SD 卡進行「全卡備份與還原」，並解決複製後新卡片與舊卡片在 Tailscale 網路上發生 **「身份衝突（Duplicate Node ID）」** 的問題。

:::info
**為什麼需要這篇教學？**
當你使用 Win32 Disk Imager 完整複製 SD 卡時，連同 Tailscale 的 **唯一識別碼 (Machine Key)** 也會被一併複製。如果不重置這個識別碼，Tailscale 會認為兩台裝置是同一台，導致連線不斷中斷或互踢。
:::

## 準備工具

* **硬體**：
    * Windows 電腦
    * SD 卡讀卡機
    * 原始 SD 卡（要複製的卡）
    * 新的 SD 卡（目標容量需大於等於要複製的卡）


* **軟體**：
    * [Win32 Disk Imager](https://sourceforge.net/projects/win32diskimager/) (用於製作與寫入映像檔)



---

## 第一階段：複製 SD 卡 (Clone)

### 步驟 1：備份舊卡（Read）

1. 將 **舊的 SD 卡** 插入電腦。
2. 在電腦的隨便一個位置創建一個檔案叫做 **想要的名稱.img**
3. 開啟 **Win32 Disk Imager**。
4. 在 **Image File** 欄位，點擊資料夾圖示，選擇剛剛建立的空映像檔案(**想要的名稱.img**)。
6. 在 **Device** 欄位，確認選擇到舊的 SD 卡代號。
7. 點擊 **「Read」**。
:::warning
***注意不要覆蓋掉原本的記憶卡!!***
當你使用 Read 功能時請注意不要變成將空的映象檔讀取進想要複製的記憶卡當中，這樣會洗掉原本的東西==。
:::



### 步驟 2：寫入新卡（Write）

1. 備份完成後，拔除舊卡，換上 **新的 SD 卡**。
2. 在 Win32 Disk Imager 中，**Device** 確認選到新卡。
3. **Image File** 選擇剛剛做好的 `pi_backup.img`。
4. 點擊 **「Write」**。
:::warning
***警告：新卡片上的所有資料將被覆蓋。***
:::



---

## 第二階段：解決 Tailscale 衝突與設定

寫入完成後，將新卡插入樹莓派並開機。**此時請先不要急著連線測試**，因為現在它的「身份」跟舊的一模一樣。

### 步驟 3：清除舊的 Tailscale 狀態

我們需要刪除 Tailscale 儲存「機器金鑰」的檔案，讓它在重啟後自動生成一個新的身份。

請在新的樹莓派終端機中，依序執行以下指令：

```bash
# 1. 停止 Tailscale 服務
sudo systemctl stop tailscaled

# 2. 刪除舊的狀態檔 (這是關鍵步驟！)
# 這個檔案紀錄了上一張卡的身份 ID，刪除它不會移除軟體，只會重置身份
sudo rm /var/lib/tailscale/tailscaled.state

# 3. 重新啟動 Tailscale 服務
sudo systemctl start tailscaled

```

### 步驟 4：重新登入並設定新名稱

現在這台樹莓派已經是一個「全新的陌生人」了，我們需要重新將它加入 Tailscale 網路，並給它一個新名字以免混淆。

```bash
# 重新執行 up 指令
# --hostname: 設定這台機器在後台顯示的新名稱
# --accept-routes: 如果你需要存取子網域路由，請加上此參數
# --authkey: 如果你有預先申請的 key 可以加上，或是直接執行後點擊網址授權

sudo tailscale up --hostname=new-pi-name --accept-routes

```

執行後，終端機通常會跳出一個認證網址：

> `To authenticate, visit: https://login.tailscale.com/a/xxxxxxxxx`

點擊連結並登入你的帳號授權即可。

---

## 附錄：擴展檔案系統 (Optional)

如果你的新卡容量比舊卡大（例如從 16GB 複製到 64GB），複製完後系統只會認得原本的 16GB。請執行以下步驟用滿剩餘空間：

1. 執行設定工具：
```bash
sudo raspi-config

```


2. 選擇 **6 Advanced Options**。
3. 選擇 **A1 Expand Filesystem**。
4. 按下 Enter 確認，並選擇 **Finish** 重開機。

---

## 總結檢查表

* [ ]  舊卡已製作成 `.img` 映像檔。
* [ ]  映像檔已寫入新卡。
* [ ]  新卡開機後，已執行 `rm /var/lib/tailscale/tailscaled.state`。
* [ ]  已使用 `tailscale up --hostname=...` 重新連線。
* [ ]  在 Tailscale Admin Console 確認看到兩台不同的機器（舊的和新的）。順帶一提，如果要取得所有應用程式的完整功能，請開啟 Gemini 系列應用程式活動記錄。