私は公的機関のためのプロジェクトを開発しようとしています。つまり、Raspberry Pi
コンピュータを買う余裕のない家族にコンピュータを提供するのです。Raspbian
オペレーティングシステムといくつかの便利なソフトウェアがすでにインストールされているSDカードが付属しています。
つまり、一部のプロバイダに私たちのために作成してもらう必要があります。たとえば、500枚のSDカードと私たちが提供するスクリプト:インストールRaspbian
バージョンXYZそれからapt-get install ...
しかし、セキュリティの問題があります。プロバイダが悪意のない、SDカードに表示されたくない他のソフトウェアを追加しようとしないことを確認するにはどうすればよいですか?
SDカードをランダムに取り出して差し込んだ場合、Rasperry Pi
良い命令を使用してSDカードが期待どおりに作成されたことを確認する方法はありますか?
ベストアンサー1
誰かがあなたの代わりにオペレーティングシステムをどのように設定したかを確認する方法はありません。物を隠すことはいつでも可能です。ベンダーが悪意のある行動を起こす危険がある場合、唯一の選択肢は次のとおりです。
- より信頼できるサプライヤーと協力
- どのイメージをインストールする必要があるかをバイト単位で知っていることを確認してください。プロバイダにスクリプトだけでなく、正確な画像を送信すると機能します。
各パーティションのsha256sum(ハッシュ値)を画像に書き込んだ後、SDカードと比較できます。プラグを差し込んで電源を入れる前に。理論的にはパーティションを追加できますが、これは簡単に見つけることができます。
イメージハッシュが利用できない理由は、SDカードが予想より1バイト大きいか小さい場合はハッシュが無効なためです。 SDカードのサイズは、指定されたサイズを持っていると主張するカードによって異なります。
パーティションハッシュを記録するには
この手順はすべてのLinuxシステムで実行できます。 SD容量が十分に大きいRaspberry Piを使用できます(少なくとも16GBを推奨)。
使用したい画像をダウンロードしてください。例: 最新ラズベリーパイ画像:
wget --content-disposition https://downloads.raspberrypi.org/raspbian_full_latest unzip *raspbian-stretch-full.zip
ls -lh *raspbian* -rw-r--r-- 1 philip philip 5.1G Apr 8 19:43 2019-04-08-raspbian-stretch-full.img -rw-r----- 1 philip philip 2.0G Apr 8 19:48 2019-04-08-raspbian-stretch-full.zip
カスタム画像。
- ループバックデバイスの設定
sudo losetup /dev/loop0 2019-04-08-raspbian-stretch-full.img sudo partprobe /dev/loop0
ls -lh /dev/loop0* brw-rw---- 1 root disk 7, 0 May 15 19:18 /dev/loop0 brw-rw---- 1 root disk 259, 0 May 15 19:18 /dev/loop0p1 brw-rw---- 1 root disk 259, 1 May 15 19:18 /dev/loop0p2
- 各パーティションのsha256sumを取得します(少し時間がかかります!)。ファイルとして保存してください。
sudo sha256sum /dev/loop0p* 66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4 /dev/loop0p1 1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8 /dev/loop0p2
- 掃除する
sudo partx -d /dev/loop0 sudo losetup -d /dev/loop0
ハッシュ値の確認
実行中のLinuxシステムにカードを挿入します。ラズベリーファイを使用したい場合は、USB SDカードリーダーを利用して確認したいカードを2枚目のカードに挿入すればよい。
/dev/sda
カードは、または/dev/sdb
...などの新しいドライブとして表示されます。
次のように読み取ると仮定すると、/dev/sda
各パーティションのハッシュを取得できます。
ls -lh /dev/sd*
brw-rw---- 1 root disk 8, 16 May 9 12:23 /dev/sda
brw-rw---- 1 root disk 8, 17 May 9 12:23 /dev/sda1
brw-rw---- 1 root disk 8, 18 May 9 12:23 /dev/sda2
sudo sha256sum /dev/sda1 /dev/sda2
66aa77d8405ab585865d0e0378f06bd8baa5ab41bbb6e9cc23ac6b2be40974d4 /dev/sda1
1895a2c5d9e93eb3b644d8cacab9d928184290e30bba6d27b7eb9d486c30e5e8 /dev/sda2
カスタム画像
この手順はLinuxシステムでは実行されず、Raspberry PiなどのARMプロセッサが必要です。
以前に作成されたループバックパーティション(
/dev/loop0p2
)をマウントします。オペレーティングシステムは起動p2
設定にインストールされますp1
。mkdir rpi-os sudo mount /dev/loop0p2 rpi-os
df -h foo Filesystem Size Used Avail Use% Mounted on /dev/loop0p2 4.9G 4.4G 202M 96% /home/philip/rpi-os
- chrootマウントされたファイルシステムを入力してください。
sudo chroot rpi-os
- 必要なソフトウェアをインストールし、必要に応じて変更してください。たとえば、
apt-get update apt-get install some-new-package
- シャットダウンと削除
df -h rpi-os Filesystem Size Used Avail Use% Mounted on /dev/loop0p2 4.9G 4.5G 149M 97% /home/philip/rpi-os
exit sudo umount rpi-os