首先,请原谅 - 这是我构建操作系统和使用Buildroot的第一步。
我设法创建了我的第一个自定义操作系统(没什么特别的,只是用grsec修补了4.6.3内核的第一个测试)。
我在/ output / images目录中有这些文件:
$ ls -lh
total 304M
-rw-r--r-- 1 fugitive fugitive 512 Apr 13 01:01 boot.img
-rw-r--r-- 1 fugitive fugitive 4.1M Apr 13 00:57 bzImage
-rw-r--r-- 1 fugitive fugitive 79M Apr 13 01:01 disk.img
-rw-r--r-- 1 fugitive fugitive 137K Apr 13 00:57 grub-eltorito.img
-rw-r--r-- 1 fugitive fugitive 137K Apr 13 00:57 grub.img
-rw-r--r-- 1 fugitive fugitive 69M Apr 13 01:01 rootfs.cpio
-rw-r--r-- 1 fugitive fugitive 79M Apr 13 02:10 rootfs.ext2
lrwxrwxrwx 1 fugitive fugitive 11 Apr 13 01:01 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 fugitive fugitive 74M Apr 13 01:01 rootfs.iso9660
我的目标是 - 创建一个bootabile iso映像,但我不知道如何。
我可以使用qemu模拟它,就像你在屏幕截图中看到的那样:
我尝试将rootfs.iso9660
刻录到USB驱动器,但无法启动。
尝试将rootfs.iso9660重命名为rootfs.iso9660.iso并尝试使用VirtualBox,但后来我得到了一个grub终端。
感谢帮助和指示!
修改
.config文件:
-bash-4.2$ grep BR2_TARGET_ROOTFS_ .config | grep -v ^#
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_NONE=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_GEN=4
BR2_TARGET_ROOTFS_EXT2_REV=1
BR2_TARGET_ROOTFS_EXT2_LABEL=""
BR2_TARGET_ROOTFS_EXT2_BLOCKS=0
BR2_TARGET_ROOTFS_EXT2_INODES=0
BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=0
BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES=0
BR2_TARGET_ROOTFS_EXT2_RESBLKS=0
BR2_TARGET_ROOTFS_EXT2_NONE=y
BR2_TARGET_ROOTFS_ISO9660=y
BR2_TARGET_ROOTFS_ISO9660_GRUB2=y
BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="fs/iso9660/grub.cfg"
BR2_TARGET_ROOTFS_ISO9660_INITRD=y
-bash-4.2$ grep -r BR2_TARGET_ROOTFS_ISO9660_HYBRID *
fs/iso9660/Config.in:config BR2_TARGET_ROOTFS_ISO9660_HYBRID
fs/iso9660/iso9660.mk:ifeq ($(BR2_TARGET_ROOTFS_ISO9660_HYBRID),y)
答案 0 :(得分:3)
您是否启用了BR2_TARGET_ROOTFS_ISO9660_HYBRID
?如果您希望ISO映像也可以在USB设备上运行,则需要这样做。
答案 1 :(得分:0)
尝试:
sudo dd if=/path/to/output/images/disk.img of=/path/to/usb/drive bs=1M
要了解USB驱动器的路径:
lsblk
找到你的USB驱动器。
答案 2 :(得分:0)
使用Grub2的可引导ISO映像(仅用于CDROM的旧式ISO映像)-我使它起作用。
biosdisk iso9660
cd
我将更改保存为defconfig(make savedefconfig
,读为here),这是您应该拥有的内容:
BR2_ROOTFS_POST_BUILD_SCRIPT="board/pc/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pc/genimage-bios.cfg"
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
BR2_TARGET_ROOTFS_ISO9660=y
BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="fs/iso9660/grub.cfg"
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_BOOT_PARTITION="cd"
BR2_TARGET_GRUB2_BUILTIN_MODULES="boot linux ext2 fat squash4 part_msdos part_gpt normal biosdisk iso9660"
BR2_PACKAGE_HOST_GENIMAGE=y
旁注:我开始尝试为PC make pc_x86_64_defconfig && make
建立默认配置
在QEMU中测试您的ISO:
qemu-system-x86_64 -m 512 -cdrom output/images/rootfs.iso9660
它也可以在Virtual Box中使用。