/ 投稿者:

Raspberry Pi SDカードに関するノウハウ集

Raspberry Pi 運用・管理
Raspberry Pi microSDカードの管理
 
 
 
 

 

スポンサー リンク

 

 
 
 
1. SDカードの容量と相性
 
 
1-1. Raspberry Pi SDカードの容量
 
microSDカード:8GB程度、あるいはそれ以上の容量のSDカードを使用する。
Raspberry Pi SDカードに関するノウハウ一覧
8GB:電子工作を行うには十分なサイズ。
16GB:音楽ファイルや動画などを扱わない限り、十分。「頻繁に同じところが書き換えられる」と、寿命が短くなることを考慮し、このサイズが良い。
32GB:当サイトのWebサーバーに使用しているが、33%しか使用していない。
 
64GB:
当サイトの【32GB】の使用率が 46% になったので、
Transcend microSDXC【64GB】に交換。
使用率が 23% になり、問題なく稼働中。
 
容量の大きい音楽ファイルや動画などを扱う場合は、USB接続の外部装置を使用すればよい。

※:microSDカードは、標記が同じサイズの SDカード でも、製品によっては実効サイズが異なり、 バックアップした img ファイルがリストアできないことがあるので、同じメーカーの同じ品番のものを複数枚用意しておくとよい。
  
 
 
1-2. MicroSDカードの種類 と Raspberry Pi との相性
 
SDカードと Raspberry Pi には相性があるようで、どれでも動作するわけではない。
 
こちらに動作の検証結果が掲載されているので参照されたい。
RPi SD cards
 
 
 
2. Raspbianイメージの書込み
 
 
2-1. 「Raspberry Pi Imager」で OS を microSDカードに書き込む
 
Raspberry Pi Imagerを実行し、「デバイスを選択」をクリックする。
Raspberry Pi Imagerを実行し、「デバイスを選択」をクリックする
 
Raspberry Pi のモデルを選択する。
Raspberry Pi のモデルを選択する
 
「OSを選択」をクリックして、下にスクロールし「Use custom」を選ぶ。
「OSを選択」をクリックして、下にスクロールし「Use custom」を選ぶ。
 
「イメージを選ぶ」画面が表示されるので、ダウンロードした「Parrot-security-6.0_rpi.img.xz」ファイルを開く。
「イメージを選ぶ」画面が表示されるので、ダウンロードした「Parrot-security-6.0_rpi.img.xz」ファイルを開く
 
ここでは、「img.xz」型式のファイルをそのまま指定することができる。
 
続けて「ストレージを選択」をクリックし、書き込み対象のSDカードデバイスを指定して「次へ」をクリックする。
続けて「ストレージを選択」をクリックし、書き込み対象のSDカードデバイスを指定して「次へ」をクリックする
 
OSの設定変更ができるので、「設定を編集する」ボタンをクリックする。
OSの設定変更ができるので、「設定を編集する」ボタンをクリックする
 
設定を変更しない場合は、user:pi で password:parrot でインストールされる。
 
一般タブで、「ホスト名」、「ユーザー名とパスワード」、「ロケール」を設定する。
一般タブで、「ホスト名」、「ユーザー名とパスワード」、「ロケール」を設定する
 
サービスタブで「SSHを有効化」して、「保存」をクリックする。
サービスタブで「SSHを有効化」して、「保存」をクリックする
 
「はい」をクリックする。
「はい」をクリックする
 
SDカードへの書き込みが始まる。
SDカードへの書き込みが始まる
 
SDカードへの書き込みが完了する。
SDカードへの書き込みが完了する
 
 
 
2-2. SDカードのフォーマット要領
 
SD Associationが提供する、SDFormatter でフォーマットする。
SDFormatterを起動し、『オプション設定』をクリックする。
SDFormatterを起動し、『オプション設定』をクリックする

消去設定を『上書きフォーマット』論理サイズ調整を『ON』にしてフォーマットする。
消去設定を『上書きフォーマット』論理サイズ調整を『ON』にしてフォーマットする2回目以降のフォーマットは、
消去設定を、
『イレースフォーマット』
論理サイズ調整を、
『OFF』
で良い。
 
 
 
2-3. 「Win32 Disk Imager」で OS を microSDカードに書き込む
 
Raspberry Pi の OS である『 Raspbian 』を公式サイトからダウンロードし、「Win32 Disk Imager」を使って、イメージファイルをSDカードに書き込む。
 
「Win32 Disk Imager」を使って、イメージファイルをSDカードに書き込む
 
ダウンロードサイトから『 Raspbian 』を選択する。
ダウンロードサイトから『 Raspbian 』を選択する
 
ZIP形式で、ダウンロード。(結構時間がかかる。)
ZIP形式で、ダウンロード
 
ダウンロードしたイメージファイルを、Win32 Disk Imager で書き込む。
ダウンロードしたイメージファイルを、Win32 Disk Imager で書き込む
 
 
  
3. SDカードのバックアップとリストア
 
Raspbian SDカードをコピーしてバックアップを取ったり、Raspberry Pi のクローンSDカードを作成する方法。
 
 
3-1. SD Card Copier によるクローンの作成
 
Raspberry Pi のデスクトップ環境(X-Window)が使える場合は、「SD Card Copier」が便利。SDカードの容量に関係なくより大きな SD カードにコピーすることも、逆に、小さな SD カードにコピーすることも出来る。(大きな SD カードにコピーした場合、コピーした SD カードで起動すると、自動的に容量が拡張される。)
 
「アクセサリ」にある「SD Card Copier」を起動する。
「アクセサリ」にある「SD Card Copier」を起動する
 
