Raspberry Piでプロジェクトを実行していて、ルートパーティションをサムドライブに存在させようとしています。実際には、複数のサムドライブ。したがって、ある作業スペースから別の作業スペースに移動するために必要なのは、新しいUSBを接続して再起動することだけです。
しかし、これは実際にはブートパーティションがめったに変更されない場合にのみ機能し、OSの起動方法よりもルートパーティションについて多くを知りません。
これは機能しますか?ブートパーティションは、すべての人が簡単に同じに保つことができるルートのいくつかの単純な部分だけを気にしますか、それとも2つが一緒に進化して絡み合うようになりますか?
私はRaspianを実行しており、ルートシステムの複数のバージョンをすべて同じブートで(一度に1つずつ)使用する予定です。
はい、私の知る限り、これは完全に可能です!
何をしたいと、USBスティックにかけルートパーティションをコピーして変更することである
/etc/fstab
と/boot/cmdline.txt
、それは外付けドライブの代わりにSDカード上の第二のパーティションからブートにします。
チュートリアルが見つかったが、残念ながら英語ではないので、私自身の言葉で手順を説明しようと思います。
USBスティックを唯一の外付けドライブとしてPiを再起動します(この方法では、後でUSBスティックを交換する場合、一意のドライブIDを使用できないため、起動ごとに異なるドライブ番号を使用することはありません)。
を介してドライブ番号を取得しsudo blkid
ます。次のように見えるものが1つだけあるはずです/dev/sda1
。
コマンドmount
を使用すると、自動的にマウントされているかどうかを確認できます。リストされていない場合は、次の手順に進みます。そうである場合は、sudo umount /dev/sda1
(同じでない場合は異なる番号を修正して)実行してUSBスティックをアンマウントします。
次に、Debianルートパーティション用の正しいファイルシステムを持つようにUSBスティックをフォーマットしますext4
。これはできればです。これを行うには、次のコマンドを実行しますsudo mkfs.ext4 /dev/sda1
。
この後、一時的な場所にUSBスティックを(再)マウントして、SDカードからルートパーティションにコピーする必要があります。これを実行するには、次のコマンドを実行しますsudo mount /dev/sda1 /mnt
。(コマンドが/mnt
存在しないことについて文句を言う場合は、:sudo mkdir /mnt
を実行してその名前のフォルダーを作成し、再試行してください。
次に、:を使用して最上位ディレクトリに切り替えcd /
、次に次のtarコマンドを実行して、ルートパーティションからすべてのデータをコピーしますsudo tar cf - * --exclude /mnt/* | ( cd /mnt; sudo tar xfp -)
。これはおそらく最もコンパクトなソリューションではありませんが、私にとってはうまくいきました。SDカードとUSBドライブの速度によっては、時間がかかる場合がありますのでご注意ください。
次に、を/etc/fstab
実行して起動時にマウントされるドライブを含むを変更する必要がありますsudo nano /mnt/etc/fstab
。(追加し/mnt
たので、これはUSBスティック上にあることに注意してください。)対応する行を次のように変更する必要があります。
/dev/mmcblk0p1 /boot vfat defaults 0 0
/dev/sda1 / ext4 defaults,noatime 0 0
最後に、SDカードのブートパーティションに、代わりにUSBドライブからブートするように指示する必要があります。ただし、最初に、次のコマンドを実行して、切り替えをコミットする前に、変更するファイルのバックアップを作成することをお勧めしますsudo cp /boot/cmdline.txt /boot/cmdline.txt.save
。
SDカードの最初のパーティションのブートパラメータを変更sudo nano /boot/cmdline.txt
するnano
ために実行します。基本的に、ルートパーティションのエントリをUSBドライブに変更する必要があります。チュートリアルでは、これをそこに入力するように提供しています(1行)。
dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 noatime quiet rootwait loglevel=1 zram.num_devices=2
保存して終了するnano
と、次回の再起動時にRaspberry PiがUSBスティックから起動するはずですが、すでに述べたように、もちろんSDカードは必要です。
USBドライブが起動時に(SDカードを除く)唯一のドライブである限り、これは機能するはずです。あなたはそれをいくらか動的にする必要があり、私はを使用する以外にドライブを参照する他の方法を見ません/dev/diskX
。
編集:完了後にUSBドライブを複製するか、他のドライブへの他のインストールで同じ手順を実行する必要があることを忘れました。インストールされているパッケージを含むRaspianバージョンがすべて同じである場合、これが機能しない理由はわかりません。
/boot
パーティションは、かなり基本的であると私は9に言及したラインは基本的にすべてのそれがないです。正しいファイルシステムを備えた正しいパーティションに渡す必要があるだけで、機能するはずです。
これがお役に立てば幸いです。
ドイツ語を話す人々のために、私はここにソースリンクを残します:ソース。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加