【STEP-25】Raspbianのイメージを外部ストレージに圧縮/展開して随時リカバリー

0
1243

【STEP-24】では、起動中のOS ( Raspbian ) を直接、microSDカードにバックアップしましたが、今回は外部ストレージにmicroSDカードのイメージを圧縮して保存したり、その圧縮ファイルを展開してmicroSDカードにコピーすることで、バックアップとリカバリーを随時に実行する方法を紹介します。

バックアップ毎にmicroSDカードを必要とする【STEP-24】に比べて、目的別、世代別のバックアップをひとつのストレージにファイル名で管理できるのが、この方法のメリットになります。

今回は、バックアップするmicroSDカードとは別に、もうひとつRaspbianをインストールしたmicroSDカードを用意 (【STEP-23】【STEP-24】等 ) し、そちらを起動して作業を行います。

外部ストレージのフォーマット

外部ストレージをRaspberry Piで初めて使用する場合は、Raspberry Piでフォーマットしておきましょう。

今回使用する外部ストレージにはOS ( Raspbian ) のバックアップイメージを保存する為、ひとつで4GB以上のファイルでも読み書き可能な”ext4″というフォーマット形式でフォーマットします。

今回は外部ストレージとして64GBのUSBメモリーを用意しました。

USBメモリーをRaspberry PiのUSB端子に挿入すると、「リムーバブルメディアの挿入」画面が開くので、「キャンセル」ボタンをクリックします。

「LXTerminal」を起動し、コマンド”lsblk“で、外部ストレージのデバイスファイル名を確認しておきます。

lsblk

“/media/pi/”にマウントされた外部ストレージのデバイスファイル名は “sda”でした。容量は、59.2GBと少なく表示されています。

フォーマットの前に、コマンド”umount“で、外部ストレージ”sda”をアンマウントしておきます。

umount /dev/sda

コマンド”mkfs.ext4“で、外部ストレージ”sda”を”ext4″でフォーマットします。

sudo mkfs.ext4 /dev/sda

途中で「続行しますか?」と聞かれるので、”y”を入力して「Enter」キーを押します。

y

プロンプトが返ってくれば、フォーマットが終わっているので、USBメモリーをRaspberry PiのUSB端子から取り外します。

外部ストレージ”sda”は既にアンマウントされているので、タスクバーの「Ejector」をクリックする必要はありません。

外部ストレージへのバックアップ

取り外したUSBメモリーを再び、Raspberry PiのUSB端子に挿入すると、「リムーバブルメディアの挿入」画面が開くので、「OK」ボタンをクリックします。

「ファイルマネージャ」画面でフォーマットした外部ストレージが開くので、”/media/pi/”の下にマウントされたUUID“263c4edf-03a7-427c-b814-b557167b9723″の上で右クリックして現れるプルダウンメニューから「パスをコピーする」を左クリックします。

「LXTerminal」画面に戻り、コマンド”cd ( 半角スペース ) “で保存先 ( 外部ストレージ ) のマウント位置に移動します。

cd

マウスカーソルの位置で、右クリックして現れるプルダウンメニューから「貼り付け」を左クリックします。

「Enter」キーを押すと、バックアップの作業ディレクトリ ( 外部ストレージ のマウント位置) に移動します。

バックアップをする対象のmicroSDカードをカードリーダーを介してRaspberry PiのUSB端子に挿入すると、「リムーバブルメディアの挿入」画面が開くので、「キャンセル」ボタンをクリックします。

「LXTerminal」を起動し、コマンド”lsblk“で、バックアップするmicroSDカードのデバイスファイル名を確認しておきます。

lsblk

“/media/pi/”にマウントされたmicroSDカードのデバイスファイル名は “sde”でした。

コマンド”dd“と”gzip“を”| ( バーチカルバー ) “で繋ぐことで、「 ( microSDカードの ) イメージを圧縮し、ファイルとして保存する」というコマンドを実行します。

“if=”にバックアップ対象のデバイスファイル“/dev/sde”を指定し、作業ディレクトリ ( 外部ストレージ ) にファイル名”180327_raspbian.gz”で保存します。

sudo dd if=/dev/sde bs=4M status=progress | gzip -c -v > 180327_raspbian.gz

「Enter」キーを押したら、「許可がありません」とのこと

仕方がないので、ルートユーザーとして実行します。

sudo su

もう1度、バックアップのコマンドを実行します。

dd if=/dev/sde bs=4M status=progress | gzip -c -v > 180327_raspbian.gz

今度はちゃんとバックアップが始まりました。

バックアップが完了するとプロンプトが返ってきます。16GBのイメージを平均速度5.1MB/Sで3,098秒 (51分38秒 )掛かりました。圧縮率は70.3%です。

「ファイルマネージャ」画面に戻ると、USBメモリーに保存されたバックアップファイルは4.4GBでした。計算では、58GBのUSBメモリーには約13のバックアップが保存できます。

タスクバー右端のアイコン「Ejctor」をクリックして現れるマウントされたストレージのリストから、取り外すmicroSDカードのモデル名をクリックします。

すると、「”BUFFALO BSCR20TU3″が安全に取り外せます」というPOPUPが出るので、これを確認したらUSB端子からmicroSDカードを取り外します。

バックアップからのリカバリー

バックアップイメージを書き込むmicroSDカードをカードリーダーを介してRaspberry PiのUSB端子に挿入すると、「リムーバブルメディアの挿入」画面が開くので、「キャンセル」ボタンをクリックします。

コマンド”lsblk“で、イメージを書き込むmicroSDカードのデバイスファイル名を確認しておきます。

lsblk

“/media/pi/”にマウントされたmicroSDカードのデバイスファイル名は “sde”でした。

コマンド”gunzip”をルートユーザーとして実行します。”gunzip -c -v”の後にも”半角スペース”を入力しておきます。「Enter」キーはまだ押しません。

gunzip -c -v

「ファイルマネージャ」画面に戻って、バックアップファイルを右クリックして現れるプルダウンメニューから「パスをコピーする」を左クリックします。

「LXTerminal」画面のマウスカーソルの位置で右クリックし、現れたプルダウンメニューから「貼り付け」を左クリックします。

“半角スペース|  ( バーティカルバー ) 半角スペース”の後にコマンド”dd”を入力します。書き込み先の”of=”には、USB端子に接続したmicroSDカードのデバイスファイル ( この例では”/dev/sde” ) を入力します。

ここまで入力したら「Enter」キーを押します。

 | dd of=/dev/sde bs=4M status=progress conv=fsync

microSDカードにバックアップイメージの書き込みが始まります。

書き込みが完了するとプロンプトが返ってきます。16GBのイメージを平均速度11.3MB/Sで1,412秒 (23分32秒 )掛かりました。

コマンド”sync“で、キャッシュ ( メモリ ) の内容を全てディスクに書き込ませておきます。

sync

コマンド”exit”を2回実行して「LXTerminal」を閉じます。

exit
exit

Raspberry Piを一旦、シャットダウンして、カードスロットのmicroSDカードを今回リカバリーしたものに差替えて起動したら、バックアップしたときと同じRaspbianのデスクトップが表示されました。

次回の【STEP-26】では、OS ( Raspbian ) をUSB接続した外部ストレージ ( SSD等 ) から起動することで、記憶容量の拡大やシステムの安定化を図る方法を紹介します。