燒錄與無頭連接完整指南:從鏡像選擇到SSH配置)
1. 項目概述從零啟動你的樹莓派Ubuntu系統(tǒng)如果你剛拿到一塊樹莓派想擺脫官方的Raspberry Pi OS體驗更純粹的Linux環(huán)境或者需要為特定項目部署一個服務器級的操作系統(tǒng)那么給樹莓派燒錄Ubuntu鏡像是個非常棒的選擇。Ubuntu Server以其穩(wěn)定、資源占用相對合理和龐大的軟件生態(tài)在樹莓派社區(qū)里一直很受歡迎。但和直接在x86電腦上安裝不同給樹莓派這個ARM架構(gòu)的“小電腦”裝系統(tǒng)第一步“燒錄鏡像”就卡住了不少人更別提燒錄成功后那塊沒有顯示器、鍵盤鼠標的“黑盒子”該怎么連上去操作了。我自己在折騰樹莓派集群、家庭服務器或者IoT網(wǎng)關(guān)時無數(shù)次重復這個過程。核心就兩步一是把Ubuntu鏡像正確地“刻”進SD卡二是通過串口或SSH這兩種“無頭”Headless方式首次登錄系統(tǒng)并進行配置。聽起來簡單但每一步都有細節(jié)比如鏡像選哪個版本、燒錄工具怎么用、串口線怎么接、SSH怎么在第一次開機就啟用。這篇文章我就以一個老玩家的視角帶你完整走一遍這個流程把那些教程里不提的“坑”和“技巧”都攤開來講明白讓你拿到一塊裝好Ubuntu的樹莓派后能穩(wěn)穩(wěn)當當?shù)赜妹钚锌刂扑?. 核心準備鏡像、工具與硬件連接工欲善其事必先利其器。在開始燒錄之前把該準備的東西都備齊能避免過程中來回折騰。2.1 鏡像選擇與下載并非越新越好首先你得決定給樹莓派裝哪個Ubuntu。直接去Ubuntu官網(wǎng)找樹莓派版本是個好起點但選擇有講究。官方推薦與長期支持版對于樹莓派4B、5或CM4這類性能較好的型號Ubuntu官方提供了優(yōu)化的服務器版鏡像。我強烈建議新手選擇帶有LTS標記的版本比如 Ubuntu 22.04 LTS 或 24.04 LTS。LTS代表長期支持通常有5年的安全更新非常穩(wěn)定適合作為服務器長期運行。相比之下非LTS的臨時版本只有9個月支持周期可能遇到更多的驅(qū)動兼容性問題。鏡像類型辨析下載時你會看到幾種鏡像Ubuntu Server這是我們的首選。沒有圖形桌面純命令行界面資源占用極低所有計算能力都用于運行你的服務。Ubuntu Desktop帶圖形界面的版本。除非你確定要在樹莓派上接顯示器使用否則不推薦。圖形界面會占用大量內(nèi)存和CPU讓樹莓派變得卡頓失去了作為輕量級服務器的優(yōu)勢。預裝云鏡像這是一種特殊的鏡像首次啟動時必須通過網(wǎng)絡提供配置信息。對于高級用戶部署大量樹莓派有用但個人單機使用非常不友好請避免。注意務必從Ubuntu官方網(wǎng)站或可信的鏡像站下載。我曾見過有人從第三方網(wǎng)盤下載了被修改過的鏡像內(nèi)含挖礦程序樹莓派一開機就滿負荷運行排查了半天。下載實操以樹莓派4B和Ubuntu 22.04 LTS Server為例你可以訪問 releases.ubuntu.com 找到對應版本。文件是一個.xz壓縮包里面是.img鏡像文件。記下它的存放路徑比如~/Downloads/ubuntu-22.04.3-preinstalled-server-arm64raspi.img.xz。2.2 燒錄工具選型BalenaEtcher 一騎絕塵把.img文件寫入SD卡Windows上用過多年的Win32 Disk ImagermacOS和Linux上用dd命令。但現(xiàn)在我?guī)缀踔挥肂alenaEtcher。它跨平臺、界面極其簡單、有寫入驗證、而且能自動識別并解壓.xz或.gz格式的鏡像幾乎杜絕了因操作失誤覆蓋錯硬盤的風險。為什么不用dd命令了dd命令功能強大但也是著名的“磁盤銷毀者”命令參數(shù)寫錯一個字母比如把of/dev/sdb寫成of/dev/sda就可能清空你的系統(tǒng)硬盤。BalenaEtcher 的圖形化界面大大降低了這個風險它通常只會列出可移動存儲設備如你的SD卡讀卡器避開了內(nèi)部硬盤。安裝BalenaEtcher去其官網(wǎng)下載對應操作系統(tǒng)的安裝包即可。它是一個“便攜式”應用安裝過程很簡單。2.3 硬件連接準備串口與網(wǎng)絡的備選方案燒錄完系統(tǒng)我們要連接樹莓派。這里有兩個核心方法串口最可靠和SSH最常用。你需要根據(jù)情況準備。串口連接套件這是調(diào)試和首次啟動的“救命稻草”。當樹莓派無法通過網(wǎng)絡訪問時串口是唯一能看見系統(tǒng)啟動信息的通道。你需要USB轉(zhuǎn)TTL串口模塊推薦使用CH340或CP2102芯片的模塊價格便宜驅(qū)動完善。PL2303芯片的模塊在最新系統(tǒng)上驅(qū)動可能有問題盡量避開。杜邦線需要三根母對母TX發(fā)送、RX接收、GND地線。串口調(diào)試軟件Windows上可以用Putty、MobaXterm或國產(chǎn)的SecureCRTmacOS/Linux 自帶screen或minicom命令也可以用更現(xiàn)代的picocom。網(wǎng)絡與SSH連接準備這是日常操作的主要方式。你需要確保樹莓派和你的電腦在同一個局域網(wǎng)內(nèi)。對于樹莓派4B/5直接用網(wǎng)線連接路由器最簡單。如果你想用Wi-Fi則需要在燒錄鏡像后、首次啟動前在SD卡的system-boot分區(qū)里預先配置好Wi-Fi和SSH。這是個小技巧后面會詳細說。3. 鏡像燒錄全流程詳解準備好所有材料后我們開始最關(guān)鍵的一步燒錄。3.1 使用BalenaEtcher進行燒錄這個過程幾乎是“下一步”到底但有幾個細節(jié)點需要注意。插入SD卡與啟動Etcher將你的Micro SD卡通過讀卡器插入電腦。打開BalenaEtcher。選擇鏡像點擊 “Flash from file”選擇你下載的.xz壓縮包。Etcher會自動識別并準備解壓。選擇目標磁盤點擊 “Select target”。這里務必看仔細Etcher會列出所有可移動設備。確認你的SD卡容量和型號不要選成電腦的U盤或移動硬盤。一個技巧是在插入SD卡前后觀察列表變化新增的那個就是它。開始燒錄點擊 “Flash!”。Etcher會依次執(zhí)行三個步驟解壓鏡像、寫入數(shù)據(jù)、校驗數(shù)據(jù)。校驗非常重要它能確保寫入過程沒有出錯避免SD卡本身有壞塊導致系統(tǒng)啟動異常。燒錄完成當看到 “Flash Complete!” 提示并且校驗通過后就可以安全地彈出SD卡了。Windows可能會彈窗提示“需要格式化”絕對不要點格式化直接關(guān)掉窗口或彈出設備即可。實操心得SD卡質(zhì)量強烈建議使用Class 10或UHS-I及以上速度的知名品牌SD卡如SanDisk Extreme, Samsung EVO。劣質(zhì)卡會導致系統(tǒng)運行緩慢、甚至頻繁損壞數(shù)據(jù)。樹莓派對SD卡的讀寫很頻繁一塊好卡是穩(wěn)定性的基礎。燒錄失敗處理如果燒錄失敗或校驗出錯首先嘗試換一個USB口最好是主板原生的USB 3.0口或者換一個讀卡器。如果多次失敗可能是SD卡有物理損壞考慮更換一張。3.2 首次啟動前的關(guān)鍵配置配置Wi-Fi和SSH燒錄好的SD卡在首次插入樹莓派啟動前我們有機會進行一些“無頭啟動”的關(guān)鍵配置。在電腦上重新插入SD卡你會看到兩個分區(qū)system-boot(或boot)這是一個FAT32格式的小分區(qū)樹莓派的啟動引導文件在這里。writable這是主要的系統(tǒng)分區(qū)首次啟動后才會被掛載和擴展。我們需要在system-boot分區(qū)里動點手腳。啟用SSH這是為了后續(xù)能用SSH連接。在system-boot分區(qū)根目錄下創(chuàng)建一個空的文件命名為ssh注意沒有后綴名。當樹莓派首次啟動時檢測到這個文件就會自動啟用SSH服務。配置Wi-Fi可選如果你不想接網(wǎng)線需要預先配置Wi-Fi。在system-boot分區(qū)根目錄下創(chuàng)建另一個文件命名為user-data。這是一個 cloud-init 配置文件。你需要用文本編輯器如VS Code、Notepad編輯它內(nèi)容模板如下#cloud-config version: 2 network: ethernets: eth0: dhcp4: true optional: true wifis: wlan0: dhcp4: true optional: true access-points: 你的Wi-Fi名稱: password: 你的Wi-Fi密碼將你的Wi-Fi名稱和你的Wi-Fi密碼替換成實際信息。注意Wi-Fi名稱如果包含空格或特殊字符最好用雙引號括起來。保存文件后樹莓派首次啟動時會讀取這個配置并自動連接Wi-Fi。重要提示user-data文件對格式尤其是縮進非常敏感必須使用空格縮進不要用Tab鍵。建議復制上面的模板進行修改。配置完成后安全彈出SD卡。4. 連接樹莓派串口與SSH雙通道實戰(zhàn)現(xiàn)在將配置好的SD卡插入樹莓派接通電源。我們分別通過串口和SSH兩種方式連接它。4.1 串口連接最底層的調(diào)試通道串口連接能讓你看到從通電第一刻開始的全部啟動日志是排查啟動失敗問題的終極手段。硬件連接將USB轉(zhuǎn)TTL模塊插入電腦。用杜邦線連接模塊和樹莓派的GPIO引腳模塊的GND-樹莓派的GND如Pin 6。模塊的RX-樹莓派的TX(GPIO 14, Pin 8)。模塊的TX-樹莓派的RX(GPIO 15, Pin 10)。切記RX接TXTX接RX交叉連接GND對GND直連。軟件配置與登錄在電腦上打開設備管理器Windows或ls /dev/tty*命令macOS/Linux查看串口模塊分配的端口號比如COM3(Windows) 或/dev/ttyUSB0(Linux/macOS)。打開串口終端軟件以Putty為例Connection type: SerialSerial line: 填入你的端口號 (如COM3)Speed:115200樹莓派默認串口波特率點擊Open。然后給樹莓派上電。如果一切正常終端窗口會開始滾動顯示Linux內(nèi)核的啟動信息。啟動完成后會提示你登錄。默認的用戶名和密碼都是ubuntu。系統(tǒng)會強制要求你第一次登錄時修改密碼。按照提示輸入當前密碼 (ubuntu)然后設置一個強健的新密碼。串口連接的核心價值如果樹莓派無法從SD卡啟動比如卡在彩虹屏或黑屏串口終端里往往會打印出錯誤原因例如“文件系統(tǒng)損壞”、“內(nèi)核panic”等這是網(wǎng)絡連接無法提供的診斷信息。4.2 SSH連接日常操作的主力方式如果串口連接成功并且你預先配置了網(wǎng)絡網(wǎng)線或Wi-Fi那么就可以使用更便捷的SSH了。查找樹莓派的IP地址 樹莓派啟動后會自動通過DHCP獲取一個IP地址。你需要找到它。有幾種方法路由器后臺查看登錄你家路由器的管理界面通常是192.168.1.1或192.168.31.1在“已連接設備”或“DHCP客戶端列表”里查找主機名包含“ubuntu”或“raspberrypi”的設備。通過網(wǎng)絡掃描在電腦上使用arp -a命令查看本地ARP緩存或者使用掃描工具如nmap(nmap -sn 192.168.1.0/24)。通過串口查看如果你已經(jīng)通過串口登錄直接在樹莓派上運行ip a命令查看eth0有線或wlan0無線的inet地址。SSH登錄打開你熟悉的終端Windows可用PowerShell、Git Bash或WSLmacOS/Linux直接用系統(tǒng)終端。輸入命令ssh ubuntu樹莓派的IP地址。例如ssh ubuntu192.168.1.100。首次連接時會提示“The authenticity of host ... cant be established.”這是正常的SSH安全警告輸入yes繼續(xù)。輸入密碼你之前通過串口修改后的新密碼。登錄成功你現(xiàn)在已經(jīng)遠程控制你的樹莓派Ubuntu系統(tǒng)了。SSH連接優(yōu)化使用密鑰認證為了安全和免密碼登錄建議配置SSH密鑰。在你的電腦上生成密鑰對ssh-keygen -t ed25519然后將公鑰~/.ssh/id_ed25519.pub的內(nèi)容追加到樹莓派上的~/.ssh/authorized_keys文件中。之后登錄就不再需要輸入密碼。使用SSH Config簡化正如熱詞里提到的你可以在~/.ssh/config文件里為樹莓派創(chuàng)建一個別名。Host pi-ubuntu HostName 192.168.1.100 User ubuntu IdentityFile ~/.ssh/id_ed25519保存后以后只需要輸入ssh pi-ubuntu即可連接無需再記IP和用戶名。5. 登錄后的首要配置與系統(tǒng)優(yōu)化成功登錄后先別急著部署應用。進行一些基礎配置能讓后續(xù)使用更順暢。5.1 系統(tǒng)更新與基礎安全設置首先更新軟件包列表并升級所有已安裝的包。這能確保系統(tǒng)擁有最新的安全補丁。sudo apt update sudo apt upgrade -y升級過程可能會持續(xù)幾分鐘取決于網(wǎng)絡速度。接著修改主機名方便在網(wǎng)絡中識別sudo hostnamectl set-hostname my-raspberry-pi # 將 my-raspberry-pi 換成你喜歡的名字修改后需要重新登錄才能生效。強烈建議更改默認用戶Ubuntu為樹莓派鏡像預設的用戶就是ubuntu這眾所周知。為了提高安全性最好創(chuàng)建一個新的個人用戶并賦予其sudo權(quán)限然后刪除默認的ubuntu用戶。# 添加新用戶如 piadmin sudo adduser piadmin # 將新用戶加入sudo組 sudo usermod -aG sudo piadmin # 切換到新用戶測試sudo權(quán)限 su - piadmin sudo whoami # 應該返回 root # 確認新用戶可用后登出用新用戶SSH登錄。 # 最后刪除默認用戶 (謹慎操作確保新用戶已正常工作) # sudo deluser --remove-home ubuntu5.2 存儲空間擴展與交換空間調(diào)整燒錄的鏡像通常只占用SD卡的一部分空間。我們需要將其擴展到整個SD卡。sudo raspi-config在出現(xiàn)的文本配置界面中選擇Advanced Options-Expand Filesystem。執(zhí)行后重啟 (sudo reboot)。重啟后使用df -h命令查看根分區(qū)/的大小應該已經(jīng)變成了SD卡的完整容量。對于樹莓派4B 2GB/4GB內(nèi)存的版本默認的交換空間可能較小。你可以調(diào)整交換文件的大小或直接使用zram這個壓縮內(nèi)存交換工具它對SD卡更友好。# 禁用傳統(tǒng)交換分區(qū)如果有 sudo dphys-swapfile swapoff sudo dphys-swapfile uninstall sudo systemctl disable dphys-swapfile # 安裝zram-tools sudo apt install zram-tools -y安裝后zram會自動啟用將一部分內(nèi)存作為壓縮后的交換空間速度遠快于SD卡交換。5.3 常用工具安裝與開發(fā)環(huán)境準備根據(jù)你的用途安裝一些必備工具。基礎工具vim(編輯器),htop(進程監(jiān)控),git,curl,wget。sudo apt install vim htop git curl wget -yPython環(huán)境Ubuntu Server通常預裝了Python 3。你可以用pip安裝包。sudo apt install python3-pip python3-venv -yDocker如果你想用容器部署服務可以安裝Docker。curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # 將當前用戶加入docker組免sudo運行docker記得登出再登錄用戶組更改生效。6. 常見問題排查與技巧實錄即使按照步驟操作也可能會遇到問題。這里記錄幾個我踩過的坑和解決方法。6.1 啟動類問題問題1上電后只有紅燈常亮綠燈不閃或微閃串口無輸出。可能原因SD卡接觸不良、鏡像燒錄失敗、電源功率不足。排查重新拔插SD卡確保完全插入卡槽。換一張SD卡用BalenaEtcher重新燒錄一次并確保校驗通過。檢查電源。樹莓派4B/5需要5V/3A以上的優(yōu)質(zhì)電源劣質(zhì)電源或電腦USB口供電可能導致啟動失敗。使用官方電源或知名品牌的足功率電源。問題2串口有輸出但卡在某個內(nèi)核啟動階段例如“Failed to start ... mount /boot”。可能原因system-boot分區(qū)文件損壞或config.txt等引導配置錯誤。排查將SD卡插回電腦檢查system-boot分區(qū)下的文件是否完整。可以嘗試從官網(wǎng)重新下載鏡像再次燒錄。檢查system-boot分區(qū)下的config.txt文件。如果是樹莓派4確保沒有錯誤地啟用了僅適用于舊型號的參數(shù)。如果不確定可以備份后用一個全新的鏡像文件覆蓋system-boot分區(qū)注意不是整個SD卡。6.2 網(wǎng)絡與SSH連接問題問題3無法通過SSH連接提示“Connection refused”或“Connection timed out”。可能原因SSH服務未啟動、防火墻阻止、IP地址不對、Wi-Fi未連接。排查確認IP通過路由器后臺或串口ip a命令再次確認樹莓派的IP地址是否正確。檢查SSH服務通過串口登錄運行sudo systemctl status ssh查看SSH服務是否處于active (running)狀態(tài)。如果不是使用sudo systemctl start ssh啟動它并用sudo systemctl enable ssh設置開機自啟。檢查防火墻Ubuntu默認可能安裝了ufw防火墻。通過串口運行sudo ufw status。如果狀態(tài)是active并且沒有放行22端口需要添加規(guī)則sudo ufw allow ssh或sudo ufw allow 22。檢查Wi-Fi通過串口運行sudo nmcli device status查看wlan0是否已連接。或者運行iwconfig wlan0查看連接狀態(tài)。如果未連接檢查user-data文件中的Wi-Fi配置是否有誤。問題4SSH連接緩慢登錄后卡頓好幾秒。可能原因SSH服務端在嘗試反向解析客戶端的IP地址。解決在樹莓派上編輯SSH服務端配置sudo vim /etc/ssh/sshd_config找到#UseDNS yes這一行將其改為UseDNS no。然后重啟SSH服務sudo systemctl restart ssh。6.3 系統(tǒng)與性能問題問題5系統(tǒng)運行一段時間后異常卡頓SD卡指示燈常亮。可能原因SD卡讀寫頻繁尤其是交換分區(qū)、SD卡質(zhì)量差、某個進程占用大量IO。排查與解決使用htop命令查看CPU和內(nèi)存占用。如果內(nèi)存用盡系統(tǒng)會頻繁使用交換空間導致卡頓。這就是為什么前面推薦使用zram替代傳統(tǒng)交換文件。使用iotop命令需安裝sudo apt install iotop查看實時磁盤IO找出是哪個進程在瘋狂讀寫。根本解決對于需要頻繁讀寫的服務如數(shù)據(jù)庫強烈建議使用USB 3.0接口的外接SSD或高速U盤作為數(shù)據(jù)盤甚至將系統(tǒng)遷移到外接SSD上這能極大提升樹莓派的IO性能和SD卡壽命。問題6如何修改軟件源為國內(nèi)鏡像加速下載國內(nèi)訪問Ubuntu官方源可能較慢。可以替換為阿里云、清華、中科大的鏡像源。備份原列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak編輯源列表sudo vim /etc/apt/sources.list將文件內(nèi)容替換為阿里云鏡像源以Ubuntu 22.04為例deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse更新緩存sudo apt update給樹莓派燒錄Ubuntu并成功連接只是萬里長征的第一步但卻是最堅實的一步。掌握了串口和SSH這兩把鑰匙你就擁有了在任何無屏幕環(huán)境下操控這臺微型服務器的能力。后續(xù)無論是搭建個人網(wǎng)站、部署智能家居中樞、還是作為學習Linux和網(wǎng)絡服務的實驗平臺都可以在這個干凈、穩(wěn)定的Ubuntu基礎上自由發(fā)揮。最關(guān)鍵的是遇到啟動或網(wǎng)絡問題時不要慌拿出串口模塊看看系統(tǒng)到底在啟動時說了什么絕大多數(shù)問題都能在啟動日志里找到線索。