Как создать образ диска для VirtualBox
Простой пример.
Имеем ядро линукс, имеем файловую систему.
Как создать образ диска для VirtualBox?
Поскольку в openWrt этот механизм реализован, то будем использовать инструменты openwrt для реализации этой цели, поэтому необходимо собрать openWrt для конфигурации x86.
Всё описание приведено с использованием сборки openwrt для x86. Все скрипты и утилиты, которые используются здесь, присутствуют либо в target/linux/x86, либо в staging_dir/host.
1. создание образа openwrt-x86-generic-combined-ext4.img.
OPENWRT_DIR="/home/user1/MyWork/openWrt_X86/barrier_breaker" cd $OPENWRT_DIR/target/linux/x86/image PADDING="y" ./gen_image_generic.sh \ $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.img 4 \ $OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/root.grub 48 \ $OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/root.ext4 256
2. grub-bios-setup
grub-bios-setup --device-map="/home/user1/MyWork/openWrt_X86/barrier_breaker/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/grub2/device.map" -d "/home/user1/MyWork/openWrt_X86/barrier_breaker/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/grub2" -r "hd0,msdos1" "/home/user1/MyWork/openWrt_X86/barrier_breaker/bin/x86/openwrt-x86-generic-combined-ext4.img"
3. Создание VDI образа
qemu-img convert -f raw -O vdi \ $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.img \ $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.vdi
Весь скрипт целиком:
#!/bin/bash OPENWRT_DIR="/home/user1/MyWork/openWrt_X86/barrier_breaker" cd $OPENWRT_DIR/target/linux/x86/image PADDING="y" ./gen_image_generic.sh \ $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.img 4 \ $OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/root.grub 48 \ $OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/root.ext4 256 ./grub-bios-setup --device-map="$OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/grub2/device.map" \ -d "$OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/grub2" \ -r "hd0,msdos1" "$OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.img" qemu-img convert -f raw -O vdi \ $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.img \ $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.vdi
Образ в формате VDI будет расположен в директории $OPENWRT_DIR/bin/x86/openwrt-x86-generic-combined-ext4.vdi
Ядро в формате vmlinuz располагается в директории:
$OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/root.grub
Для получения образа vmlinuz при одиночной сборке ядра следует использовать команду:
make bzImage && cp ./arch/x86/boot/bzImage ./arch/x86/boot/vmlinuz
Корневая файловая система представлена в виде образа файлом в :
$OPENWRT_DIR/build_dir/target-i386_i486_uClibc-0.9.33.2/linux-x86_generic/root.ext4