屋根裏Linux

07 Raspberry PiファイルシステムHDD化 その3/3 (起動SDカードを別カードに移行)

投稿日:May 4, 2014 投稿者:camelinsect

(本投稿はメモ書き状態の草稿版です)
HDDにルートファイルシステムを移行 その3/3

前回までで以下の②まで実施しました。

【流れ】
①HDDを接続してパーティションを切ってフォーマット
②HDDへデータを移行
1 sda1にmmcblk0p2の中身をコピー
2 起動時の自動マウント設定を変更 その1
3 /varの内容をsda5へコピー
4 元の/varを別名保存し、/varへsda5をマウント
5 起動時の自動マウント設定を変更 その2
③/dev/mmcblk0p1の内容を別の容量が小さいSDカードへコピー

今回は、最後の③を実施します。
今まで16GのSDカードを使っていましたがブートさせるだけならもっと小さいSDカードで対応できるので勿体ないです。某お化けが出そうです。
余ってる512MのSDカードがあるのでそっちを使おうと思います。
以前確認したブート用のパーティションは60M程度だったのでもっと小さいSDカードでもたぶん大丈夫です。

必要なもの
・空のSDカード(128M程度で十分)
・USB接続のカードリーダ

参考URL
ORBIT SPACE
月と杜

いろいろとやり方はあるようですが、今回はRaspberry PiにUSB接続のカードリーダを繋いで、/bootを直接コピーしてしまいます。
(WindowsからMiniTool Partition Wizard Home Editionというソフトで行う方法もあるようですが詳細は不明なので興味がある人は調べてみてください)

RPiにUSBカードリーダを接続します。
今回は電源を切らずにそのまま繋いでみます。

接続後にデバイスの情報を確認
sudo fdisk -l

Disk /dev/mmcblk0: 15.8 GB, 15819866112 bytes
4 heads, 16 sectors/track, 482784 cylinders, total 30898176 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: 0x000981cb

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 5785599 2831360 83 Linux

Disk /dev/sda: 1494.1 GB, 1494105661440 bytes
255 heads, 63 sectors/track, 181648 cylinders, total 2918175120 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: 0x410f9b02

Device Boot Start End Blocks Id System
/dev/sda1 2048 67110911 33554432 83 Linux
/dev/sda2 67110912 2912946175 1422917632 5 Extended
/dev/sda3 2912946176 2918175119 2614472 82 Linux swap / Solaris
/dev/sda5 67112960 486543359 209715200 83 Linux

Disk /dev/sdb: 513 MB, 513277952 bytes
9 heads, 40 sectors/track, 2784 cylinders, total 1002496 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: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 233 1002495 501131+ 6 FAT16

今回接続したSDカードは一番下に/dev/sdbとして認識しています。

HDDの時に使ったfdskコマンドで空のSDカードに新たにパーティションを作成します。
sudo fdisk /dev/sdb

dコマンドで既存の領域削除
nコマンドで新規領域作成。パーティションタイプはp、それ以外はデフォルトで全領域を1つのパーティションにします。
tコマンドでパーティションのタイプをW95 FAT32 (LBA)に変更。コードはcです。
wコマンドで保存・終了

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
上記ワーニングが出ますが気にしない。

作成したパーティションをフォーマットします。(私はフォーマットせずにマウントしようとしててちょっと悩みました。)
ツールをインストール。(入れようとしたら調子がおかしいので一度アップデートしてから入れたら入りました。)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install dosfstools

SDカードをフォーマット
sudo mkfs -t vfat -c -F 32 /dev/sdb1

SDカードを/mntにマウントします。
sudo mount -t vfat /dev/sdb1 /mnt

/bootの内容をSDカードにコピー
sudo cp -rpf /boot/* /mnt

SDカードのマウント解除
sudo umount /mnt

ここで一度電源を落とします。
sudo shutdown -h now

電源を抜いた後UBSカードリーダを外してSDカードを差し替えて再度電源を入れます。
暫くしてターミナルでアクセスできれば完了です。

以上でHDDへのファイルシステム移行は終了です。いや~長かった。
お付き合いいただきありがとうございました。

2014年4月5日作成
2014年5月4日草稿公開
camelinsect

< 前の記事

06 Raspberry PiファイルシステムHDD化 その2/3 (/varを別パーティション化)

次の記事 >

08 Raspberry Pi パフォーマンス向上設定