终于看到一点曙光了
1. 用fallocate命令创建一个镜像文件,这里创建了一个1G的镜像文件,mydisk.img
# fallocate -l 1G mydisk.img
2.对mydisk.img进行分区,格式化
# fdisk mydisk.img
欢迎使用 fdisk (util-linux 2.24.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
Created a new DOS disklabel with disk identifier 0xd58e7163.
命令(输入 m 获取帮助):o
Created a new DOS disklabel with disk identifier 0xdd45c913.
命令(输入 m 获取帮助):n
分区类型:
p 主分区(0 个主分区,0 个扩展分区,4 空闲)
e 扩展分区
请选择(默认为 p):: p
分区号 (1-4, default 1): 1
第一个扇区 (2048-2097151, default 2048):
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-2097151, default 2097151):
创建了一个新分区 1,类型为“Linux”,大小为 1023 MiB。
命令(输入 m 获取帮助):w
分区表已调整。
正在同步磁盘。
# losetup -f --show mydisk.img
/dev/loop0
注意,用GRUB2的必须用kpartx创建mapper,否则不能正确安装。
# kpartx -a /dev/loop0
# mkfs.ext4 /dev/mapper/loop0p1
mke2fs 1.42.8 (20-Jun-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 261888 blocks
13094 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
清除loop0的MBR
# dd if=/dev/zero of=/dev/loop0 seek=1 count=2047 bs=1b
记录了2047+0 的读入
记录了2047+0 的写出
1048064字节(1.0 MB)已复制,0.00268257 秒,391 MB/秒
为loop0安装grub2
# grub2-install /dev/loop0
Installation finished. No error reported.
转换成虚拟机文件
# VBoxManage convertdd mydisk.img mylinux.vdi
Converting from raw image file="mydisk.img" to file="mylinux.vdi"...
Creating dynamic image with size 1073741824 bytes (1024MB)...
更改文件权限
#chmod 777 mylinux.vdi
用虚拟机打开,可以看到grub2了