【転載】ラズベリーパイRASPBERRY PI SDカードシステムのバックアップと復元

4308 ワード

ラベル:ラズベリーパイLinuxシステムのバックアップ
【原文のリンク:http://www.fendou.info/raspberry-pi-sd-card-backup-and-recovery/comment-page-1/」【作者の声明を見ていないので、削除します.】
この半年間は陸亀を監視するために使われていたラズベリーパイのRaspberry Piは安定していますが、冬になるとカメの箱の中の加熱灯が長時間にわたって加熱され、ラズベリー派の温度が高くなり、時々自動的にリセットされます.毎回正常に起きればいいですが、たまにSDカードのファイルシステムをかけられなくなります.SDカードのバックアップを元に戻す必要があります.
ラズベリーパイを買う時は、ストレージスペースが大きいので、16 GBのSDカードを買いましたが、実際には2 Gのスペースが使えませんでした.最初にバックアップしたラズベリーパイSDカードはwindwosのWin 32 DiskImagerを使っています.このバックアップはラズベリーパイを復元する方法が一番簡単です.Windows+カードリーダー+Win 32 Disk Imagerはラズベリー派のSDに対して完全なミラーバックアップができます.
後に木の苺パイを直接ddでバックアップする方法が発見されました.まずラズベリーパイ上のmount共有ディレクトリ(空間がSDカードより大きいなら大丈夫です.)を使ってください.
dd if=/dev/mmcblk0 of=raspberrypi.img bs=1M
raspberrypi.img鏡像ファイルをバックアップします.回復する方法は二つあります.一つはWin 32 Disk Imagerでwindowsシステム上で直接SDカードに記入します.第二に、Linuxシステムで使用されています.
dd if=/path/to/image/raspberrypi.img of=/dev/sdxこのような方法は、ネットワーク環境を考慮する必要があります.
最後に、究極のバックアップを木苺派に還元する方法を紹介します.dumpとresterを利用します.まず、このようなバックアップ方式のメリットを説明します.一つはWindowsのGhostのようにdump有効データだけが使えます.つまり、バックアップスペースを一番有効に節約できます.第二に、元のSDカードよりスペースが小さいSDカードに復元できます.元々使っていたラズベリーパイは16 GBで、現在は8 GBか4 GBのSDにミラーを復元できます.詳しい手順を見てみます.(最後の台本を見たくないです.)
一、必要なソフトウェアをインストールする
dosfstools:fat 32パーティションフォーマットツールdump:dump&resterバックアップツールparted&kpartx:仮想ディスクツール
インストーラを実行
sudo apt-get install dosfstools
sudo apt-get install dump
sudo apt-get install parted
sudo apt-get install kpartx
二、新しいファイルを生成する前にdf-hを確認して、ラズベリーパイの実際の使用空間を確認してからファイルサイズを決定します.以下のコマンドはブロックサイズが1 MBで、合計サイズが250 MBのミラーファイルを生成します.
sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=2500
三、仮想ディスクを分割する
パーティーで先ほど生成した仮想ディスクを二つのパーティションに分割します.
最初の分割エリアはFAT 32フォーマットで、sector 8192からsector 12879まで、約62.9 MBの第二の分割エリアはEXT 4を採用し、sector 122880から終了する.
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s
sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1
四、仮想ディスクをマウントしてフォーマットする
loop device:losetup接続imgファイルのloop device deviceを実行します.kpartxを実行した後、仮想ディスクコードを実行します.partBoot:deviceにp 1を組み合わせたFAT 32仮想ディスクパーティション.partRoot:deviceとp 2を組み合わせたEXT 4仮想ディスクパーティション.まず仮想ディスクを作成し、パーティションを作成します.
loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"
仮想ディスクパーティションをフォーマット
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
五、仮想ディスクパーティションのバックアップを開始し、cpコマンドで直接ファイルのバックアップを行います.
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
ext 4 linux仮想ディスクパーティション用dump&resterバックアップ
sudo mount -t ext4 $partRoot /media/
cd /media
sudo dump -0uaf - / |  sudo restore -rf -
cd
sudo umount /media
六、仮想ディスクをアンインストールする
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice
以上の六段階のラspberrypi.imgのデータファイルを全部バックアップしました.WindowsでWin 32 Disk ImagerでSDカードにミラーを戻すこともできます.LinuxでSDカードに戻すこともできます.また、SDカードのサイズを元のサイズに戻すことも要求されません.これで簡単にSDカードを交換できます.このSDカードでラspi-config->Expand Filesystemを起動すると未使用の空間を拡張できます.
ここで最後のシナリオです.以上の6ステップを含み、sudo vi backup.shを編集して以下の内容をコピーするだけでsudo chmod 777 backup.sh、そしてsudo ./backup.shは現在のスクリプトディレクトリの中でラズベリー派のSDカードのイメージを生成することができます.
#!/bin/sh
sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=2500
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s
sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1

loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
sudo mount -t ext4 $partRoot /media/
cd /media
sudo dump -0uaf - / | sudo restore -rf -
cd
sudo umount /media
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice