Turtlebot3を動かしているラズパイを数増しするときのメモ。
新しいSDカードに環境を丸ごとコピーしました。
-
元の環境:Turtlebot3を動かしてるラズパイ
- Raspberry Pi 4B 4GB
- micro SD 32GB
- Ubuntu mate 20.04.4 LTS
-
コピー先(全く同じつもり)
- Raspberry Pi 4B 4GB
- micro SD 32GB (Rasbianが入っていたものをフォーマット)
参考にさせていただいたページ
ディスクの認識・確認
ハード・ディスクのパーティションを設定するfdiskコマンドで、デバイスのパーティション情報を表示確認する。
$ sudo fdisk -l
~~~
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/mmcblk0p1 * 2048 526335 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 526336 62929886 62403551 29.8G 83 Linux
上記の場合、コピー元のSDカードは/dev/mmcblk0
です。(SDカードを指した状態の結果をコピーし忘れました。)
私の場合、SDカードは'/dev/sda'でした。
ddコマンドでブロックごとコピーする
ddコマンドについて:【 dd 】コマンド――ブロック単位でファイルをコピー、変換する:Linux基本コマンドTips(163) - @IT (itmedia.co.jp)
「dd」コマンドはファイルをブロック単位で読み出し、指定通り変換して出力します ※1。入力と出力にデバイスを指定できるため、HDDのパーティションをコピーする、USBメモリやCD-ROMのバックアップを取る、といった使い方が可能です。
下記コマンドでコピーします。
$ sudo dd if=/dev/(コピー元のSDカード) of=/dev/(ターゲットカード) bs=10M
私の場合は下記コマンドでした。
$$ sudo dd if=/dev/ mmcblk0 of=/dev/sda bs=10M
30分くらい待ったら完了しました。
新しいSDカードを別のラズパイにさして起動すると、無事コピー環境が立ち上がりました。
おまけ
古いラズパイの時と同じIPアドレスで、新しいOSを立ち上げてssh接続しようとしたら怒られました。
SSHでは初回接続時に接続先ホストの公開鍵を保存しておき、次回接続時にホスト鍵を比較して前回と同じホストに接続したかを確認するような仕組みになっています。そのため、IPアドレスの振り直しやOS再インストールなどでホスト鍵が変わってしまった場合、次のようなエラーメッセージが出てSSH接続が失敗してしまいます。
known_hostsファイルからホスト鍵を削除してから、接続しました。
ssh-keygen -R [接続先IPアドレス]