Copy From Device(コピー元)に【/dev/mmcblk0】を選択し、Copy To Device(コピー先)に【/dev/sda】を選択して、且つ、「New Partition UUIDs」にチェックを入れて「Start」をクリックする。(下記例は、コピー先がSSDの場合。)
Copy From Device(コピー元)に【microSDカード】を選択し、Copy To Device(コピー先)に【SSD】を選択して、且つ、「New Partition UUIDs」にチェックを入れて「Start」をクリックする
 
確認メッセージに【コピー先名】が表示されるので、「Yes」をクリックする。
確認メッセージに【SSD名】が表示されるので、「Yes」をクリックする
 
「Copy complete.」が表示されて完了。「OK」をクリックして、SD Card Copierを終了する。
「Copy complete.」が表示されて完了。「OK」をクリックして、SD Card Copierを終了する。
 
 
SD Card Copier 使用上の「重要事項」
 
厳重注意
SD Card Copier で クローンを作成すると、NetworkManager の secret_key がそのままコピーされる。
 
この結果、IPv6リンクローカルアドレスが「コピ-元」と同じになる。
同一 fe80 アドレスの機器がローカルネットワーク内に存在すると、avahi-daemon が互いをコンフリクトと検知し、異常動作を起こす。
 

 avahi-daemon とは
 LAN内での機器自動発見(hostname.local でアクセスできる機能)を提供するサービスです。 Raspberry Pi では標準で動いていますが、Webサーバー用途では通常不要です。

 

 secret_key(シークレットキー)とは
 NetworkManagerにおけるsecret_key(シークレットキー)は、 主にマシン(ホスト)のアイデンティティ(固有識別子)を表現するための設定項目です。  • IPv6安定プライバシー(Stable Privacy)の生成: ホスト固有のシークレットキーに基づいてIPv6アドレスを生成することで、ネットワーク接続ごとにアドレスが変わるのを防ぎ、かつプライバシーを保護する仕組み(RFC 7217など)に使われます。  • ホストの識別: ネットワーク上の特定のデバイス(マシン)を一意に特定するためのベースとなります。

 

 fe80 アドレスとは
fe80から始まるIPv6アドレスは「リンクローカルアドレス」と呼ばれ、同一のネットワーク内(ルーターをまたがない範囲)だけで有効なIPアドレスです。インターネットには直接つながりませんが、機器同士の自動設定や近隣探索(NDP)に必須であり、IPv6対応のインターフェースには必ず自動生成されます。

 
 
➡️ fe80 アドレスの確認コマンド:
 ip addr show eth0 | grep fe80
 
📌 回避策:
クローン後の「SSD」または「SDカード」で、fe80 アドレスを再生成する。
 sudo rm /var/lib/NetworkManager/secret_key
 sudo reboot
 
 
 
3-2. Win32DiskImagerによるバックアップとリストア
 
①. SDカードを Win32DiskImager を使って .img ファイルに Read すれば、バックアップファイルが作成できる。
 
②. この .img ファイルを同じく Win32DiskImager を使って Write すれば、リストアとなる。
 
この時、SDカードは同じ容量か大きいものが必要となる。
 
リストアされた SDカードで Raspberry Pi を起動すれば、バックアップされた時の状態で稼働する。
SDカードのバックアップとリストア要領
 
 
 
3-3. rsync によるバックアップ
 
rsyncを使って、USBアダプタにつけたマイクロSDカードに同期させることで、定期・自動バックアップ 。
rsyncを使って、USBアダプタにつけたマイクロSDカードに同期させることで、定期・自動バックアップ
 
 
参考:
 
 
 
3-4. rpi-clone によるクローンの作成
 
SD Card Copier」は、デスクトップ環境(X-Window)で動作するが、同じ機能で、CUI環境(ターミナル)で動作する「rpi-clone」がある。
 
rpi-cloneのインストール。
sudo apt-get install git-core

git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin
 
 
SD カードのマウント先を調べる。
lsblk
 
sda】が、コピー先のSDカード。
SD カードのマウント先を調べる
 
rpi-cloneの使用方法。コピー先のデバイスを指定する。
sudo rpi-clone sda
 
確認が求められるので、「yes」を入力。
確認が求められるので、「yes」を入力
 
クローンの作成が完了し、コピー先のデバイスをアンマウントする要求が表示されるので「Enter」キーをクリックする。
クローンの作成が完了し、コピー先のデバイスをアンマウントするために「Enter」キーをクリックする
 
 
「rpi-clone」は、rsyncコマンドを使用してバックアップを行っている為、差異のあるファイル分しか書き込みを行わないので時間の短縮ができ、また、サイズ違いのメディアでも問題なくバックアップができる。
 
cron での実行(4時7分)。q:quiet modeで、実行に関して何も通知を出さないというオプション(yesなどが求められない)。
07 4 * * * sudo bash rpi-clone sda -q
 
 
 
4. Raspberry Pi SDカードの拡張
 

Raspberry Pi で稼働中の 32GB SDカードを、『GParted』を使用して、そのまま 64GB に移行したRaspberry Pi SDカードの容量を拡張する

 
参考:
  
 
5. Raspberry Pi SDカードの縮小
 
Raspberry Pi のパーティションを縮小したり、Raspberry Pi のバックアップSDカードを容量の小さなSDカードに縮小する方法。
Raspberry Pi SDカードを容量の小さなSDカードにリサイズ
 
参考:
 
 
 
6. SDカードのマウント要領
 
USBにマイクロSDカードをマウントする方法:
 

以上。
(2017.09.04)

 

 

スポンサー リンク