USBハードディスクから起動しますか?


回答:


8

著者が最初にこの質問をしてから約5年後、
Raspberry PiはUSB大容量ストレージデバイスからの起動を公式にサポートしています

ただし、これはRaspberry Pi 3でのみサポートされています。その理由は次のとおりです。

MSDを使用してPi 1またはPi 2を起動できますか?

残念ながら違います。ブートコードはBCM2837デバイスのみに保存されるため、Pi 1、Pi 2、およびPi ZeroはすべてSDカードを必要とします。


28

本当の意味で、USBからRPiを直接起動することはできません。ただし、/ bootと何らかのブートマネージャーを含むミニディストリビューションの作成を阻止するものは何もありません。これにより、USBまたはPXEスタイルの環境からの起動を実装できます。これは小さなSDカードに収まる可能性があります-64MBのカードが今や小銭で利用できます。私は誰かがこのためにディストリビューションを展開することを期待しています-しかし、これまでにそれを見つけていません。

その間、独自のルートパーティションをハードディスクに移動して起動時間を短縮することもできますが、USBストレージをサポートするカーネルを取得する必要があるため、多少複雑になります。これを行う方法に関する適切な指示は、http//mitchtech.net/raspberry-pi-root-fs-on-usb-drive/で見つけることができます


3
これはいい考えです。
-Jivings

更新:USBから直接起動する実験的なサポートがあります。初期設定後にSDカードは必要ありません。
Hydraxan14


5

確かに、カーネルが存在するSD MS-DOSパーティション(/ boot)だけで生きていれば、/ rootとその他すべてを外部デバイスに置くことができます。USBメモリカードまたは物理ハードドライブは、セカンダリドライブとして問題ありません。良いことは、間違った場所に「dd」しない限り、これは非破壊的な手順であるということです:1回の編集で元に戻り、

この構成のセットアップは非常に簡単です。通常どおりインストールを設定し、EXT4パーティションを外部ドライブに移動/コピーします。

fdisk選択したセカンダリドライブのパーティション' ' を使用して、現在のmmcblk0p2(またはmmcblk0p5)と同じかそれより大きいサイズのパーティションを作成します。新しい構成を保存します。

パーティション名を見つけます。このサンプルでは「/ dev / sda5」ですが、このパーティションは設定によって異なります。

実行中のパーティションをコピーします(注:実行中のパーティションをコピーすることはお勧めできません。一部のファイルは「不安定」またはオープン状態ですが、正常に動作します)。

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

ここで、/ boot / cmdline.txtファイルの次の行を編集し、「ルート」の場所を変更します。

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 ...

2

raspbianにおいて、ちょうど変更rootにフラグを/boot/cmdline.txtするroot=/dev/sdaX場合X、適切なパーティションの数です。

USBなどでraspbianを取得する方法の詳細については、http: //blog.krastanov.org/2014/01/30/booting-pi-reliably-from-usb/で確認できます。


1

代わりに、作成の100%にウィンドウを使用しました。

(無料の) 'MiniTool Partition Manager'を使用し、ブートをパーティションマネージャーで自動的に拡張できる最小のSDカードに転送しました。を開き、cmdline.txtに変更しroot=/dev/sda5ます。

同じパーティションマネージャーを使用して、ext4をポータブル1TBにコピーします(FYIでは、最初にすべてのパーティションをドライブから削除して、転送前にパーティション化されていないスペースを確保します)。ヴァラ-起動。標準のHDDでは、ほとんどのSDカードと比較してR / W速度が非常に速いにもかかわらず、アクセス時間が少し不足していることに気付きました。

私が今抱えている唯一の問題は、ext4(ルート)パーティションを(元のSDカードの)元の32GBから拡張することです。したがって、現在1TBのうち32GBしかありません。うーん。私は端末とそのコマンドに慣れていないので、Linuxでのパーティション分割は少し面倒ですが、このガイドは非常に役立ちました。


ごめんなさい、どんなガイド?
ベックス

申し訳ありませんが、このフォーラム。
デイブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.