回答:
著者が最初にこの質問をしてから約5年後、
Raspberry PiはUSB大容量ストレージデバイスからの起動を公式にサポートしています。
ただし、これはRaspberry Pi 3でのみサポートされています。その理由は次のとおりです。
MSDを使用してPi 1またはPi 2を起動できますか?
残念ながら違います。ブートコードはBCM2837デバイスのみに保存されるため、Pi 1、Pi 2、およびPi ZeroはすべてSDカードを必要とします。
本当の意味で、USBからRPiを直接起動することはできません。ただし、/ bootと何らかのブートマネージャーを含むミニディストリビューションの作成を阻止するものは何もありません。これにより、USBまたはPXEスタイルの環境からの起動を実装できます。これは小さなSDカードに収まる可能性があります-64MBのカードが今や小銭で利用できます。私は誰かがこのためにディストリビューションを展開することを期待しています-しかし、これまでにそれを見つけていません。
その間、独自のルートパーティションをハードディスクに移動して起動時間を短縮することもできますが、USBストレージをサポートするカーネルを取得する必要があるため、多少複雑になります。これを行う方法に関する適切な指示は、http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/で見つけることができます
SDから起動する必要がありますが、最初の起動後にUSB HDが「引き継ぐ」ことができます。SDカードなしでは起動できません。
確かに、カーネルが存在する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 ...
代わりに、作成の100%にウィンドウを使用しました。
(無料の) 'MiniTool Partition Manager'を使用し、ブートをパーティションマネージャーで自動的に拡張できる最小のSDカードに転送しました。を開き、cmdline.txt
に変更しroot=/dev/sda5
ます。
同じパーティションマネージャーを使用して、ext4をポータブル1TBにコピーします(FYIでは、最初にすべてのパーティションをドライブから削除して、転送前にパーティション化されていないスペースを確保します)。ヴァラ-起動。標準のHDDでは、ほとんどのSDカードと比較してR / W速度が非常に速いにもかかわらず、アクセス時間が少し不足していることに気付きました。
私が今抱えている唯一の問題は、ext4(ルート)パーティションを(元のSDカードの)元の32GBから拡張することです。したがって、現在1TBのうち32GBしかありません。うーん。私は端末とそのコマンドに慣れていないので、Linuxでのパーティション分割は少し面倒ですが、このガイドは非常に役立ちました。