|
microSDカードの複製について †CAT724からみたSDカードは以下のデバイスになります /dev/mmcblk0 ... CPUボード上の microSDカード(カード全体) /dev/mmcblk0p1 ... 第1パーティション /dev/mmcblk0p2 ... 第2パーティション /dev/mmcblk0p3 ... 第3パーティション /dev/mmcblk1 ... マザーボード上の標準サイズSDカード(カード全体) /dev/mmcblk1p1 ... 第1パーティション /dev/mmcblk1p2 ... 第2パーティション /dev/mmcblk1p3 ... 第3パーティション 内蔵ROMで起動するようにする †SDカードで起動している時は SDカードを read/write でマウントしていて、ファイルが変更されうる状態のため、その状態のカードをコピーすることは危険です。 内蔵ROMで起動するようにします。 CAT724のbootloader で >> admin password:silinux #> setparam -d (内蔵ROM起動に変更) #> boot 内蔵ROMでLinuxが起動している状態で login:root password:root 方法1:ddで丸コピーする方法 †全く同一銘柄/同一ロットの microSD カード同士であれば dd (disk dump)コマンドで丸コピー出来ます。ただし「2Gバイト」のように売られている製品でも実際の容量は2Gバイト ”前後” であるため容量が合わないときはこの方法は使えません。(小さい容量→大きい容量への方向であれば大丈夫ですが逆はできません) コピー先となる microSD を 標準サイズSDカードにサイズを変更するアダプタを経由してマザーボードのSDソケットに入れます。 # dd if=/dev/mmcblk0 of=/dev/mmcblk1 こうすると if (input file) から of (output file) に dd (disk dump)で 丸コピーされますから、パーティションやフォーマットも含め完全に複製されます。 方法2:異なる銘柄のSDカードをコピーするには †新しいSDカードに対して、パーティションを切る → フォーマット → ファイルコピーの順で作業しSDを複製します。 コピー元のSDカードのパーティショニングを確認する †コピー元(/dev/mmcblk0)のパーティション情報をメモします。 # cfdisk /dev/mmcblk0 サンプルで次のようになっていたとします。 Name Flags Part Type FS Type [Label] Size (MB) ------------------------------------------------------------------------ mmcblk0p1 Primary FAT16 [ ] 512.00 mmcblk0p2 Primary Linux ext3 3000.01 mmcblk0p3 Primary Linux swap / Solaris 419.11 cfdiskのメニューから[Print]→[Table]を選択すると PartitionID (1バイトの数字) を見る事も出来ます。 ---Starting---- # Flags Head Sect Cyl ID -- ----- ---- ---- ----- ---- 1 0x00 1 1 0 0x06 2 0x00 0 1 15625 0x83 3 0x00 0 1 107178 0x82 4 0x00 0 0 0 0x00 実際の /dev/mmcblk0p1 使用容量を確認するには一度 read only でマウントして df -h で表示します。 # mount /dev/mmcblk0p2 /media/sd -o ro (read only マウント) # df -h Filesystem Size Used Avail Use% Mounted on /dev/mmcblk0p2 2.8G 488M 2.2G 19% /media/sd # umount /media/sd/ (アンマウント) 表にするとこのようになります
パーティションを作成する †上記を参照に新しいSDカード(/dev/mmcblk1)にパーティションを作成します。 # cfdisk /dev/mmcblk1 パーティションの作成方法の実際は「組み込みLinuxガイド」等を参考にしてください。 フォーマット †# mkdosfs -F16 /dev/mmcblk1p1 # mkfs.ext3 /dev/mmcblk1p2 # mkswap /dev/mmcblk1p3 コピー †# mkdir /media/sd1 # mount /dev/mmcblk0p2 /media/sd1 -o ro 転送元のカードをread onlyマウントする # mkdir /media/sd2 # mount /dev/mmcblk1p2 /media/sd2 転送先のカードをマウントする # cd /media/sd2 # cp -av /media/sd1/* . 全部コピー # cd # sync # umount /media/sd1 # umount /media/sd2 SDカードで起動試験する †CAT724のbootloader で >> admin password:silinux #> setparam -s (SDカードをrootfs指定に変更) #> boot 関連 † |