How to install KVM on Ubuntu 16.04 LTS Headless Server

How to install KVM on Ubuntu 16.04 LTS Headless Server
in Categories Linux KVM,Ubuntu Linux,Virtualization last updated February 9,2018
Kernel-based Virtual Machine (KVM) is a virtualization module for the Linux kernel that turns it into a hypervisor. How can I install KVM with bridged networking,setup guest operating system as the back-end virtualization technology for non-graphic Ubuntu Linux 16.04 LTS server?

You can use KVM to run multiple operating systems such as Windows,*BSD,Linux distro using virtual machines. Each virtual machine has its private disk,graphics card,a network card and more.

Steps for installing KVM on Ubuntu Linux 16.04 LTS server
The host server located in the remote data center and it is a headless server.
All commands in this tutorial typed over the ssh based session.
You need a vnc client to install the guest operating system.
In this tutorial,you will learn how to install KVM software on Ubuntu 16.04 LTS server and use KVM to setup your first guest VM.
Steps to install KVM on Ubuntu Linux 16.04 LTS headless sever
Step 1: Install kvm
Type the following apt-get command/apt command:
$ sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker

Step 2: Verify kvm installation
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Step 3: Configure bridged networking
sudocp/etc/network/interfaces/etc/network/interfaces.bakup1july2016 sudo vi /etc/network/interfaces

Edit/append as follows:

auto br0
iface br0 inet static
address 10.18.44.26
netmask 255.255.255.192
broadcast 10.18.44.63
dns-nameservers 10.0.80.11 10.0.80.12
# set static route for LAN
post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1
post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

# br1 setup with static wan IPv4 with ISP router as a default gateway
auto br1
iface br1 inet static
address 208.43.222.51
netmask 255.255.255.248
broadcast 208.43.222.55
gateway 208.43.222.49
bridge_ports eth1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
Save and close the file. Restart the networking service,enter:
$ sudo systemctl restart networking

Verify it:
$ sudo brctl show

Step 4: Create your first virtual machine
I am going to create a CentOS 7.x VM. First,grab CentOS 7.x latest ISO image:
cd/var/lib/libvirt/boot/ sudo wget https://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso

CREATE CENTOS 7 VM
In this example,I’m creating CentOS 7.x VM with 2GB RAM,2 CPU core,2 nics (1 for lan and 1 for wan) and 40GB disk space,enter:
$ sudo virt-install \
–virt-type=kvm \
–name centos7 \
–ram 2048 \
–vcpus=2 \
–os-variant=centos7.0 \
–virt-type=kvm \
–hvm \
–cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1708.iso \
–network=bridge=br0,model=virtio \
–network=bridge=br1,model=virtio \
–graphics vnc \
–disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

To configure vnc login from another terminal over ssh and type:
$ sudo virsh dumpxml centos7 | grep vnc

You can also use the following command:
$ sudo virsh vncdisplay centos7

Please note down the port value (i.e. 5901). You need to use an SSH client to setup tunnel and a VNC client to access the remote vnc server. Type the following SSH port forwarding command from your client/desktop:
$ ssh vivek@server1.cyberciti.biz -L 5901:127.0.0.1:5901

Once you have ssh tunnel established,you can point your VNC client at your own 127.0.0.1 (localhost) address and port 5901 as follows:

Fig.0 : VNC client to complete CentOS 7.x installation
Fig.01 : VNC client to complete CentOS 7.x installation

You should see CentOS Linux 7 guest installation screen as follows:
Fig.02: CentOS 7.x installation on KVM based VM
Fig.02: CentOS 7.x installation on KVM based VM

Now jist follow on screen instructions and install CentOS 7. Once installed,go ahead and click reboot button. The remote server closed the connection to our VNC client. You can reconnect via KVM client to configure the rest of the server including SSH based session or firewall.
CREATE FREEBSD 10.X OR 11.X VM
In this example,I’m creating FreeBSD 10 VM with 2GB RAM,enter:
cd/var/lib/libvirt/boot/ sudo wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-disc1.iso
$ sudo virt-install \
–virt-type=kvm \
–name freebsd \
–ram 2048 \
–vcpus=2 \
–os-variant=freebsd11.1 \
–virt-type=kvm \
–hvm \
–cdrom=/var/lib/libvirt/boot/FreeBSD-11.1-RELEASE-amd64-disc1.iso \
–network=bridge=br0,model=virtio \
–graphics vnc \
–disk path=/var/lib/libvirt/images/freebsd10.qcow2,format=qcow2

