您的位置:首页 > 运维架构 > Linux

如何制作嵌入式Linux虚拟机

2016-12-05 17:10 573 查看

简介

本文介绍如何在ESXi虚拟化平台下,利用内核文件(bzImage)和内存文件(initrd.img)制作嵌入式Linux虚拟机模板。

虚拟机创建

可以通过vSphere Client来创建一个Linux虚拟机,其中一些选项:

1. Guest Operation System: Other Linux(32-bit)

2. Create a disk: 4GB Thin Provision

:手工创建方法:

1. 通过vmkfstools创建虚拟磁盘

2. 通过vi编辑.vmx配置文件

3. vim-cmd solo/registervm注册虚拟机

创建分区和文件系统

将新创建的虚拟机磁盘添加到Ubuntu 9.04的虚拟机上,磁盘挂载在/dev/sdb上。用户创建时,将"/dev/sdb"修改相应的实际磁盘标识。

1. 通过"fdisk /dev/sdb"创建分区。最终作者创建的分区情况如下,其中/dev/sdb1设置为启动分区:
Command (m for help): p

Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x94007daa

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1           9       72261   83  Linux
/dev/sdb2              10          18       72292+  83  Linux
/dev/sdb3              19          27       72292+  83  Linux
/dev/sdb4              28         522     3976087+   5  Extended
/dev/sdb5              28         487     3694918+  83  Linux
/dev/sdb6             488         522      281106   83  Linux
2. 初始化文件系统

通过mkfs.ext4将相应的分区格式为ext4文件系统,如:
root@sv-changeme-desktop:/home/infinera# mkfs.ext4 /dev/sdb1
mke2fs 1.41.4 (27-Jan-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
18072 inodes, 72260 blocks
3613 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
9 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
root@sv-changeme-desktop:/home/infinera#

安装和配置GRUB

作者使用的GRUB版本为1.99,具体如何编译安装grub,见参考资料。

1. 安装GRUB

将启动分区/dev/sdb1挂载到/home/bob/sdb/boot。通过grub-install安装GRUB。
root@sv-changeme-desktop:~# mount /dev/sdb1 /home/bob/sdb/boot
root@sv-changeme-desktop:~# grub-install --no-floppy --root-directory=/home/bob/sdb/boot/ /dev/sdb
Installation finished. No error reported.
2. 配置GRUB

进入/home/bob/sdb/boot/grub目录,通过grub-mkconfig命令生成grub.cfg缺省配置文件。用户可以根据自己需要编辑grub.cfg,并将自己的bzImage和initrd.img文件拷贝到/home/bob/sdb/boot目录下。
root@sv-changeme-desktop:/home/bob/sdb/boot/grub# grub-mkconfig -o grub.cfg
Generating grub.cfg ...
cat: /boot/grub/video.lst: No such file or directory
Found linux image: /boot/vmlinuz-2.6.28.9-custom
Found initrd image: /boot/initrd.img-2.6.28.9-custom
Found linux image: /boot/vmlinuz-2.6.28-11-generic
Found initrd image: /boot/initrd.img-2.6.28-11-generic
done

虚拟机上电

经过上面的步骤,Linux虚拟机创建完成(用户可以根据自己项目需要配置其它分区的内容)。后面就可以将虚拟机上电,测试Linux是否能够正常启动。

参考资料

1. GRUB编译与安装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: