Loading

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
posted @ 2022-11-02 19:59  KairusZhang  阅读(286)  评论(0编辑  收藏  举报