树莓派4b通过外接ssd硬盘启动系统失败的排查和解决
树莓派4b通过外接ssd硬盘启动系统失败,症状:
屏幕卡在黑屏或提示
mmc1:Controller never released inhibit bit(s)....
先说如何设置硬盘启动,后面是解决问题的方法。
想用几台树莓派做一些微服务和集群的测试,但sd卡作为系统盘一直是树莓派的诟病和性能瓶颈,sd卡寿命短,传输速率慢,查了下资料,发现只要更新2020-09-03或更高版本的Bootloader,Raspberry Pi OS 2020-08-20或更高版本的系统,就可以原生支持从网络或硬盘启动。
如果你的系统早于2020-08-20安装,需要手动更新系统到最新。
sudo apt update
sudo apt full-upgrade
编辑/etc/default/rpi-eeprom-update,更改为stable模式
sudo vim /etc/default/rpi-eeprom-update
FIRMWARE_RELEASE_STATUS="stable"
更新BOOTLOADER
sudo rpi-eeprom-update -a
截止到2021-03-04,最新的BOOTLOADER为
BCM2711 detected
Dedicated VL805 EEPROM detected
Checking for updates in /lib/firmware/raspberrypi/bootloader/stable
Use raspi-config to select either the default-production release or latest update.
BOOTLOADER: up-to-date
CURRENT: 2021年 02月 16日 星期二 13:23:36 UTC (1613481816)
LATEST: 2021年 02月 16日 星期二 13:23:36 UTC (1613481816)
RELEASE: stable
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1
重启
sudo reboot
有文章说需要运行sudo raspi-config,设置第六项(Advanced Options)里的Boot Order,选择Usb Boot,但不是必须设置,只要不塞SD卡,系统会自动从USB启动。
以上完成后,可以将原sd卡的系统和文件全部迁移到SSD上,可以用系统自带的SD Card Copier
还可以使用命令
df -h #查看存储设备的名称
#/dev/mmcblk0为sd卡 /dev/mmcblk0为ssd
sudo dd if=/dev/mmcblk0 of=/dev/sda bs=4M
也可以使用读卡器直接克隆到ssd,自行发挥
然后拔掉sd卡,插上ssd,顺利的话,系统可以正常启动,从此告别sd卡。
但我的设备(奥睿科透明2.5硬盘盒+Samsung SSD)没法正常启动,硬盘灯一秒钟闪烁一次,ssd硬盘不停读盘,换了一个有源硬盘盒可以顺利启动,以为是电压不足的原因,买了带供电的usb hub尝试后失败,换了带辅助供电的usb3.0硬盘线,但线材没做防倒流设计,直接给树莓派usb口反相供电,绕过了电压过载保护,容易烧坏主板,此方案也失败,查了资料说树莓派usb端口可以提供1.2A的电流,我的ssd功耗才0.9A,没道理供电不足,买了根micro hdmi线材接到显示器并没有出现电压不足的闪电标志,电源灯也没闪烁,排除了供电问题。
官方论坛里查到系统在启动时会延迟USB端口供电,默认为1秒,有人通过修改配置USB_MSD_PWR_OFF_TIME=0可以解决无法启动的问题
# BOOTLOADER在2021-01-11之前的版本可以尝试
sudo -E rpi-eeprom-config --edit
但在2021-01-11以后的BOOTLOADER版本中,这个问题已经不存在了。
那就是硬盘盒的问题了,果然官方文档上有描述:
This is especially important with USB SATA adapters which may be supported by the bootloader in mass storage mode but fail if Linux selects USB Attached SCSI - UAS mode.
See this forum thread about UAS and how to add usb-storage.quirks to workaround this issue.
大概意思是,如果硬盘盒厂商没有完全实现UAS协议或者系统内支持UAS设备列表里没有厂商发布的产品ID号,SSD访问速度就会变得奇慢或者无法访问。
需要手动修改/boot/cmdline.txt文件,添加设备信息
# 首先查看驱动器型号
lsusb
Bus 002 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
sudo vim /boot/cmdline.txt
在文件的最前面添加usb-storage.quirks=152d:0578:u 152d:0578为你通过lsusb命令实际查询设备id号
usb-storage.quirks=152d:0578:u console=serial0,115200 console=tty1 root=PARTUUID=dc77c2e2-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
重启后可以从SSD正常启动了,可以放心折腾了。
起初以为树莓派ssd启动和windows进PE系统一样简单,草率google了下就以为是电源问题,买了两次供电设备都没效果,又尝试解决延迟usb供电的问题,原来那些文章都已经过时了,官方的文档和最新的论坛帖子才是正道,因此走了很多弯路,可能因为太冷门,对于硬盘无法启动树莓派的内容,国内几乎搜不到合适的文章,所以在这分享一下,看到的朋友不要在这浪费时间了。
总结:
如果电源灯间歇性闪烁,外接屏幕有闪电符号显示,启动的设备标注功耗超过1A,或使用普通硬盘或3.5英寸的硬盘,就需要使用外接硬盘供电。
官方电源说明
https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md
排除电源问题后系统还卡在启动画面或者系统检测时间很久,那可能是硬盘设备问题,可以使用上面的解决方案。
参考:
https://www.tomshardware.com/how-to/boot-raspberry-pi-4-usb
https://www.raspberrypi.org/forums/viewtopic.php?t=303260
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md
https://github.com/raspberrypi/firmware/issues/1515
https://www.raspberrypi.org/forums/viewtopic.php?t=245931
https://www.raspberrypi.org/forums/viewtopic.php?t=245348
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=304255
树莓派4b通过外接ssd硬盘启动系统失败的排查和解决的更多相关文章
- SSD硬盘安装系统后要做的事
1***cmd>fsutil behavior query DisableDeleteNotify 0如果返回值是0,则代表TRIM处于开启状态:反之如果返回值是1,则代表TRIM处于关闭状态2 ...
- linux系统故障分析与排查
在处理Linux系统出现的各种故障时,故障的症状是最先发现的,而导致这以故障的原因才是最终排除故障的关键.熟悉Linux系统的日志管理,了解常见故障的分析与解决办法,将有助于管理员快速定位故障点.“对 ...
- WinCE启动失败的原因与解决办法分析
本文通过一个真实的嵌入式项目进行说明.文中的嵌入式系统用的是ARM处理器+WinCE平台,项目的目的是要把WinCE平台从旧版本移植到WinCE6.0平台上.但结果是这个WinCE系统在启动的时候经常 ...
- 换SSD硬盘,重装系统,一阵子忙乱
许久没重装过系统了,低声下气地问老板要了一块SSD硬盘,不马上安装上手痒得难受,但年底这个时候重装系统绝对忙乱,差点耽误了一份申请表和一份培训记录表. SSD安装:先从网上找相关贴子,最主要的一个 ...
- [Mac] Mac book pro互换SSD硬盘、生产启动U菜、TimeMachine恢复 小记
Mac book pro 硬盘故障.互换SSD硬盘.启动U磁盘生产 小记 2012新年买Mbp了.尽管各种功能都能用,但常常频繁的出现鼠标风火轮,已经下好的电影在本地播放时都会隔个几分钟卡一下. 拿到 ...
- WinPE无法识别NVMe SSD硬盘,如何重装系统
(源自网络出处不详) 抽风,diy一台新机器,下载的win10系统安装时出现如题所示的问题,开始以为是主板的问题设置u盘启动也不行,后来在某个群里有人说是系统版本问题,无奈重新做了启动优盘(用的17年 ...
- 树莓派4B安装Raspbian系统及配置
2019/11/11, 树莓派4B, Raspbian Buster 摘要:给树莓派4B安装系统及基础配置 树莓派实验室参考文档 准备工具 树莓派4B硬件 SD卡格式化工具 SD Formatter ...
- Raspberry Pi:树莓派开发板配置USB启动系统
准备材料 树莓派4B U盘 TF卡 树莓派基础镜像2020-08-20稳定版(这个系统是必须的并拷录在TF卡) Kali树莓派系统(这个是我想要学习的系统,大家可以准备自己的系统,拷录在U盘的) SD ...
- 请详细描述(以硬盘启动)Linux系统从打开主机电源到进入登录界面整个过程的流程。
1. 开机进行BIOS(BIOS(Basic Input / Output System)自检测系统外围硬件设备如CPU.内存.IO.显卡.鼠标键盘等.根据BIOS中设置的系统启动顺序搜索用于启动系统 ...
随机推荐
- UVALive 7276 Wooden Signs
详细题目见:http://7xjob4.com1.z0.glb.clouddn.com/0f10204481da21e62f8c145939e5828e 思路:记dp[i][j]表示第i个木板尾部在j ...
- Atcoder ABC161 A~E
传送门 A - ABC Swap 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 ...
- 02、Scrapy 安装、目录结构及启动
1.从豆瓣源去快速安装Scrapy开发环境 C:\Users\licl11092>pip install -i https://pypi.douban.com/simple/ scrapy 2. ...
- spring再学习之简单测试
一.spring是怎么工作的那,通过一个类装载进容器进行描述: 首先创建一个类user: package cn.itcast.bean; public class User { public User ...
- docker的底层-隔离的核心
在了解底层原理之前: 说几个名词: 解耦状态: 所有东西都没有重复,任何东西都没有公用的地方. 半解耦状态:有部分共同的一起用,其他的独立 完全解耦状态: 就是各自都是独立没有重复. kvm:完全解耦 ...
- PHP 弱类型 && CODE/COMMADN injection
CODE/COMMAND INJECTION CODE INJECTION https://www.freebuf.com/sectool/168653.html EXAMPLE1 <?php ...
- leetcode5 最长回文字符串 动态规划 Manacher法
dp 注意没有声明S不空,处理一下 o(n^2) class Solution { public: string longestPalindrome(string s) { if (s.empty() ...
- 牛客网多校第7场 J Sudoku Subrectangles 【构造】
题目:戳这里 题意:给一个n*m的矩阵,里面由a~z及A~Z构成,问有多少个子矩阵满足任意一行或一列中都没有相同的字母. 解题思路:左上角和右下角两点可以确定一个矩阵.可以先预处理出来每个点作为一个矩 ...
- hdu5693D++游戏 区间DP-暴力递归
主要的收获是..如何优化你递推式里面不必要的决策 之前的代码 这个代码在HDU超时了,这就对了..这个复杂度爆炸.. 但是这个思路非常地耿直..那就是只需要暴力枚举删两个和删三个的情况,于是就非常耿直 ...
- MDN All In One
MDN All In One https://github.com/mdn/ https://wiki.mozilla.org/MDN MDN 要凉了 https://developer.mozill ...