1.创建空镜像
$ dd if=/dev/zero of=disk.img bs=512 count=131072
2.新建一个bootable分区
$ fdisk disk.img
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-131071, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-131071, default 131071):
Using default value 131071
Command (m for help): a
Partition number (1-4): 1
Command (m for help): w
The partition table has been altered!
Syncing disks.
3.使用loop把分区挂载
$ sudo losetup /dev/loop0 disk.img
$ sudo losetup /dev/loop1 disk.img -o 1048576
# 1048576 == 1MB,上面创建分区时从2048扇区开始,2048 × 512B
4.格式化分区
$ sudo mkfs.ext4 /dev/loop1
$ sudo mount /dev/loop1 /mnt
5.安装grub2
$ sudo grub-install --root-directory=/mnt --no-floppy \
--modules="normal part_msdos ext2 multiboot biosdisk" /dev/loop0
6.启动试一下
$ qemu-system-x86_64 -m 256 -display gtk disk.img
#因为没有系统,启动后会进入grub shell