首页 > 系统相关 >kvmtool启动linux虚拟系统

kvmtool启动linux虚拟系统

时间:2022-11-02 20:14:28浏览次数:29  
标签:busybox kvmtool dev rcS 编译 init 虚拟 install 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

标签:busybox,kvmtool,dev,rcS,编译,init,虚拟,install,linux
From: https://www.cnblogs.com/ucas123/p/16852233.html

相关文章

  • Linux常用基础命令
    整理了一下Linux常用的基础命令,可能会有遗漏vim的操作,用户权限,还有安装操作等没有写进来,后面有时间单独写cd命令:切换目录cd/usr/local切换到指定目录/usr/localcd......
  • linux-01 CenOS和VM安装配置
    1.下载centos系统ISO镜像要安装centos系统,就必须得有centos系统软件安装程序,可以通过浏览器访问centos官网http://www.centos.org,然后找到Downloads -> mirrors链接,......
  • 实验2:Open vSwitch虚拟交换机实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • linux常用命令
    1、ls命令:查看文件与目录的命令ls查看当前文件夹下的文件目录(不包含隐藏文件)-a或--all查看当前文件夹下的所有文件目录(包含隐藏文件)-c以更改时间排序,显示文件和......
  • 虚拟机的防火墙处理
      每过段时间就要去网上搜一下,还不如放我自己这儿,省的去试错。查看firewall服务状态:systemctlstatusfirewalld开启:servicefirewalldstart重启:servicefirewalld......
  • 多线程多进程拷贝文件Linux&c
    多进程拷贝文件1.Linux环境中,c语言我们利用的是fork()函数来创建新进程,通过wait()和waitpid()等函数来等待阻塞进程,通过exit()函数来结束进程。2.我在单进程中,用的是whil......
  • Linux 循环,格式以及使用方法
    ​for循环:(每读取一行在字符串下面添加#号)[root@localhost]#cat/etc/passwd|awk-F':''{print$3}'|tail-5>test1.txt[root@localhost]#cattest1.txt98972......
  • Linux安全
    一、Linux防火墙firewalld1.1、firewalld概述支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具工作在网络层支持IPv4、IPv6防火墙设置以及以太网桥......
  • linux 如何使用sh自动输入用户名和密码,并执行命令?
    因为工作需要,需要进入到内部设备执行命令 解决:1.复杂情况,需要输入账号密码和命令。#!/bin/bashlogin_sh(){{sleep1echo......
  • 【记录】配置linux python远程开发环境
    1、安装miniconda下载minicondawgethttps://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh安装minicondabashMin......