システムディスク全体をコピー

 ラズパイで運用中のサーバーシステムを色んな理由で別のSDカードやUSBメモリに移行したくなることがある。
 そこでよく耳にするddコマンドを試みるが書込み先の容量が足りないと言われて落ちてしまう。
 他に方法はないものかと調べるとwindowsでWin32DiskImager による方法があるとの記載がある。
 早速以前システムを書き込んで使っていたが今は使用していないシステムの入ったUSBメモリーを使ってPCへの読み込み、SDカードへの書き出しをやってみる。
 書き込まれたSDカードをラズパイにUSBアダプター経由で接続し、中身を見てみると書込みには成功しているようである。
 また、PARTUUIDもコピーされており、コピー後の/boot/cmdline.txt や /etc/fstab の書き換えは必要ない様である。
 しかし、書き込まれたものは元のUSBメモリーをそのままコピーしており、サイズを大きくする目的にはかなっていない。
 そこでコマンドでリサイズしようとしたが、ディスクチェックしろとか長いファイルがあるので何もできないとかのメッセージが出て動かない。

 これもネットで調べるとgpartedというコマンドがあり、これを使うとできるとの記述がある。

$ sudo apt-get install gparted

$ sudo gparted
 右上に、ディバイスを選択する場所があるので、USB接続のSDカードを選択する。
 ほぼ半分の容量が、未割り当てになっている。

Linux の ext4(/dev/sda2) を右クリックして、Resize を選択する。 ?印をドラッグして右にずらす。 いっぱいいっぱい迄ずらす。 容量が拡張された。 拡張操作を適用するために、『Edit』から『Apply All Operations』を選択。 確認画面が出る。
拡張処理が実行される。
拡張処理が終了。
$ df で確認、容量が増えていれば成功である。 上手く空き領域に拡大できた。 今度は動いているUSBメモリーを使ってやってみることとする。