很多玩树莓派的朋友第一次拿到PI5,第一反应就是找HDMI线、翻键盘鼠标,结果发现手边啥也没有——显示器被占用、键鼠是蓝牙的还没配对、甚至电源都只有一个PD快充头。这时候想在PI5上装个Ubuntu系统,很多人就开始头大了。其实完全没有外设的情况下装系统,恰恰是树莓派这类单板电脑最舒服的玩法,只要一台电脑、一张SD卡、一根网线(或者无线网卡),半小时内就能把系统装好并且顺利登录,整个过程完全不需要键盘、鼠标和显示器。这篇文章我就从零到一,把我在树莓派5上无外设安装Ubuntu的完整流程、原理和踩坑记录都分享出来。
这篇文章适合谁看?如果你是刚入手树莓派5、手头设备不齐的入门玩家;或者你是做嵌入式开发、需要批量部署多台设备、根本没有条件一台一台接显示器的工程师;再或者你就是想搞明白“为什么树莓派能不需要屏幕直接装系统”背后的原理,这篇文章都能帮到你。
1. 内容整体设计与思路拆解
1.1 无外设安装的核心逻辑
先理解一个关键问题:树莓派到底凭什么能在没有显示器、键盘的情况下完成系统安装?
传统装系统的方式,是启动盘引导、屏幕上点下一步、设置用户名密码、安装完成。这条路的前提是得有显示器能看到画面,得有键盘输入信息。但树莓派这类设备天生就有另一条路:它支持headless模式,也就是无头启动。所谓无头,就是指系统运行时不依赖本地终端设备,所有操作都通过网络从远程完成。
树莓派无外设安装Ubuntu的思路本质上分三步。第一步,用电脑把Ubuntu系统镜像写入SD卡;第二步,在SD卡写入完毕后、上电之前,把“网络连接信息”和“用户账户信息”直接预置到SD卡的文件系统里;第三步,树莓派插卡上电,系统从SD卡启动后会自动完成配置,然后你就可以用电脑通过SSH远程登录了。整个过程中,树莓派根本不需要“看见”外部设备,它只需要知道自己该连哪个网络、该创建什么用户、是否允许SSH登录,这些信息提前写在SD卡的配置文件中就够了。
这个逻辑放在树莓派5上依然成立,而且PI5相比前代有一些细节变化需要注意。比如树莓派5的USB引导和网络引导被官方默认关闭了,默认只能从SD卡启动,所以无外设安装时,SD卡烧录这一步是不能省略的。另外PI5的镜像需要特别使用针对PI5适配过的Ubuntu版本,直接用老版本镜像可能无法启动。这些细节我会在后面专门讲清楚。
1.2 为什么推荐用Ubuntu Server而不是桌面版
在树莓派5的Ubuntu安装中,官方提供两种核心镜像:Ubuntu Server和Ubuntu Desktop。如果你要在无外设条件下安装,我的建议是只考虑Server版,或者说,至少先装Server版再考虑后续加装桌面环境。
原因很简单。Desktop版是为有显示器、有桌面操作场景准备的,它在首次启动时通常会弹出一个图形化的初始化向导,要求你选择语言、键盘布局、连接WiFi、创建用户。在没有显示器的情况下,这个向导根本没法操作,等于卡死在第一步。虽然也能通过预置配置文件绕过,但Desktop版体积大、内存占用高,对树莓派5来说虽然性能足够,但如果你一开始的目标只是跑服务、做开发环境,完全没必要装桌面。
Server版则是纯命令行系统,体积小、资源占用低,安装方式和配置方式都天然支持“预配置后自动安装”。在无外设的情况下,Server版从烧录到登录的全过程都是可控的,不会出现引导界面等待用户操作的问题。
当然,也不是说桌面版就完全不能无头安装。如果你确实需要桌面,可以先装Server版,登录后手动执行sudo apt install ubuntu-desktop,装完再接显示器使用。这个方案比直接在无头状态下折腾Desktop镜像要省心得多。
1.3 硬件版本差异对安装流程的影响
树莓派5相较于4代,有几处硬件层面的变化直接影响系统安装流程,我这里专门列一下。
第一,默认启动介质是SD卡。树莓派5的引导方式有了很大变化,官方改用了新的BootROM,早期版本默认不启用USB启动和网络启动,必须先从SD卡启动进入系统后,再用raspi-config或者EEPROM配置工具开启其他引导方式。这意味着无外设安装时,SD卡是绕不开的介质。
第二,供电要求提高。树莓派5官方建议5V 5A的电源,推荐使用支持PD协议的USB-C电源。电源功率不足可能导致系统不稳定、异常重启甚至SD卡分区损坏。这一点在无头安装时特别容易被忽视,因为你看不到屏幕上的低电压警告图标(那个闪电图标),只能通过系统日志和异常重启来判断。
第三,芯片平台升级。树莓派5使用了博通BCM2712四核Cortex-A76处理器,是64位ARM架构。这决定了你安装的系统镜像必须是ARM64架构的。好在Ubuntu官方对树莓派5的支持相当及时,从Ubuntu 23.10开始就为PI5提供了专门的预构建镜像,后续的24.04 LTS更是长期支持版本,稳定性足够可靠。
第四,无线网络配置不在系统层面。树莓派5板载了WiFi和蓝牙模块,但和4代一样,WiFi的行为由系统固件和驱动控制。在无头安装场景中,如果不想拉网线,你需要额外提供WiFi连接配置。但这里有个容易踩的坑:Ubuntu的镜像中使用的是netplan网络管理工具,和树莓派官方Raspberry Pi OS使用的NetworkManager配置方式不一样,很多人把树莓派官方文档里的WiFi配置方法照搬到Ubuntu上,结果发现不生效。后面我会给出正确的配置方式。
2. 工具选型与准备工作
2.1 硬件与软件清单
开始实操之前,先列一个清单。整个流程需要的设备如下。
必需硬件:
- 一台树莓派5(建议4GB或8GB内存版本,8GB版跑起来更从容)
- 一张MicroSD卡(推荐Class 10或UHS-I级别,容量至少16GB,推荐32GB以上)
- 一个SD卡读卡器(用于在电脑上烧录镜像)
- 一台能上网的电脑(Windows、macOS或Linux都可以)
- 一根网线(如果走有线网络方式,这几乎必选;如果走WiFi方式,可以省略)
可选硬件:
- 树莓派5官方电源或支持PD协议的电源(功率建议5V 3A以上,最好官方电源,省得排查奇怪问题)
必需软件:
- Ubuntu官方树莓派镜像文件(raspberry pi版专用)
- 镜像烧录工具:Raspberry Pi Imager或balenaEtcher
- SSH客户端(电脑上自带的一个工具,Windows用PowerShell或Terminal,macOS/Linux直接用终端即可)
- SD卡格式化工具(一般烧录工具会自带擦除功能,也可以用SD Card Formatter)
这里特别要提一句,很多人烧录镜像喜欢用Win32DiskImager这种老牌工具,但我在树莓派5上实际测试下来,还是更推荐Raspberry Pi Imager。原因很简单:它内置了树莓派官方适配的镜像下载源,同时还能在烧录前直接配置SSH、用户账户和无线网络,这些恰好是我们无外设安装最需要的功能。虽然Ubuntu官方也提供自己的镜像下载,但用Raspberry Pi Imager烧录时,它会自动下载适配镜像,很大程度上减少了对专门知识的要求。
2.2 镜像版本选择的关键细节
打开Ubuntu官网的树莓派下载页面,你会看到几个版本选项,有24.04 LTS、23.10、还有各种预装桌面服务器的组合。初次接触的人很容易在这个页面犹豫半天。
我的建议是:直接选Ubuntu 24.04 LTS版本。为什么?
第一,LTS代表长期支持,Ubuntu的LTS版本会提供至少5年的安全和维护更新。对于树莓派这类准备长期跑服务、做开发的板子,LTS能免去频繁升级系统的麻烦。
第二,Ubuntu 24.04对树莓派5的支持已经非常成熟,内核版本、驱动适配都经过了充足的时间检验。23.10虽然也支持PI5,但从命名就能看出,它不是长期支持的常规版本,只支持几个月就会停止维护。自2310之后已经有很多重要更新,24.04 LTS(Noble Numbat)才是当前最稳定的选择。
第三,在架构选择上,树莓派5的BCM2712是64位ARM处理器,所以必须选arm64架构镜像,而不是armhf(32位)。如果误选了armhf镜像,虽然理论上能启动,但性能会有损失,而且很多现代软件包在armhf下已经不提供了——在Ubuntu 24.04中,32位用户空间的软件源已经被大幅缩减,你会发现装了armhf系统之后,连装个常用开发工具都费劲。
这里还有一个容易搞混的细节:Ubuntu Server for Raspberry Pi和树莓派官方操作系统Raspberry Pi OS是两个完全不同的系统。网上很多树莓派无头安装教程是针对Raspberry Pi OS的,里面的配置方法、工具命令在Ubuntu上并不通用。比如树莓派OS使用raspi-config来做系统配置,Ubuntu上并没有这个工具(或者说需要另外安装)。再比如WiFi配置,树莓派OS推荐修改/etc/wpa_supplicant/wpa_supplicant.conf,而Ubuntu使用netplan。这些差异是导致很多人“照着教程做却失败”的根源。
2.3 烧录工具的高级用法:为什么强烈推荐Raspberry Pi Imager
说到烧录,我用过多个工具,包括balenaEtcher、Win32DiskImager、dd命令,最终固定下来用Raspberry Pi Imager,很大程度上是因为它有一个被很多人忽略的功能:烧录前预配置系统。
普通的烧录工具,比如balenaEtcher,它的工作就是把镜像文件“原封不动”地写入SD卡,写完就结束。这样烧完的SD卡是一个完全初始状态的系统,如果你想做无头安装,还需要在烧录之后手工挂载SD卡的分区,修改config文件、新建SSH标记文件、写入网络配置,操作繁琐而且容易出错。macOS和Linux下还能用mount命令挂载分区操作,Windows下挂载ext4分区非常麻烦,需要第三方工具,很多新手就是在这一步卡死的。
而Raspberry Pi Imager提供了一个快捷键或按钮选项:在进入烧录页面后,可以点按右下角的齿轮图标(或者使用快捷键Ctrl+Shift+X),打开“高级选项”。在这里你可以提前设置主机名、启用SSH、设置用户名密码(或者配置SSH密钥)、配置无线网络、设置地区选项等。当你选择完镜像并点击烧录之后,Imager在写入镜像的同时,会把这份预配置写入SD卡的引导分区,实现了和树莓派官方系统一样的“烧录即配置”效果。
我之前用balenaEtcher的时候,烧录完还要额外下载一个Linux分区读取工具,挂载、修改、卸载,来回折腾。后来换成Raspberry Pi Imager之后,整个过程从20分钟缩短到3分钟,而且出错概率大幅降低。这里我不是说balenaEtcher不好,它依然是个优秀的通用烧录工具,但在树莓派场景下,Imager的预配置功能实在太香了。
2.4 网络方案选型:有线还是无线?
无外设安装的另一个关键选择是网络:你打算让树莓派通过有线还是无线接入网络?
这两种方式各有优劣。有线网络(以太网)的优势是稳定、无需额外配置,插上网线之后,路由器DHCP会自动给树莓派分配IP地址,不需要在SD卡里写任何网络配置。对于第一次安装的场景,这是最省心的方式。劣势就是需要一根网线,而且树莓派必须待在路由器附近。
无线网络(WiFi)的优势是位置自由,不需要物理连接。但缺点是要提前把WiFi的SSID和密码写入配置,而且Ubuntu和树莓派OS的配置方式不同,配置错误会导致树莓派静默地连不上网络,只能拔卡重新配置。
我的建议是:第一次安装,务必用有线网络。等进入系统之后,再通过命令行方式配置WiFi作为备用网络。这样可以把“安装失败”的风险降到最低。如果你实在没有网线或者受条件限制必须走WiFi,那一定要仔细看后面WiFi配置部分的内容,并且确认你的网络环境是2.4GHz频段(5GHz频段在部分配置下可能因国家区域设置导致连接失败)。
3. 实操过程与核心环节实现
3.1 下载Ubuntu镜像文件
实操第一步,获取正确的镜像文件。打开Ubuntu官网的下载页面,找到“Ubuntu for Raspberry Pi”栏目,或者直接访问Ubuntu官方镜像站点的树莓派目录。
下载时选择**64-bit (ARM)**版本的Ubuntu Server镜像,文件名格式类似ubuntu-24.04-preinstalled-server-arm64+raspi.img.xz。注意这个文件名里有两个关键信息:arm64表示这是64位ARM架构版本,raspi表示这是树莓派专用版本,preinstalled表示这是预安装的镜像格式——它和普通Ubuntu Server的ISO安装镜像不同,不需要走安装器的交互流程,烧录到SD卡之后就是一个完整可用的系统。这一点和我们无外设安装的需求正好匹配。
文件下载完成后,你可以先校验一下SHA256校验值,确保下载过程中文件没有损坏。在Windows下可以用certutil -hashfile 文件名 SHA256命令,在macOS/Linux下直接用shasum -a 256 文件名命令。校验值可以在Ubuntu官网下载页面上找到。
3.2 使用Raspberry Pi Imager烧录与预配置
下载并安装Raspberry Pi Imager之后,打开软件,完整的操作步骤如下。
第一步,点击“选择设备”(或者直接选择镜像)按钮,在镜像选择器中,Raspberry Pi Imager会提供一个“使用自定义镜像”的选项。这里有两种路径:如果你通过Ubuntu官网已经下载好了镜像文件,选择“使用自定义镜像”,然后定位到你下载的.img.xz文件即可。如果你还没有下载,也可以进入“树莓派设备”分类下的“Ubuntu”目录,从Imager内置的下载源里选择,但这种方式下载速度受网络影响较大,我建议提前下载好镜像文件更快。
第二步,在烧录之前,点击界面右下角的齿轮图标,打开高级选项。依次设置以下内容:
- 设置主机名:给你的树莓派起一个名字,比如
pi5或ubuntu-server,这个名字会用在局域网内通过主机名访问的场景。默认的可能是raspberrypi或ubuntu,建议改成你容易识别的名字。 - 启用SSH:勾选“启用SSH”,并选择密码认证或公钥认证。如果选择密码认证,设置一个强密码(后面SSH登录需要用到)。如果选择公钥认证,则需要粘贴你电脑上的公钥文本(
id_rsa.pub内容)。 - 设置用户名和密码:默认的登录用户是
ubuntu,密码是ubuntu(首次登录会强制修改)。但强烈建议在这里直接设置自定义用户名和密码,避免后续还要做强制修改步骤。用户名可以设置成你惯用的,比如admin或你自己的名字拼音。 - 配置无线网络:如果你走WiFi安装,这里勾选“配置无线局域网”,输入你的WiFi SSID和密码,并选择WiFi国家/地区。注意,频谱和国家设置必须正确,否则可能出现扫描不到WiFi或者连接不稳定等诡异问题。
- 设置地区选项:设置键盘布局和时区。这个选项不一定影响所有场景,但有线网络下影响不大,时间同步建议保持默认的自动配置。
第三步,点击“保存”回到主界面,选择目标SD卡,确认后点击“烧录”。Imager会执行写入操作,中间可能会提示“这将清空SD卡上的所有数据”,确认即可。写入速度和SD卡品质相关,一般等待3-5分钟。
烧录完成之后,不要急着拔卡。如果你是Windows用户,此时大概率会看到系统弹窗提示“是否格式化SD卡”,千万不要点格式化。Imager烧录完成后的SD卡,里面会有bootfs(引导分区)和writable(根文件系统分区)两个分区。我们刚才设置的所有预配置信息,Imager已经写入了引导分区里的user-data或network-config文件。
3.3 预配置文件的原理与手动修改方法
如果因为某些原因不使用Raspberry Pi Imager,或者你想事后修改配置,我来说说这些预配置文件到底长什么样,这样你遇到问题时能自己排查。
Ubuntu针对树莓派的镜像里,引导分区(也就是烧录后电脑能直接识别到的那个FAT分区)中包含了几个关键配置文件:
network-config:这个文件用于配置网络。user-data:这个文件使用cloud-init格式,包含了用户账户、SSH等配置信息。system-boot目录下还有usercfg.txt等硬件配置。
其中network-config文件的核心作用是配置netplan。默认的内容大致是一个示例配置,你需要把它修改为实际可用的配置。一个典型的有线网络配置长这样:
network: version: 2 ethernets: eth0: dhcp4: true如果是无线网络,配置长这样:
network: version: 2 wifis: wlan0: dhcp4: true access-points: "你的WiFi名称": password: "你的WiFi密码" optional: true注意,netplan配置对缩进极其敏感,用空格缩进而不能用Tab键,冒号后面必须跟空格。很多人手动改这个文件后系统连不上网,九成都是YAML格式写错了。
而user-data文件则负责系统初始化。在这个文件里,cloud-init会自动完成用户创建、SSH密钥注入、密码设置等任务。如果我用Imager的预配置功能,其实Imager就是帮你生成了这个文件的内容。手动修改这个文件时要注意,文件开头需要保留#cloud-config这个magic header,否则cloud-init不会执行这个文件的内容。
有一种常见做法是:烧录完成后,在Windows资源管理器里打开SD卡的引导分区(那个能看到config.txt和kernel8.img的分区),创建一个名为ssh的空文件,然后修改user-data文件来设置用户密码,修改network-config文件来配置WiFi。这种做法在Raspberry Pi OS里很常见(那个ssh空文件是Raspberry Pi OS启用SSH的标记),但在Ubuntu镜像里,ssh空文件不一定能起到作用,真正起作用的还是user-data中SSH相关的配置。这也是为什么我一直强调用Imager的预配置功能更省心。
3.4 首次启动与SSH登录全流程
预配置完成后,把SD卡从读卡器中取出,插入树莓派5的SD卡槽(树莓派5的SD卡槽在板子背面,翻过来才能看到),然后接上网线(如果走有线方案),最后接通电源。
树莓派5的启动流程一般是这样的:红色电源指示灯常亮,然后绿色的ACT指示灯(在板子边缘)开始闪烁,表示正在读取SD卡启动。如果一切正常,几十秒后系统就完成了启动。
这时你需要在电脑上找到树莓派的IP地址。有三种常用方法。
方法一,登录路由器管理后台。打开浏览器,进入你的路由器管理页面(一般是192.168.1.1或192.168.0.1),在“已连接设备”或“DHCP客户端列表”中找设备名(你在Imager里设置的主机名)对应的IP地址。
方法二,用arp命令扫描局域网。在电脑的命令行里执行arp -a,可以看到局域网内的IP和MAC地址映射。树莓派的MAC地址前缀是d8:3a:dd或2c:cf:67(树莓派5的MAC前缀也有可能是dc:a6:32,不同批次可能不同),找到这个前缀对应的IP就是树莓派的地址。
方法三,如果你有多个设备要管理,或者经常需要找设备IP,推荐安装nmap工具,执行nmap -sn 192.168.1.0/24(根据你自己的网段调整),批量扫描局域网存活设备,这个方法最直观。
拿到IP地址后,在电脑上打开终端(Windows使用PowerShell或CMD,macOS/Linux使用终端),执行SSH登录命令:
ssh 用户名@IP地址比如ssh admin@192.168.1.100,首次连接会提示确认主机指纹(因为SSH连接时通常会验证密钥指纹),输入yes回车确认,随后输入你设置的密码即可登录成功。
登录成功后,你会看到Ubuntu的命令行提示符,类似这样:
admin@pi5:~$到这里,无外设安装就算基本完成了。
3.5 系统安装完成后的基础验证
登录成功只是“能用了”,离“好用”还有一段路要走。先做几个基础验证,确认系统状态正常。
第一,查看系统版本信息:
lsb_release -a确认你安装的就是24.04 LTS版本。同时执行uname -m确认架构是aarch64(arm64的另一种命名方式)。
第二,更新软件源并升级系统:
sudo apt update sudo apt upgrade -y这个步骤非常重要,尤其是刚烧录的系统,可能携带的是镜像发布时的软件源列表,更新之后才能获取最新安全补丁和软件仓库列表。
第三,查看磁盘分区情况:
lsblk sudo parted -l正常情况会看到/dev/mmcblk0p1(引导分区)和/dev/mmcblk0p2(根分区)。如果根分区没有占满整个SD卡,需要执行sudo growpart /dev/mmcblk0 2 && sudo resize2fs /dev/mmcblk0p2来扩展文件系统。Ubuntu的树莓派镜像通常会自动扩展根分区,但手动检查一下更保险。
第四,检查网络接口状态:
ip a sudo netplan status确认eth0(有线)或wlan0(无线)已经获取到了IP地址。如果是有线网络连接,此时已经可以拔掉网线了——不对,拔掉网线就断网了,这个阶段网线先留着。
第五,确认SSH服务状态:
sudo systemctl status ssh正常情况下,SSH服务应该是active (running)状态。如果无法从外部连接SSH,多半是服务没有启用,可以执行sudo systemctl enable --now ssh手动启用。
4. WiFi配置与网络故障排查实录
4.1 如何在Ubuntu下正确配置WiFi
前面说过,在无外设安装的初始阶段,我强烈推荐有线网络。但树莓派作为嵌入式设备,很多时候不会长期接网线放置,所以WiFi配置早晚得配。这里我专门把Ubuntu树莓派系统的WiFi配置过程完整讲一遍。
树莓派5的板载WiFi模块型号为博通BCM43455,Ubuntu 24.04内置了对应驱动,所以系统装好之后直接可用,不需要额外装驱动。关键在于配置方式。
Ubuntu使用netplan管理网络。你可以直接编辑netplan的配置文件,一般位于/etc/netplan/目录下,文件名类似50-cloud-init.yaml或者netplan-config.yaml。执行以下命令查看:
ls /etc/netplan/ cat /etc/netplan/50-cloud-init.yaml一个完整的WiFi配置模板如下:
network: version: 2 wifis: wlan0: dhcp4: true access-points: "你的WiFi名称": password: "你的WiFi密码" optional: true编辑好之后,执行sudo netplan try命令。这个命令非常有用,它会应用配置,等待120秒,如果在等待时间内你按回车确认,配置生效;如果不按,120秒后自动回滚到之前的配置。对于远程SSH操作,这个机制能防止因为配置错误导致网络断开后无法恢复的尴尬情况。确认配置无误后,再执行sudo netplan apply使其永久生效。
4.2 网络配置中那些最容易翻车的坑
WiFi配置失败是树莓派无头安装中最高发的问题,没有之一。我总结了几个最常见的翻车原因。
第一个坑:YAML格式错误。很多人把从网上复制的配置直接粘贴进去,结果缩进不统一、冒号后面没有空格,netplan解析直接报错。YAML对格式要求极其严格,建议写完配置后用python3 -c 'import yaml, sys; yaml.safe_load(open("/etc/netplan/xxx.yaml"))'这类命令快速验证格式是否正确。
第二个坑:SSID包含特殊字符。如果WiFi名称包含中文字符、空格或者特殊符号,netplan配置需要处理引号转义问题。比如中文SSID或者带空格的SSID,配置时用双引号包住,但内部特殊字符仍然可能导致解析失败。最简单的办法是:路由器上建一个纯字母数字的专用IoT网络,既省事又安全,还避免SSID字符问题。
第三个坑:设备忘记插入前未开启无线。有些树莓派5板子在默认配置下,无线模块是启用的,但是有些地区版本的板子或者某些固件版本下,系统启动时默认可能关闭无线。可以检查sudo rfkill list,如果看到Soft blocked: yes,执行sudo rfkill unblock wifi解除软禁用。
第四个坑:WiFi 5GHz频段导致连接失败。在某些国家/地区码设置不正确的情况下,5GHz WiFi的信道可能不被系统支持。如果你的WiFi配置了双频合一,或者SSID同时广播2.4GHz和5GHz,建议先把网线连接,然后在Ubuntu里确认WiFi国家码设置,再调整路由器。用sudo raspi-config这个工具可以设置WiFi国家码(Ubuntu需要先安装raspi-config),也可以修改/etc/default/crda这个文件中的REGDOMAIN=行。
第五个坑:密码(预共享密钥)格式错误。WPA2/WPA3的密码长度最少8位。如果你的WiFi密码少于8位,路由器设置根本过不去,系统自然连不上。
对于无外设的场景,最稳妥的做法是:修正之前说的所有问题,尽量用有线连接作为兜底防线,WiFi配置好之后再拔网线。这样即使WiFi没起来,也能用网线重新连回去排查。
4.3 网络连不上时的排查流程
假如树莓派已经插上电,但SSH就是连不上,这时候不要慌,按照下面的顺序逐项排查。
第一步,确认硬件层。观察树莓派板子上的ACT绿灯是否在正常闪烁。如果插电后绿灯常亮不闪或完全不亮,说明SD卡引导失败,多半是镜像烧录有问题或者SD卡兼容性问题。观察网口插线后网口指示灯是否亮起,如果完全不亮,可能是网线或路由器端口问题。
第二步,确认网络层。回到路由器管理后台,看有没有名为你设置的主机名的设备出现在客户端列表。如果列表里没有,检查路由器的设备隔离设置(AP隔离/Access Point Isolation),有些路由器开启了AP隔离功能后,无线设备之间不能互通,树莓派即使连上WiFi,你的电脑也访问不到它。
第三步,确认SSH层。如果能看到设备在线但仍然无法SSH连接,使用ping 树莓派IP先测连通性。如果能ping通但SSH端口不通,执行nmap -p 22 树莓派IP检查端口状态。SSH端口不通,大概率是系统内ssh服务没启用。
第四步,串口救急。如果以上排查都无效,还有最后一招终极方案:使用UART串口连接树莓派。树莓派的GPIO引脚排布中,有一组UART引脚(包括TX、RX和GND),你可以用一片USB转TTL串口模块(几块钱一个)连接树莓派的GPIO引脚,在电脑上通过串口终端软件(如PuTTY或minicom)连接树莓派,这相当于获得了一个不依赖网络的命令行终端。用串口连接后,你就能看到系统启动日志,进而定位是网络问题还是启动问题。这个方案在树莓派无头启动场景中是保命技能。树莓派5的GPIO引脚中,UART0的TX位于GPIO14(8号引脚),RX位于GPIO15(10号引脚),GND接6号引脚即可。
5. 常见问题与排查技巧实录
5.1 树莓派5相关的特殊问题汇总
根据我在PI5上反复折腾的经验,下面这些问题是比较高频出现的,整理成速查表供你参考。
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 上电后ACT灯完全不亮 | SD卡烧录失败或SD卡损坏 | 重新烧录镜像,更换SD卡 |
| 上电后ACT灯高频闪烁 | 镜像与硬件版本不兼容 | 确认使用arm64架构镜像,确认Ubuntu版本支持PI5 |
| SSH能连接但用户密码报错 | 预配置的user-data未生效 | 检查user-data文件格式,确认启动时cloud-init执行成功 |
| 系统运行中途自动重启 | 供电不足 | 更换官方电源或5V 5A PD电源,检查USB-C线材质量 |
| WiFi扫描不到任何网络 | 国家码设置错误或无线模块被软禁用 | 设置正确国家码,执行rfkill解除禁用 |
| SSH连接速度极慢 | DNS反查或认证方式配置问题 | 在SSH服务端配置中禁用DNS反查 |
| SD卡空间没有完全使用 | 根分区未自动扩展 | 手动执行growpart和resize2fs |
| 系统时间总是错误 | 未配置自动同步 | 安装chrony或systemd-timesyncd配置NTP |
5.2 cloud-init常见问题与解决办法
Ubuntu树莓派镜像使用cloud-init做初始化,这个工具功能非常强大,但同时也带来了不少疑难杂症。
先说一个最常见的问题:我已经设置了用户名和密码,但登录时提示密码错误。这个问题的根源在于,cloud-init执行用户创建和密码设置的时机是在系统第一次启动时,不是烧录时。如果你的SD卡在路由器上通电启动过,然后又拔下来改配置,再次上电启动,cloud-init可能已经“认为”初始化完成了,不会重新执行你的配置修改。解决办法是:烧录完成后,直接插入树莓派上电启动,不要等系统启动过一次之后再改配置。如果确实需要修改配置,创建空文件/var/lib/cloud/instance中标记为config_complete的状态,或者查看/etc/cloud/cloud.cfg.d/下的配置。
另一个常见问题:user-data文件格式正确但配置不生效。这个大概率是文件权限或所有者的原因。检查一下user-data文件的所有者是否为root,权限是否正确。cloud-init对配置文件的权限有要求,组和其他用户不能有写权限,否则安全策略会拒绝执行。
还有一个细节:cloud-init在每次启动时都会检查网络并尝试更新元数据。如果你的网络环境中没有提供云平台特有的metadata服务(大多数家庭局域网没有),每次启动时cloud-init都会浪费几十秒的时间尝试连接,导致系统启动变慢、SSH连接等待时间变长。解决办法是修改/etc/cloud/cloud.cfg,在datasource_list列表里改为只有None,禁用云端metadata抓取,能显著加快启动速度。
5.3 烧录过程中的经验与常见误区
有些人烧录完成后发现SD卡容量“变少”了,这是正常现象。镜像文件写入SD卡后,SD卡上只有桩分区方案展示的镜像分区,剩余的未分区空间系统会在首次启动时自动扩展给根分区使用。为什么容量“缩水”?因为Ubuntu镜像默认只占用了SD卡开头的一部分空间,剩余空间是未分区的。这是设计使然,不是烧录问题。如果你在Windows里看到SD卡只有几个GB剩余,不要慌,这是正常的。
有些人烧录时图省事用“全盘写”功能,把一张64GB的SD卡写成了一个只有2GB分区的系统。这种情况下需要用sudo parted /dev/mmcblk0 resizepart 2 100%这样的命令来扩展分区,再resize2fs扩大文件系统。如果系统内没有自动扩展,也可以用树莓派官方提供的raspi-config工具中的“Advanced Options -> Expand Filesystem”来自动扩展。
还有一点经验:烧录前务必确认SD卡的真伪和品质。市面上很多所谓的“高速SD卡”其实是扩容卡或劣质卡,写入速度不稳定,很烧录过程中报错,或者烧录后系统运行中频繁出现IO错误。我踩过这个坑:某次给PI5装系统,烧录烧到一半报错,当时以为是镜像问题,反复下载了三遍镜像都是同样错误,最后换了一张正规渠道的闪迪SD卡,一次成功。如果你的烧录过程总在某个固定进度报错,九成是SD卡本身有问题,先换卡再排查别的。
6. 安装后的系统优化与环境搭建
6.1 基础环境配置
系统能通过SSH登录之后,先花几分钟把基础环境配置好,后面使用会顺手很多。
第一步,切换软件源为国内镜像。Ubuntu默认的软件源是archive.ubuntu.com,在国内访问速度不稳定,安装软件经常要等很久。执行以下命令查看当前源:
cat /etc/apt/sources.list.d/ubuntu.sources在Ubuntu 24.04中,软件源配置从/etc/apt/sources.list换成了/etc/apt/sources.list.d/ubuntu.sources文件,格式也不同。手动替换所有archive.ubuntu.com为国内镜像地址即可,比如清华源的mirrors.tuna.tsinghua.edu.cn或阿里云的mirrors.aliyun.com。修改后执行sudo apt update验证。
第二步,设置正确的时区:
sudo timedatectl set-timezone Asia/Shanghai第三步,创建交换分区(可选)。如果你的树莓派5只有4GB内存,跑一些较重服务时内存可能吃紧。可以创建2GB的swapfile方便内存不够时撑住。创建方式:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab第四步,修改默认的SSH密码认证方式为密钥认证。如果你在Imager中已经配置了SSH密钥,这一步可以跳过。如果只配置了密码认证,建议在电脑上生成密钥对之后,把公钥追加到树莓派的~/.ssh/authorized_keys文件中,然后在/etc/ssh/sshd_config中设置PasswordAuthentication no,提高安全性。注意:改这个设置之前,务必确认另一个终端能正常用密钥登录,否则容易把自己锁在门外。
第五步,安装常用开发工具:
sudo apt install -y build-essential git curl wget vim htop tree net-tools这些工具涵盖编译、版本控制、下载、文本编辑、系统监控等基础能力,装完之后基本就能当一台正经的Linux服务器使用了。
6.2 远程管理的几种实用方案
树莓派没有外设,长期使用中你会慢慢发现,SSH虽然好用,但有些场景下还是有更高效的方案。
方案一,使用SSH Config简化连接。在电脑的~/.ssh/config中添加一段配置:
Host pi5 HostName 192.168.1.100 User admin IdentityFile ~/.ssh/id_ed25519之后直接执行ssh pi5就能连上,不用再记忆IP地址和用户名。
方案二,配置静态IP地址。DHCP分配的IP地址可能变化,频繁变动会导致SSH连接记录失效。在netplan配置中,为树莓派设置一个基于MAC地址的静态IP,或者干脆在路由器后台将其IP地址设为静态租约。我推荐后者,因为不需要在系统内修改配置文件,避免netplan配置错误的风险。
方案三,使用Tailscale或ZeroTier构建虚拟内网。如果你的树莓派需要远程访问,而你在外网环境无法直接SSH,可以安装Tailscale或ZeroTier这类组网工具,将树莓派和你的电脑组成一个虚拟局域网,无论身处何地都能直接SSH连接。这两款工具都提供ARM64版本,安装非常简单:
curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up方案四,配置UFW防火墙。树莓派暴露在网络上总会引来各种扫描,建议开启防火墙:
sudo apt install ufw sudo ufw allow OpenSSH sudo ufw enable这一步能挡掉大量外部的端口扫描,让系统安全很多。如果你是内网使用,防火墙的优先级可以低一些,但如果路由器上做了端口映射或暴露到公网,UFW就是必需的了。
6.3 如何保存和恢复系统镜像(备份技巧)
树莓派发展到后续,你难免会安装各种软件、修改各种配置,搞得系统面目全非。这时候有一个良好的备份习惯能救命。
备份系统最直接的方式就是把SD卡内容完整导出成一个镜像文件。具体操作如下。
在电脑上下载一个SD卡读取工具,将树莓派的SD卡插入读卡器并连接到电脑。在Linux或macOS下,可以先用diskutil list或fdisk -l确认SD卡的设备名(比如/dev/sdb),然后使用dd命令:
sudo dd if=/dev/sdb of=~/pi5-ubuntu-backup.img bs=4M status=progress在Windows下,也可以用Win32DiskImager的“读”功能读取整个SD卡为镜像文件。
这种全卡备份的缺点是镜像文件会占用与SD卡容量的相同空间(64GB卡备份出来就是64GB文件),而且压缩比例不高。更聪明的做法是使用rpi-clone这类工具做在线克隆到另一张SD卡,或使用rsync做文件级别的备份。我的习惯是,在系统刚装好、配置完基础环境之后,做一次完整全卡备份作为“黄金镜像”,后续日常使用中如果再改动太多,直接恢复这个镜像,免去从头配置的功夫。
备份时机也很重要。我建议在以下节点做备份:系统刚安装完成并成功登录时、基础环境配置好之后、安装完某个重大服务之后。云原生领域有个“不可变基础设施”的概念,放在树莓派上也一样:系统基准镜像越干净,出问题时恢复越简单。
7. 进阶玩法与扩展方向
7.1 用树莓派5跑Docker容器
树莓派5的CPU性能已经相当可观,8GB内存版本跑几个Docker容器完全不成问题。安装Docker后,可以去跑各种服务容器,比如家用NAS(Nextcloud)、智能家居控制台(Home Assistant)、私有代码仓库(Gitea)等。
在树莓派5上安装Docker很简单:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER安装完成后,重新登录SSH(使组权限生效),就可以正常使用Docker命令了。注意国产环境下访问Docker Hub拉取镜像可能较慢,可以配置镜像加速器(把/etc/docker/daemon.json文件写入镜像加速地址)。
用树莓派5跑容器的优势在于功耗极低(满载大概10W出头),24小时开机每月电费可以忽略不计,非常适合充当家庭服务器。相比用一台x86电脑跑服务器,PI5的性价比和静音优势太明显了。
7.2 打造一台专属开发板或NAS
树莓派5提供了PCIe接口,可以外接NVMe SSD。把系统安装在SSD上之后,磁盘IO性能会有质的飞跃,如果只是用SD卡,读写性能很容易成为性能瓶颈。关于这一点,感兴趣的朋友可以在装好系统后自己尝试:先正常SSH登录,然后在SD卡系统上更新EEPROM以启用USB/NVMe启动,再把系统迁移到NVMe SSD上。这种折腾的过程本身也是玩树莓派的一大乐趣。
我自己的PI5目前跑着这些服务:一个Gitea代码仓库、一个AdGuard Home DNS过滤器、一个Home Assistant智能家居中枢,外加一个定时备份任务。所有服务都用Docker编排管理,运行了几个月非常稳定。回想起来,这些服务都是在这台无外设的树莓派上通过一条SSH连接慢慢搭建起来的,整个过程从未插过显示器或键盘。
7.3 无外设安装思路在其他场景的复用
其实,无外设安装的思路不仅适用于树莓派5,对于几乎所有的ARM开发板都适用。比如香橙派、香蕉派、RK3588系列开发板,甚至某些x86迷你主机,都可以用类似的思路:电脑上写好镜像、预置配置、设备上电启动、远程SSH登录。这套方法论的核心在于理解“系统的安装过程并不必须依赖本地交互终端,一切配置都可以预先写好在存储介质里”。理解了这一点,无论以后接触什么新设备,你都能快速找到无头安装的路径。
另外,这套无外设方法也非常适合多台设备批量部署的场景。给10台树莓派装系统,不需要一台一台接显示器操作,只要批量烧录SD卡、预置相同的配置(主机名区分开即可),然后逐台插卡上电,就可以在电脑上批量等待它们上线,效率提升非常明显。
总结与个人经验
跑完这一整套流程,你会发现“没有外设安装树莓派系统”这件事,本质上就是利用Linux系统天然的远程管理能力,把系统安装过程拆分成“烧录”和“预配置”两部分,然后让设备在首次启动时自动完成剩余工作。
根据我反复操作多遍的实际体会,有几点经验值得再强调一下:
第一次安装,能走有线网线就别用WiFi,等系统稳定跑起来之后再慢慢调无线。
烧录工具优先用Raspberry Pi Imager并利用它的预配置功能,别在烧录之后手动改配置文件,这一步能绕开九成的踩坑。
遇到问题先怀疑SD卡和电源,这两个是树莓派无头启动中最容易忽视的硬件隐患。系统层面的问题可以通过串口查看启动日志来定位,其他问题可以靠逻辑排查。
树莓派5是一块非常均衡的板子,搭配上Ubuntu Server 24.04 LTS和Docker容器方案,完全能胜任一台低功耗家庭服务器的角色。而无外设的安装方式,让它的部署门槛降到了最低。希望这篇文章能帮你少走弯路,顺利把你的PI5点亮跑起来。