делаем образ загрузочной SD
… чтобы могло пойти не так?
Всех приветствую. Раз сегодня пятница, расскажу вам прохладную историю.
Нужно мне сделать загрузочную флешку для одной железки на базе процессора sitara (это Техас Инструментс, это где Хьюстон, быки и пи… впрочем об этом в другой раз).
Так как там очень привередливый бутром, сд-должна размечаться в старом досовском стиле:
sudo fdisk -c=dos -S 63 -H 255 /dev/sdb
n
p
1
63
144584
t
1
b
a
1
w
Дальше форшмачим:
sudo mkfs.vfat -F 32 -n "boot" /dev/sdb1
монтируем, копируем SPL+u-boot+main_img..
И все работает. Да, волшебная строчка для fdisk, рождалась в диких корчах и муках. Тем не менее, если воткнуть sd в железку, она бодро загрузится и будет работать.
Дальше мне захотелось странного. Хочу не скрипт, который будет печь sd-карту. А скрипт, который будет печь образ, который можно потом, просто закинуть на любую sd через dd или еще как.
В целом вроде как ничего хитрого:
IMG=./sd_image
dd if=/dev/zero of=$IMG bs=1M count=200
cat << END | fdisk -c=dos -S 63 -H 255 ${IMG}
... < тут все тоже самое что и для sdb
END
DEV=`sudo losetup --find --show --partscan ${IMG}`
sudo mkfs.vfat -F 32 -n "boot" ${DEV}p1
sudo mount -t vfat ${DEV}p1 ./p1
cp ./MLO bla-bla-bla
sudo umount ....
sudo losetup --detach $DEV
Получили такие же первых 63 сектора. И такой же размер первого раздела с таким же набором файлов. Дальше, делаем:
dd if=$IMG of=/dev/sdb
Втыкаем в железку.. и ничего!
В чем сакральная разница?