有没有办法从通过USB端口连接到设备的外部硬盘驱动器引导(而不是从SD卡引导)?

评论

这只是实际教程的链接,因此我将其保留为评论:blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb

#1 楼

现在,在作者最初提出这个问题后近五年后,Raspberry Pi正式支持从USB大容量存储设备启动。

但是,只有Raspberry Pi 3支持此功能。原因如下:


是否可以使用MSD引导Pi 1或Pi 2?


不幸的是没有。引导代码仅存储在BCM2837设备中,
,因此Pi 1,Pi 2和Pi Zero都将需要SD卡。



#2 楼

从真正的意义上讲,不可能直接从USB启动RPi。但是,没有什么可以阻止某人制作包含/ boot和某种启动管理器的迷你发行版的。然后,这可以实现从USB甚至PXE风格环境的启动。这可能适合微型SD卡-现在便士可以使用64MB卡。我期望有人为此发布一个发行版-但到目前为止还没有找到发行版。

同时,您可以将自己的根分区移动到硬盘上以加快启动时间,但是它有点涉及,因为您需要获得一个支持USB存储的内核。有关如何执行此操作的良好说明,请访问:http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/

评论


这是一个好主意。

–活动
2012年6月27日9:04

更新:现在有实验性支持直接引导到USB。初始设置后无需sdcard。

–Hydraxan14
17年1月17日在22:27

#3 楼

在Raspberry Pi常见问题解答中:


您必须从SD引导,但是USB HD可以在初始引导后“接管”。没有SD卡就无法启动。


评论


这是否意味着在硬盘接管之后就不再需要存储卡了?

– Suhaib
13年5月12日在22:02

#4 楼

确实,如果您可以仅使用内核所在的SD MS-DOS分区(/ boot),则可以在外部设备上具有/ root以及其他所有内容。 USB存储卡或物理硬盘驱动器也可以用作辅助驱动器。好消息是,除非您将dd'dd'定位到错误的位置,否则这是非破坏性的过程:只需进行一次编辑即可返回到原始位置,

设置此配置非常容易。您可以像往常一样配置安装,然后将EXT4分区移动/复制到外部驱动器。

使用'fdisk'对所选的辅助驱动器进行分区,创建一个与当前mmcblk0p2(或mmcblk0p5)大小相同或更大的分区。保存新配置。

查找分区名称,在此示例中为“ / dev / sda5”,但是此分区将取决于您的配置。

复制正在运行的分区(注意:建议不要复制正在运行的分区,某些文件处于“不稳定”或打开状态,但是可以正常工作):

dd if=/dev/mmcblk0p2 of=/dev/sda5 bs=10M


现在,在/boot/cmdline.txt文件中编辑以下行并修改'root'位置:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait


到此新行。

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda5 rootfstype=ext4 elevator=deadline rootwait


请注意,引导分区是MS-DOS,因此,如果需要修复,可以将SD挂载在其他位置并进行编辑。如果引导失败,则加载程序将在(HDMI)屏幕上显示可用的安装点。

此设置取决于安装顺序。如果设备安装在另一个插槽上,则分区号可能会更改;您可以按如下所示使该位置独立。

找到设备'UUID'

blkid /dev/sda5
/dev/sda5: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"


或创建一个新的

tune2fs -U random /dev/sda5


并获取新分配的名称

blkid /dev/sda5
/dev/sda5: UUID="25b6aa72-ddc4-485e-8044-900ac24d662b" TYPE="ext4"


,然后编辑先前修改的cmdline.txt,将根位置更改为:

root=UUID=25b6aa72-ddc4-485e-8044-900ac24d662b


引导新配置后,编辑fstab,删除旧的/ mmcblk0p2
注意:这是一个文件,将位于“新” / root设备上
替换/ dev / mmcblk0p%(%为linux分区)

nano /etc/fstab
UUID=25b6aa72-ddc4-485e-8044-900ac24d662b ...


#5 楼

在raspbian中,只需将root中的/boot/cmdline.txt标志更改为root=/dev/sdaX,其中X是相应分区的编号。

有关如何在USB上获取raspbian的详细信息,等等,您可以在此处查看http:/ /blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb/

#6 楼

相反,我使用Windows进行了100%的创建。

我使用了(免费的)“ MiniTool分区管理器”,并将引导转移到了我最小的SD卡中,可以使用分区管理器自动对其进行扩展。打开cmdline.txt并更改为root=/dev/sda5。相同的分区管理器让我将ext4复制到我的便携式1TB(FYI首先从驱动器中删除所有分区,以便在传输前具有未分区的空间)。瓦拉-启动。我注意到,与大多数SD卡相比,标准HDD的读写速度有些欠缺,尽管它们的读写速度非常快。

我现在遇到的唯一问题是从原始SD卡的原始32GB扩展ext4(根)分区。所以我目前只有1TB的32GB。嗯我只是终端机及其命令的新手,因此在linux中进行分区有点麻烦,但是本指南非常有效。

评论


抱歉,什么指南?

– Bex
16年5月23日在6:54

抱歉,这个论坛。

–戴夫
16年6月14日在11:58