In this example,I’m creating FreeBSD 11 VM with 1GB RAM (expandable to 2GB),1 vCPU core (expandable to 2vCPU),1 nic and 40GB disk space,enter:
$ sudo virt-install \
–virt-type=kvm \
–name freebsd \
–memory=1024,maxmemory=2048 \
–vcpus=1,maxvcpus=2 \
–os-variant=freebsd10.0 \
–virt-type=kvm \
–hvm \
–cdrom=/var/lib/libvirt/boot/FreeBSD-11.0-RELEASE-amd64-disc1.iso \
–network=bridge=br0,model=virtio \
–graphics vnc \
–disk path=/var/lib/libvirt/images/freebsd11.qcow2,format=qcow2

To configure vnc login from another terminal over ssh and type:
$ sudo virsh dumpxml freebsd | grep vnc

Please note down the port value (i.e. 5902). You need to use an SSH client to setup tunnel and a VNC client to access the remote vnc server. Type the following SSH port forwarding command from your client/desktop:
$ ssh vivek@server1.cyberciti.biz -L 5902:127.0.0.1:5902

Once you have ssh tunnel established,you can point your VNC client at your own 127.0.0.1 (localhost) address and port 5902 to continue with FreeBSD 10.3 installation.

CREATE OPENBSD 5.9 VM
In this example,I’m creating OpenBSD 5.9 VM with 2GB RAM,enter:
cd/var/lib/libvirt/boot/ sudo wget https://mirror.esc7.net/pub/OpenBSD/6.2/amd64/install62.iso
$ sudo virt-install \
–virt-type=kvm \
–name openbsd \
–ram 2048 \
–vcpus=2 \
–os-variant=openbsd5.8 \
–virt-type=kvm \
–hvm \
–cdrom=/var/lib/libvirt/boot/install62.iso \
–network=bridge=br0,model=virtio \
–graphics vnc \
–disk path=/var/lib/libvirt/images/openbsd59.qcow2,format=qcow2

To configure vnc login from another terminal over ssh and type:
$ sudo virsh dumpxml openbsd | grep vnc

Please note down the port value (i.e. 5903). You need to use an SSH client to setup tunnel and a VNC client to access the remote vnc server. Type the following SSH port forwarding command from your client/desktop:
$ ssh vivek@server1.cyberciti.biz -L 5903:127.0.0.1:5903

Once you have ssh tunnel established,you can point your VNC client at your own 127.0.0.1 (localhost) address and port 5903 to continue with OpenBSD 5.9 installation.

CREATE DEBIAN 9.X VM
In this example,I’m creating Debian 8.5 VM with 2GB RAM,enter:
cd/var/lib/libvirt/boot/ sudo wget http://mirrors.kernel.org/debian-cd/current/amd64/iso-dvd/debian-9.3.0-amd64-DVD-1.iso
$ sudo virt-install \
–virt-type=kvm \
–name=debina9 \
–ram=2048 \
–vcpus=2 \
–os-variant=debian8 \
–virt-type=kvm \
–hvm \
–cdrom=/var/lib/libvirt/boot/debian-9.3.0-amd64-DVD-1.iso \
–network=bridge=br0,model=virtio \
–graphics vnc \
–disk path=/var/lib/libvirt/images/debian8.qcow2,format=qcow2

To configure vnc login from another terminal over ssh and type:
$ sudo virsh dumpxml debian8 | grep vnc

Please note down the port value (i.e. 5904). You need to use an SSH client to setup tunnel and a VNC client to access the remote vnc server. Type the following SSH port forwarding command from your client/desktop:
$ ssh vivek@server1.cyberciti.biz -L 5904:127.0.0.1:5904

Once you have ssh tunnel established,you can point your VNC client at your own 127.0.0.1 (localhost) address and port 5904 to continue with Debian Linux 8.5 installation.

Useful commands
Let us see some useful commands.

Find the list of the accepted OS variants
osinfoqueryos|less osinfo-query os | grep debian
$ osinfo-query os | grep freebsd

List a running vms/domains
$ sudo virsh list

Shutodwn a vm/domain called openbsd
$ sudo virsh shutdown openbsd

Start a vm/domain called openbsd
$ sudo virsh start openbsd

Suspend a vm/domain called openbsd
$ sudo virsh suspend openbsd

Reboot (soft & safe reboot) a vm/domain called openbsd
$ sudo virsh reboot openbsd

Reset (hard reset/not safe) a vm/domain called openbsd
$ sudo virsh reset openbsd

