FreeBSDのRaspbery PI用イメージを1GBのSDカード用に変換する
やること
FreeBSDのRaspbery PI用イメージを1GBのSDカード用に変換する。 配布されているイメージは1GBなのだが、手元にあったSDカードは953MBとちょっと足りない。 そのため、実際のSDカードのサイズに合わせる。
方法
SDカードと同じサイズのファイルを作成する。 それに公式イメージの内容をdump&restoreする。
macでイメージを作成する。
dd if=/dev/disk2 of=sd.img bs=1m
dump & restore
コピー先の準備
mdconfig -x 63 -y 255 -f sd.img gpart create -s MBR md0 gpart add -t '\!12' -a 63 -s 64m md0 gpart set -a active -i 1 md0 newfs_msdos -L MSDOSBOOT -F 16 /dev/md0s1 gpart add -t freebsd md0 gpart create -s BSD md0s2 gpart add -t freebsd-ufs md0s2 newfs -U md0s2a Tunefs -L roots /dev/md0s2a mount /dev/md0s2a /var/tmp/sd
コピー
mdconfig -f FreeBSD-11.2-RELEASE-arm-armv6-RPI-B.img echo '/dev/md1s2a /var/tmp/src ufs rw 1 0' >> /etc/fstab mount /var/tmp/src /dev/md1s2a dump -0 -h 0 -f - /media | restore -x -f - -v sync umount /var/tmp/src umount /var/tmp/sd
起動用パーティションもコピー
mount -t msdosfs /dev/md0s1 /var/tmp/sd mount -t msdosfs /dev/md1s1 /var/tmp/src cp -pRv /var/tmp/src/* /var/tmp/sd/. sync umount /var/tmp/src umount /var/tmp/sd mdconfig -d -u 0 mdconfig -d -u 1