是否有一種方法可以從通過USB端口連接到設備的外部硬盤驅動器啟動(而不是從SD卡啟動)?
是否有一種方法可以從通過USB端口連接到設備的外部硬盤驅動器啟動(而不是從SD卡啟動)?
按照真正的含義,不可能直接從USB啟動RPi。但是,沒有什麼可以阻止某人製作一個包含 / boot 和某種啟動管理器的迷你發行版的。然後,這可以實現從USB甚至PXE風格環境的啟動。這可能適合小型SD卡-現在便士可以使用64MB卡。我期望有人為此發布一個發行版-但到目前為止還沒有找到發行版。
與此同時,您可以將自己的根分區移動到硬盤上以加快啟動時間,但是有點麻煩,因為您需要獲得支持USB存儲的內核。有關如何執行此操作的良好說明,請參見: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/
您必須從SD引導,但是USB HD可以在初始引導後“接管”。沒有SD卡就無法啟動。
現在,距作者最初提出此問題已有近五年的時間,
Raspberry Pi正式支持從USB大容量存儲設備啟動。
但是,只有 Raspberry Pi 3 支持此功能。原因如下:
是否可以使用MSD引導Pi 1或Pi 2?
不幸的是沒有。引導代碼僅存儲在BCM2837設備中,因此Pi 1,Pi 2和Pi Zero都將需要SD卡。
實際上,如果您可以僅將內核駐留在SD MS-DOS分區(/ boot)中,則可以在外部設備上具有/ root以及其他所有內容。 USB存儲卡或物理硬盤驅動器也可以作為輔助驅動器。好處是,除非您“ dd”到錯誤的位置,否則這是一個非破壞性的過程:一次編輯並返回到原始位置,
設置此配置非常容易。您可以像往常一樣配置安裝,然後將EXT4分區移動/複製到外部驅動器。
使用' fdisk
'分區所選的輔助驅動器,創建一個與當前mmcblk0p2(或mmcblk0p5)大小相同或更大的分區。保存新配置。
查找分區名稱,在此示例中為“ / dev / sda5”,但是此分區將取決於您的配置。
複製正在運行的分區(注意:建議不要復制正在運行的分區,某些文件處於“不穩定”或打開狀態,但是可以正常工作):
dd if = / dev / mmablk0p2 of = / dev / sda5 bs = 10M
現在,在/boot/cmdline.txt文件中編輯以下行並修改'root'位置:
dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 lift = deadline rootwait
To
dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 console = tty1 root = / dev / sda5 rootfstype = ext4 lift = deadline rootwait
請注意,引導分區是MS-DOS,因此,如果必須修復,可以將SD掛載到其他位置並進行編輯。如果引導失敗,則加載程序將在(HDMI)屏幕上顯示可用的安裝點。
此設置取決於安裝順序。如果設備安裝在另一個插槽上,則分區號可能會更改;您可以按如下所示使該位置獨立。
找到設備'UUID'
blkid / dev / sda5 / dev / sda5:UUID =“ 13d368bf-6dbf- 4751-8ba1-88bed06bef77“ TYPE =” ext4“
或創建一個新的
tune2fs -U隨機/ 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,刪除舊的/ mmcblk0p2note:這是一個文件,在“新” / root設備上
替換/ dev / mmcblk0p%(%是Linux分區)
nano / etc / fstabUUID = 25b6aa72-ddc4-485e-8044-900ac24d662b。 ..
在樹莓派中,只需將 /boot/cmdline.txt
中的 root
標誌更改為 root = / dev / sdaX
,其中 X
是相應分區的編號。
有關如何在USB上獲取raspbian的詳細信息,請參見 http://blog.krastanov.org/ 2014/01/30 / boot-pi-relially-from-usb /
我改用Windows進行了100%的創建。
我使用了(免費的)“ MiniTool分區管理器”,並將引導轉移到了最小的SD卡上,該卡可以通過擴展自動擴展分區管理器。打開 cmdline.txt
並更改為 root = / dev / sda5
。
相同的分區管理器讓我將ext4複製到我的便攜式1TB(FYI請先從驅動器中刪除所有分區,以便在傳輸之前有未分區的空間)。瓦拉-啟動。我注意到,與大多數SD卡相比,標準HDD的讀寫速度有些欠缺,儘管它們的讀寫速度非常快。
我現在遇到的唯一問題是從原始SD卡的原始32GB擴展ext4(根)分區。所以我目前只有1TB的32GB。嗯我只是終端機及其命令的新手,因此在linux中進行分區有點麻煩,但是本指南非常有效。