現: 2023-04-23 (日) 07:17:11 yuji ソース
Line 1: Line 1:
 +* MicroSDカードからイメージファイルを作成する [#e87b7d6c]
 +Raspberry PiにOSをインストール後,いろいろな設定,各種ソフトウェアをインストールして一段落したら,MicroSDカードをバックアップしておくのは重要。~
 +Raspberry PiのMicroSDカードにはOSやデータなどすべてのファイルが保存されているが,突然ファイルシステムが壊れてしまうことがある。~
 +ファイルシステムが修復できれば良いが,修復出来なくなってしまうこともよくある。
 +
 +そこで,MicroSDカードをバックアップしておく。
 +
 +** ネットワークで接続されているファイルサーバーへイメージファイルを作成する [#f8905c74]
 +例えば,ネットワークで接続されているMS Networkのファイルサーバーにイメージファイルを作成してみる。
 +
 +まず,イメージファイルを保存するディレクトリを,Raspberry Piでマウントする。~
 +- マウントポイントの作成~
 + # mkdir /mnt/backup
 +のようにして,マウントポイントを作成する。
 +- ''/etc/fstab''にマウントする場所を追加する~
 +''/etc/fstabファイル''の例:~
 + //192.168.XX.YYY/ZZZ /mnt/backup cifs vers=2.1,username=xxxx,password=yyyy,rw,uid=xxxx,gid=yyyy,defaults 0 0
 +vers=2.1は,MS Networkのプロトコルバージョン。保存先のファイルサーバーに合わせる。~
 +- 保存先をマウントする~
 + # mount /mnt/backup
 +
 +これで保存先が,/mnt/backupにマウントされるので,必要であればバックアップするディレクトリを作成する。
 + # mkdir /mnt/backup/rpi_image
 +
 +あとはddコマンドでMicroSDカードを丸ごとイメージファイルに書き出す。
 + # dd if=/dev/mmcblk0 of=/mnt/backup/rpi_image/raspbian_bk.img bs=1M
 +
 +しばらくすると(すごく時間がかかる),ネットワークに接続されているファイルサーバーに,raspbian_bk.imgファイルが作成される。
 +
 +** MicroSDカードを抜いてPCでバックアップする [#p035615c]
 +Raspberry PiをシャットダウンしてMicroSDカードを抜いて,PCでイメージファイルにバックアップすることも出来ます。
 +
 +[[DD for Windows>http://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows]]が便利です。~
 +
 +[[Win32diskimager>https://sourceforge.net/projects/win32diskimager/]]でもイメージファイルに書き出しが出来ます。しかし,Win32diskimagerでは,バックアップしたイメージを再度exFATな64GBのMicroSDカードに書き込んだ場合ブート出来なくなってしまうので,注意が必要です。
 +
 +* バックアップしたイメージファイルの再使用時の注意 [#e072eaa5]
 +MicroSDカードのバックアップとしてイメージファイルを作成したが,それを再度MicroSDカードに書き込むときに注意することがある。上記のWin32diskimagerを使っての64GBなMicroSDカードに書き込む以外に注意することです。
 +
 +MicroSDカードは,同じ容量でも多くのメーカーからリリースされている。Raspberry Piには相性問題があってそれにも注意する必要があるが,この同じ容量なのにうまくバックアップしたイメージファイルがMicroSDカードに書き込めないということがある。困ったことにメーカーが同じでもこの問題が発生する時がある。~
 +&ref(msd1.png,,25%); → &ref(msd2.png,,25%);
 +
 +これは,同じ16GBのMicroSDカードでも,メーカーやMicroSDカードの内部に実装されているコントローラーにより,16GBの容量が微妙に異なっているのが原因。16GBのMicroSDカードをバックアップしたイメージファイルを,別の16GBのMicroSDカード(実際は少し容量が少ない16GBのMicroSDカード)に書き込む時,容量不足で書き込めないということが起こる。
 +
 +** 縮小したイメージファイルか縮小しながらパーテーションをコピーする [#ue60da7e]
 +この問題を解決するには,2通りの方法がある。
 +
 +1つ目の方法は,バックアップする前にRaspberry PiのMicroSDカードのパーテーションを,少し小さくしておくことで回避出来るようになる。~
 +小さくするパーテーションは,/boot(FAT/FAT32)以外のext4ファイルシステムの第2パーテーション。''gparted''等のパーテーション管理ツールを使って縮小することが出来る。
 +
 +2つ目の方法は,ドライブを丸ごとコピーするようなツールを使用して,MicroSDカードをより小さなMicroSDカードへ丸ごとコピーする方法。コピーにターゲットが容量が小さい場合は自動的にパーテーションサイズを縮小してコピーされます。
 +
 +*** あらかじめパーテーションサイズを縮小しておく方法 [#w633b4a9]
 +''gparted''は以下のようにしてインストールします。
 + # apt-get install gparted
 +後は,gpartedを起動して,該当のパーテーションを数GB小さくなるように編集しておけばまあ安心。
 +
 +*** MicroSDカードを丸ごとコピーするツールを使用する方法 [#h070a5ee]
 +Windows PCで動作する,ハードディスク/パーティションをイメージファイルとして丸ごとバックアップできるようなソフトを使います。~
 +こんなツールの一つに,EaseUS Todo BackupやMiniTool Partition Wizardがある。
 +//こんなツールの一つに,[[EaseUS Todo Backup Free>ftp://ftpadmin:filedownftp@modulesrv.nalux.local//util/disk/BackUp/EASEUS%20Todo%20Backup/tb_free_11.exe]]がある。~
 +//他にも,[[MiniTool Partition Wizard>ftp://ftpadmin:filedownftp@modulesrv.nalux.local//util/disk/BackUp/MiniToolPatitionWizard/pw102-free.exe]]なんかもある。
 +
 +これらのツールを使って,より小さい容量のMicroSDカードに丸ごとコピーすることが出来る。32GBのMicroSDカード → 16GBのMicroSDカードといったこともOK。
 +
 +* ディスクイメージのサイズを縮小する実際の方法 [#n585253c]
 +Raspberry PiのMicroSDカードに入れたOSを,バックアップするためにWin32DiskImagerを使って.imgファイルを作成した。~
 +しかし,MicroSDカードが32GBのものだったので,イメージファイルも32GBになって,16GBとかのMicroSDカードだとWin32DiskImagerなんかで書き込めない。
 +
 +このため,.imgファイルのサイズを縮小してみる。
 +
 +** イメージファイルの作成 [#t29ad83e]
 +Raspberry PiからMicroSDカードを抜いて,Win32DiskImagerで読み込んで.imgファイルのイメージファイルを作成した。~
 +MicroSDカードが32GBだったため,.imgファイルのサイズも32GBになっている。
 +
 +** イメージファイルのパーティションサイズを縮小する [#a995a322]
 +*** ループバックデバイスの確認 [#j56ee6cf]
 +作業するlinuxマシンで,ループバックデバイスが使用出来るかどうか確認する。
 + # losetup -f
 + /dev/loop0
 +使用できない場合は,
 + # modprobe loop
 +で,デバイスドライバーをロードして,使用出来るようにする。
 + 
 +*** ループバックデバイスにイメージファイルをマウントさせる [#v92fec61]
 +イメージファイルをループバックデバイスに関連付ける。
 + # losetup /dev/loop0 xxxxxxx.img
 +
 +ループバックデバイスのパーティションを認識させる。
 + # partprobe /dev/loop0
 +
 +*** gpartedでパーティションの容量を変更する [#j0864e3b]
 +ループバックデバイス/dev/loop0をパーティション編集ツールgpartedで開く。
 + # gparted /dev/loop0
 +
 +gpartedでパーティションのサイズを32GBから希望のサイズに縮小する。
 +
 +*** ループバックデバイスからイメージを解除 [#q7532844]
 +ループバックデバイスからイメージファイルをマウント解除する。
 + # losetup -d /dev/loop0
 +
 +** イメージファイルのサイズを変更する [#of343aab]
 +イメージファイルの中のパーティションサイズは縮小されているが,ファイルサイズは元のサイズになっている。
 + # fdisk -l xxxxxxxx.img
 + Disk myimage.img: 6144 MB, 6144000000 bytes, 12000000 sectors
 + Units = sectors of 1 * 512 = 512 bytes
 + Sector size (logical/physical): 512 bytes / 512 bytes
 + I/O size (minimum/optimal): 512 bytes / 512 bytes
 + Disk identifier: 0x000ea37d
 + 
 +       Device Boot      Start        End      Blocks  Id  System
 + xxxxxxx.img            2048    9181183    4589568    b  W95 FAT32
 +
 +これを使用していない部分を削除して,イメージファイルのサイズを縮小する。~
 +9181183セクタまで使用しているので,そのサイズ9181183 x 512にイメージファイルを縮小する。
 + # truncate --size=$[(9181183+1)*512] xxxxxxxxxx.img
 +
 +*** イメージファイルを8GBのmicroSDに書き込む [#a0c103d2]
 + # dd if=xxxxxxxxx.img of=xxxxxxxxxx_new.img
  

  • PC/RaspberryPi/MicroSDからイメージファイルを作成する のバックアップ差分(No. All)
    • 現: 2023-04-23 (日) 07:17:11 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 132, today: 1, yesterday: 1