上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/MicroSDからイメージファイルを作成する
のソース
資料室
PC
/
RaspberryPi
/
MicroSDからイメージファイルを作成する
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/RaspberryPi/MicroSDからイメージファイルを作成する
へ行く。
* 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
Counter: 663, today: 4, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