kvmtool启动linux虚拟系统
1、获取kvmtool
git clone https://github.com/kvmtool/kvmtool.git
cd kvmtool
make -j256
编译成功后生成lkvm可执行程序。
2、编译Linux内核
wget https://mirrors.edge.kernel.org/pub/linux/kernel/*******
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison ##编译环境配置
tar xvzf linux-**.**-rc2.tar.gz
在正式编译内核之前,我们首先必须配置需要包含哪些模块。可以使用make menuconfig命令配置,,但是由于对当前硬件系统的不了解,可能会出现编译问题;
实际上,有一些非常简单的方式来配置。使用一个命令,你能拷贝当前内核的配置文件,然后使用可靠的 menuconfig
命令来做任何必要的更改。使用如下命令来完成:
cp /boot/config-$(uname -r) x86_64_deconfig
# make x86_64_defconfig
在/arch/x86_64/目录下生成bzImage内核镜像文件;
sudo make install ##安装内核 忽略
3、编译Busybox制作根文件系统
wget https://busybox.net/downloads/*********** ##获取busybox源文件
编译busybox
tar -xf busybox-*.**.0.tar.bz2 cd busybox-*.**.0 make -j256 && make install
编译结束后在busybox-*.**.0目录下回生成一个_install目录,_install目录下的内容就是rootfs所需的内容,但是_install目录下的内容并不完整,还需进一步补充相关文件。
配置rootfs,入_install目录,进行如下操作
cd _install # 将linuxrc更名为init mv linuxrc init # 补充etc/init.d目录 mkdir -p etc/init.d # 补充rcS文件 cd etc/init.d vim rcS # 在rcS中补充如下内容 #!/bin/sh mount -t devtmpfs devtmpfs /dev mkdir -p /dev/pts mount -vt devpts -o gid=4,mode=620 none /dev/pts # 更改rcS权限 chmod 755 rcS
打包rootfs文件
cd _install find . | cpio -o --format=newc > root_fs.cpio
启动虚拟机
# -k kernel-image # -i initrd # -m 内存 ./lkvm run -k bzImage -i root_fs.cpio -m 2048