Delete/remove a vm/domain called openbsd
sudovirshundefineopenbsd sudo virsh destroy openbsd

To see a complete list of virsh command type
virshhelp|less virsh help | grep reboot

This entry is 2 of 4 in the Linux KVM Cloud Computing/VM Tutorial series. Keep reading the rest of the series:
How to install KVM on CentOS 7 / RHEL 7 Headless Server
How to install KVM on Ubuntu 16.04 LTS Headless Server
How to install KVM server on Debian Linux 9 Headless Server
How to reset root password for Linux KVM VM
Posted by: Vivek Gite
The author is the creator of nixCraft and a seasoned sysadmin,DevOps engineer,and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin,Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

GOT FEEDBACK? CLICK HERE TO JOIN THE DISCUSSION# 欢迎使用Markdown编辑器写博客

本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:

  • Markdown和扩展Markdown简洁的语法
  • 代码块高亮
  • 图片链接和图片上传
  • LaTex数学公式
  • UML序列图和流程图
  • 离线写博客
  • 导入导出Markdown文件
  • 丰富的快捷键

快捷键

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

本编辑器支持 Markdown Extra, 扩展了很多好用的功能。具体请参考Github.

表格

Markdown Extra 表格语法:

项目 价格
Computer $1600
Phone $12
Pipe $1

可以使用冒号来定义对齐方式:

项目 价格 数量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234

定义列表

Markdown Extra 定义列表语法:
项目1
项目2
定义 A
定义 B
项目3
定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:

@requires_authorization
def somefunc(param1='',param2=0):
    '''A docstring'''
    if param1 > param2: # interesting
        print 'Greater'
    return (param2 - param1 + 1) or None
class SomeClass:
    pass
>>> message = '''interpreter ... prompt'''

脚注

生成一个脚注1.

目录

[TOC]来生成目录:

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为: Γ(n)=(n1)!n
  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0 张三 张三 李四 李四 嘿,小四儿,写博客了没? 李四愣了一下,说: 忙得吐血,哪有时间写。

或者流程图:

