Piをサーバとして利用すると24時間動かす事になりますが、それにSDカードを利用するのは精神衛生上よろしくない。PiをUSBデバイス(HDDやSSD)で起動できるようにする方法。PiをUSBで起動まず最初に、この方法で起動する場合はSDカードが必要です、もちろんUSBデバイスも必要。(USBから先は何でもいいです、フラッシュメモリでもいいし、HDDでもいいし、SSDでもいい)「SDカードを使用しない方法」もありますが、USB-HDDを使用する際にスピンアップが間に合わず起動できない......という事があります。この記事で紹介する方法はSDカードこそ必要になりますが、安定性や成功率は高いです。用途に合わせてどちらが適しているか決めましょう。4Bでは利用できないので、4BでUSBから起動させたければこの記事で紹介する方法しか使えません)ちなみに、この際に使用するSDカードは非常に小さい容量で構いません。128MBとかでも足ります。必要であれば、作業の前にUSBデバイスのパーティションを分割します。この辺りは個人の好みに合わせて設定して下さい。例としてUSB-HDD(/dev/sda)の全体を使用する場合。100%pqパーティション構成はどんな風にしても構いません。Windowsとデータを共有する時用にNTFSのパーティションを作成するとか。(/はext4にしておく方が無難です)当然ながらに既存パーティションを消すとデータが消えるのでその事をお忘れなく。(rsync)/の内容をUSBにコピーします。rsyncでコピーする方法とddでコピーする方法があります。rsyncを使用すれば必要なファイルだけをコピーするのでddより早く、ディスクの調整も必要なくなります。(その代わり、特殊なファイルや拡張ファイル属性などの事を考慮する必要があります。確実性重視の方は後述のddでコピーする方法をお勧めします)まず、使うパーティションをフォーマットしてマウントします。/mnt後は/から全データをコピーするだけ。(dd)rsyncでコピーした方はこの項目はスキップ。filesystemRaspbianのimgをSDカードに書き込んでインストールした場合は/dev/mmcblk0p2がデータを保存しているパーティションになっているはずです。(NOOBSを使用してインストールした場合は他のパーティションになっている可能性もあるので要注意)これを、ddを使用して先ほど作成したUSB上のパーティションにコピーします。今回の例であれば/dev/sda1です。パーティションの切り分け方や接続しているデバイスによってはsda2やsdb3など他の値の可能性もあるので要注意。以下は/dev/mmcblk0p2から/dev/sda1にddする例。status=progressここでifやofの指定を間違えるとSDカードやUSBのデータが吹っ飛ぶので全神経を研ぎ澄まして実行して下さい。ifのiはInput(入力)のi、ofのoはOutput(出力)のoですよ。当然ですが、実行するとパーティション(今回の場合は/dev/sda1)のデータはすべて消えるので、可愛い彼女(そんなものは居ない)の大切な大切な大切な誕生日写真などがある場合は退避させておきましょうね。処理が完了すると以下のように表示されます。MB/秒ddを使用してコピーした場合はファイルシステムのチェックとリサイズが必要になります。e2fsckでファイルシステムをチェックしましょう。<対象のパーティション>」のようにに使用します。実行すると途中で「Fix<y>?」と尋ねられます。blocksこのままでは単にUSBにパーティションをコピーしただけです。パーティションの容量もSDカードと同じままです。resize2fsでパーティションを拡張しましょう。long.これでUSBの準備が完了。要するに「ddでコピーして」「e2fsckして」「resize2fsする」ということ。今のままではルートディレクトリにSDカードを使用する設定になったままなので、これを変更しておかないと起動できなくなります。PARTUUIDを確認しましょう。/dev/disk/by-partuuid/で確認できます。このPARTUUIDは後から必要になるのでメモしておきましょう。../../sda1次に、USBを適当な場所にマウントしましょう。例として/dev/sda1を/mntにマウントする場合。/mntでもって、USB上の/etc/fstabを開きます。今回は/mntにマウントしたので/mnt/etc/fstabですね。thatルートディレクトリ(/)のPARTUUIDを先ほど確認したPARTUUIDに書き換えます。今回の例であれば、PARTUUID=24e66acb-02をPARTUUID=52a973b2-092f-4ac0-9086-ee7f9cd69795に変更する、という事。SDカードを他の物に変更する場合は/bootのPARTUUIDが予測できなくなるので、/dev/mmcblk0p1で指定します。1(もちろん、今刺しているSDカードをそのまま使用する場合は/bootの方は編集しなくてもOKです)これでPi側での作業は終わりです、シャットダウンしましょう。(必要に応じて)ブートローダーのためだけに容量の大きなSDカードを使うのはもったいない......という人は適当なSDカードにブートローダーをコピーしましょう。PiのSDカードのbootパーティションに入っていたファイルをコピーするだけです。今使っているSDカードをそのまま使用してもOK。cmdline.txtを編集ブートローダーの入ったSDカードをPCに接続して、cmdline.txtを編集します。メモ帳(notepad.exe)で編集して構いません。Pi上から直接/boot/cmdline.txtを編集してもOK)ファイル内にSDカードのPARTUUIDを指定している部分があるので、それをUSBのPARTUUIDに書き換えます。これで出来上がりです。ブートローダーの入ったSDカードとUSBデバイスを接続して起動してみて下さい。起動してみるあとは電源を入れて祈るだけ。動くなら動くし、動かないなら動かない。初回起動時にディスクのチェックが走る事があるので、もし何かディスクを読み書きしている様子であればしばらく待ってみましょう。起動出来ない場合はディスプレイを接続すると起動処理の際にエラーが出てくれるはずなので原因の特定を。手順が複雑なので、慣れるまでは難しいかも......USBデバイスに相性があるUSB-HDDとかで多いみたいですが、USBデバイス(変換アダプタやHDDケース)との相性問題が起きることがあります。最初から認識しておらず起動しないなら分りやすいのでまだマシ。場合によっては数日ほど付けっぱなしにしているといきなりアクセス出来なくなる物もあります。USB-HDDとかだと省電力のためにスリープする機能があったりするので、この手の問題は起きやすいかも。上手く動かない時は相性問題も疑ってみましょう。(この記事で紹介した方法)」と「USBだけで起動させる方法」の2種類があります。それとは別に、実はその中間のような「ブートローダーにSDカードを使用するが、カーネルとルートディレクトリはUSBを使用する方法」もあります。これら3つの方法は「どの段階からUSBを使用するのか?」という事の違いになるのですが、基本的には前者の2つが選択肢になるので「ブートローダーにSDカード、カーネルとルートディレクトリはUSB」の方法は覚えなくても良いと思います。覚える必要はないでしょうが、違いを理解しておく方が良いと思うので念のため説明。SDカードでカーネル起動、ルートにUSB今回この記事で紹介した方法です。SDカード上のブートローダーを読み込み、次にSDカード上のカーネルをロード、ルートディレクトリにはUSBを使用する方法です。そのため、ブートローダー(/boot/bootcode.bin)とカーネル(/boot)にはSDカードを使用します。ルートディレクトリ(/)だけがUSBになります。/はUSBになりますが、/bootは依然としてSDカードが使用されます。SDカードが必要です。Piの種類問わず使えます。PiをUSB(HDD)だけで動かす(SD不要)」で解説している方法。最初からUSBを使用してブートローダーを読み込み、カーネルもUSBの物を使用し、ルートディレクトリにもそのままUSBを使用する方法です。ブートローダー(/boot/bootcode.bin)、カーネル(/boot)、ルートディレクトリ(/)のすべてでUSBを使用しています。SDカードは不要です。最初からUSBを使用する関係から、ハードウェア側の対応が必要になります。v1.2、3A+、3B、3B+)が必要になります。4Bはブートの仕組みが変更された関係から、2020/02/05の時点ではこの方法は使えません。実装予定はアリ)SDカードでブート、カーネルとルートはUSB前者2つの方法の中間。ブートローダーはSDカードから読み込みますが、カーネルはUSBの物を使用、ルートディレクトリにも続けてUSBを使用する方法です。そのため、ブートローダー(bootcode.bin)にはSDカードを使用しますが、カーネル(/boot)とルートディレクトリ(/)にはUSBを使用します。(ちなみに、その状態で起動したOSから見た/boot/bootcode.binはUSB上のもので、これは利用されていません。マウントされていない/dev/mmcblk0p1に入っているbootcode.binが使用されています。)なので、SDカードが必要です。Pi4以前であれば使える方法です。Pi4はそもそもbootcode.binを使用していないので使えません。この方法でブートさせるメリットはほとんどないので、個人的にはあまり使わない方法かなと。Ryzenを非OCで使用する場合のメモリクロックの話。16.04でMariaDBをインストールするとパスワードが変ナカのヒト:HimaJyun​散って美しいのは桜だけです、情報はまとまっていた方が美しいのです。