热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

KVM虚拟机的安装

1、首先用命令egrep-c(vmx|svm)/proc/cpuinfo检查看是否支持虚拟如果返回0则表示CPU不支持虚拟,这样安装会不成功,如果返回结果为1或者大于1到数字则表示CPU支持虚拟。也可以用命令kvm-ok查看CPU支持虚拟不。2、在bios里面到高级选项里面开启虚拟,即将
1、首先用命令egrep -c '(vmx|svm)' /proc/cpuinfo检查看是否支持虚拟如果返回0则表示CPU不支持虚拟,这样安装会不成功,如果返回结果为1或者大于1到数字则表示CPU支持虚拟。也可以用命令kvm-ok查看CPU支持虚拟不。

2、在bios里面到高级选项里面开启虚拟,即将Virtualization technology(或者是Vanderpool technology)该为enable

3、确保内核版本支持kvm,用命令uname -r查看内核版本,如果在2.6.20以下的linux版本,需升级内核,用命令uname -m查看运行到系统到内核时多少位到,如果返回为x86_64表示你到系统运行到内核时64位。用命令egrep -c ' lm ' /proc/cpuinfo查看你到CPU是否时64位的,如果返回0表示你到CPU不时64位到,否则返回1或者更高数字表示你到CPU时64位。

4、安装kvm
sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils 安装成功后会有/dev/kvm,再来查看下KVM是否安装成功,执行:virsh -c qemu:///system list
  如果输入结果像下面这样的,那么成功了:
  Connecting to uri: qemu:///system
  Id Name State
  ----------------------------------
可以用以下命令来检查是否装入kvm模块:
  /sbin/lsmod | grep kvm
  如果输出关于kvm版本的信息则已装入kvm模块
如果是在图形界面管理kvm则可以安装管理工具sudo apt-get install virt-manager

5、在kvm下安装虚拟机
先要用kvm-img命令创建一个虚拟磁盘,mkdir /home/xiaoyu/kvm, cd kvm, kvm-img create -f qcow2 ubuntu.img 10G //-f qcow2 的意思是创造一个文件 ,最大大小是10G
create意思是创建一个新的磁盘,-f指定该磁盘的类型这里选择qcow2,qemu的磁盘大小是随着需要可以自动的增大的,所以初始可以选择小点。(此处也可以用旧的命令qemu-img来创建,如果qemu-img create -f qcow2 ubuntu.img 10G)

虚拟磁盘创建好了,我们就可以安装系统了,无论386还是64位的机器都用kvm命令
kvm -m 1024 -drive file=/home/cbpos/kvm/ubuntu.img,cache=writeback -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot d (-vnc IP:1) -cdrom /home/cbpos/ubuntu-10.04.2-server-amd64.iso -no-acpi
-drive file cache=writeback指定了虚拟磁盘文件,这里用我们刚刚创建的ubuntu.img,并启用writeback缓存
model=virtio  通过virtio(高速网络)来使用网络,速度可以接近真实网卡的速度,以后在启动虚拟机命令后面加上-net nic,model=virtio就可以了。
-cdrom指定cdrom是那一个,可以用iso文件,也可以用机器的光驱,我们选择用iso文件,如果用光驱尝试-cdrom /dev/cdrom
-boot指定XP启动的时候从磁盘,硬盘,光驱还是网路上启动,我们安装的时候选择从光盘启动,所以用d
-m虚拟机使用的内存大小,单位是MB,默认是128mb,我用的是1024,因为我内存大,呵呵。
-no-acpi由于qemu支持不太好会导致系统很慢,所以我们暂时禁止掉。
注意:按照以往的方法是用-hda /home/cbpos/kvm/ubuntu.img的方法来使用虚拟磁盘,现在版本更新以后用 -drive file=/home/cbpos/kvm/ubuntu.img,cache=writeback来使用虚拟磁盘,因为-hda/hdb参数主要是用户使用物理硬盘上的一个分区,这样磁盘性能不好。
-vnc IP:3389 IP是主机的IP地址,3389是端口号,这样用户可以远程桌面或者用ubuntu自带到终端服务客户断连接到虚拟机安装系统。(此选项一般不要)

如果有需要用图形界面管理虚拟机则可以安装图形界面工具sudo apt-get install virt-manager
注意:
如果时在服务器里安装虚拟系统可能会出现Could not initialize SDL - exiting到问题,则需要在终端中用命令ssh -X user@server登录到服务器,然后在安装虚拟系统。

6、kvm安装好虚拟系统后就可以启动系统(使用qemu-system-x86_64启动虚拟系统,效率及其低下,换用kvm启动虚拟系统就OK)。
使用root帐号启动虚拟机,命令如下:
kvm -m 1024 -drive file=/home/cbpos/kvm/ubuntu.img,cache=writeback -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -nographic -daemonize 来boot启动系统。(-boot c表示从硬盘启动)
注意:-nographic -daemonize是当主机时服务器,没有图形界面时,让虚拟机在后台运行,然后通过ssh连接虚拟机,操作使用虚拟机。
启动虚拟机到时候如果出现一下警告:
warning: could not configure /dev/net/tun: no virtual network emulation
可能是没有用root帐号启动虚拟机,也可能需要更改/dev/net/tun到权限
sudo chmod 666 /dev/net/tun

用kvm启动虚拟机时如果出现以下错误
pci_add_option_rom:failed to find romfile "pxe-rtl8139.bin" 这是因为我们还需要安装kvm-pxe,sudo apt-get install kvm-pxe
但是往往会出错误,Q: qemu: could not load PC BIOS 'bios.bin'A: 请先安装qemu 0.12.3 和qemu-common ,就可以解决,最核心的问题在于 qemu-common 提供系统启动所需
要的 bios.bin,video.bin等。

7、当关闭虚拟机以后会将主机到虚拟机所对应到tap端口关闭,如果重新启动该虚拟机后ping不通该虚拟机则需要在主机用命令sudo ifconfig tap0 up启动tap端口,再用命令sudo /etc/init.d/networking restart重新启动网络服务就好了(这里假设该虚拟机对应的是tap0)。

8、要注意,系统重启后要重新加载kvm内核模块:
sudo modprobe kvm
sudo modprobe kvm-amd   //如果使用AMD处理器
sudo modprobe kvm-intel   //如果是用INTEL处理器
当然,你也可以修改系统相关设置在启动时自动加载该模块,方法时在/etc/modules中添加下面两行,使系统启动的时候自动读入kvm,kvm-intel模块
引用(intel):
kvm
kvm-intel

或者(AMD)
引用:
kvm
kvm-amd 。

9、设置自动开机启动虚拟机
只需编辑/etc/init.d/rc.local文件,在最后加上你的脚本即可。
比如:我已经编写了一个脚本posftp.sh,存放在/home/posserver/Desktop/ 下面
在终端输入 gedit /etc/init.d/rc.local编辑文件,在结尾出加入:
/home/posserver/Desktop/posftp.sh 即可开机自动加载脚本


推荐阅读
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 一文详解Linux
    Linuxnetfilter与VRF实验环境如下图所示:配置如下:#!binbashsudoipnetnsaddns1sudoiplinkaddns1veth1typevethpe ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
author-avatar
蜜小嘟_546
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有