开始 我的操作 确认? 结束 yes no
  • 关于 序列图 语法,参考 这儿,
  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下问题
    1. 不支持离线功能
    2. IE9不支持文件导入导出
    3. IE10不支持拖拽文件导入
  1. 这里是 脚注内容.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预编译版,总体过程感觉还是挺简单的,但是由于在网上找的参考资料并没有和自己遇到的情况完全一样的,所以把自己的安装过程记录下来,方便和自己一样的后来人进行安装,同时也自己作个记录留作备忘。其实预编译版的CARLA本身几乎不用什么命令行进行安装,主要步骤只有解压缩和拷贝文件,和极少的命令行安装操作。但是相关依赖以及其它的CARLA所使用的一些工具需要一起安装好,下面一起来看看安装步骤吧。_ubuntu22.04安装carla
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载Ubuntu 20 安装包_ubuntu20下载
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装rally, pip3 install -r requirements.txt 时提示如下: 说明openssl 已安装。解决:1. pip3 install --upgrade pip , 结果输出如下 ..._error: command '/usr/bin/gcc' failed with exit code 1
文章浏览阅读1.1k次。自己刚踩坑装好的W11 WSL2 miniconda_wsl2 cuda
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standalone的,会有一点区别(不识别 下面的 -localhost no)上面的命令会在~/.vnc/目录下生成一个 passwd文件。具体端口号,可以查看vncserver -list返回结果中的RFB PROT。作用是vncserver启动的时候运行这些命令,把桌面程序启动起来。如果希望用某个用户比如 demo登录,就用su切换到这个用户。桌面版默认就已安装,服务器版需要手动安装,并启动。关闭某个会话可以用下面的命令。远程地址输入ip:port。查看全部的vnc会话。_ubuntu vncserver
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主要是连接一个远程的code-server服务,code-server服务安装在什么系统,调用的就是什么系统的环境,如这里使用ubuntu进行安装code-server,那使用的就是ubuntu环境,如需要go,python,java开发,需要在Ubuntu安装相关环境,创建的文件夹和项目也是在Ubuntu里面.这种方式其实在访问vscode的时候利于可以随时随地进行连接使用,且不受设备影响。
安装Ubuntu上超好用的终端Terminator。通过添加软件源、更新源、安装Terminator等步骤完成。
文章浏览阅读1.1k次,点赞83次,收藏74次。不要嫌弃Ubuntu的单调的终端界面啦,快来试试这些有意思的命令_ubuntu系统有趣的玩法
文章浏览阅读2.5k次。在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。通过上面的信息可以看到,/dev/vda2 目录下还剩余45G,那么就可以把swap文件生成在/dev/vda2目录下。在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。# bs 为块的大小,count 创建多少个块。# 执行命令后,删除创建的swap目录即可。#把生成的文件转换成 Swap 文件。2、创建一个swap文件。_ubuntu20修改swap大小
文章浏览阅读2.9k次,点赞2次,收藏10次。记录RV1126的SDK编译错误,以及解决处理_command exited with non-zero status 1
文章浏览阅读1.1w次,点赞22次,收藏101次。【记录】ubuntu20.04安装nvidia显卡驱动_ubuntu20.04安装nvidia显卡驱动
文章浏览阅读727次,点赞6次,收藏27次。在嵌入式Linux开发过程中,可能遇到uboot无法通过nfs服务从Ubuntu下载系统镜像(TTTTTT)的问题。如果你使用的是较新版本的Ubuntu,那么其**默认内核将不支持nfs2**!而**uboot仅支持到nfs2**,因此我们需要修改系统内核以及nfs配置文件,开启nfs2服务。**此问题非常棘手**,因为问题出现的时间太近,并且使用的人少。由于是2023年后才出现的问题,**chatgpt也无法解答**!本文参考网络上多篇博客资料,是解决此问题的最新办法。
ubuntu系统下安装软件的方法有多种,包括使用apt工具、deb软件包安装、源码编译安装以及通过软件中心安装。还有一种以 .run 后缀的软件包也可以在ubuntu系统下安装。具体的安装方法可以通过百度搜索来获取。
文章浏览阅读814次。本篇目的:Xubuntu如何安装pkg-configpkg-config是一个计算机软件包,用于帮助开发人员查找、定位和使用依赖库。它通常用于构建软件时,开发人员需要指定程序所依赖的外部库的位置和版本信息。使用pkg-config,开发人员可以很容易地查找、检索和导出这些依赖库的信息,从而简化了软件的构建过程。_ubuntu中怎么下载pkg-config
文章浏览阅读2k次。ubuntu创建共享文件夹_ubuntu20.04共享文件夹
文章浏览阅读2.9k次,点赞74次,收藏73次。对于有长期远程桌面需求的用户,建议将cpolar套餐升级到专业套餐,支持配置固定的公网TCP端口,且带宽也会相应的增大,支持更高效便捷的远程桌面连接Ubuntu系统。【cpolar内网穿透支持http/https/tcp协议,支持永久免费使用,不限制流量,无需公网IP,也不用进入路由器设置,操作简单。隧道创建成功后,点击左侧仪表盘的状态——在线隧道列表,查看xrdp隧道的所生成的公网TCP端口地址,复制下来。,使用cpolar内网穿透映射3389端口,生成公网TCP端口地址,实现在公网环境下,_ubuntu 局域网桌面
文章浏览阅读3.2k次。而在linux的ubuntu版本中,又多出两类用户:安装ubuntu系统的源用户xxx,其与root具有相同权限,仅在执行命令时,前面加sudo。在ubuntu中,用命令deluser username可以直接删除用户账号及家目录,而用centos7中的命令userdel -r username才能达到同样目的。在ubuntu中,没有moduser命令,centos7中的usermod修改用户信息的命令,同样可以用在ubuntu中。在系统中,创建新的用户或称为账号,一般需要多步操作。_ubuntu创建一个新用户
文章浏览阅读1.6w次,点赞4次,收藏23次。系统的许多日志文件都存储在 /var/log 目录中。你可以使用 ls /var/log 命令来列出可用的日志文件。/var/log/Xorg.0.log:包含 X 服务器的日志信息(图形界面)。打开DASH,搜索日志或者log,打开app,这个是/var/log的界面版。这将显示系统日志的末尾,并提供有关系统崩溃和错误的信息。/var/log/kern.log:包含内核日志信息。/var/log/dmesg:包含开机时的日志信息。/var/log/syslog:包含系统日志信息。_ubuntu查看系统日志
文章浏览阅读857次。首先将source.list复制为source.list.bak备份,然后将source.list内容改为需要的镜像源列表即可。Ubuntu采用apt作为软件安装工具,其镜像源列表记录在/etc/apt/source.list文件中。本节均为 Ubuntu 20.04 的镜像源列表。若为其他版本,将所有focal更改为其他版本代号即可。_apt 国内源