virt-ls

virt-ls可以列出虚拟机中目录下的文件或目录,用法如下

12

virt-ls [--options] -d domname dir [dir ...]virt-ls [--options] -a disk.img [-a disk.img ...] dir [dir ...]

1

virt-ls -d centos2 /etc/

可以像使用ls一样加一些参数,如-l等,具体请看virt-ls

--help

virt-what

virt-what可以用来检测当前系统是不是一个虚拟机,如果不是虚拟机,执行virt-what将不会有任何输出,如果是虚拟机,它会打印一系列关于虚拟机的’facts’(如kvm)

virt-what命令由同名包提供,要命令需要先安装(yum -y install virt-what)

virt-cat

virt-cat可以虚拟机中文件的内容,用法如下

12

virt-cat [--options] -d domname file [file ...]virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]

1

virt-cat -d centos2 /etc/passwd

domname可以通过virsh list得到

也可以对虚拟机的磁盘文件操作

1

virt-cat -a /opt/images/centos2.img /etc/passwd

virt-edit

这个命令可以修改

12

virt-edit [--options] -d domname file [file ...]virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]

例如

1

virt-edit -d centos2 /etc/passwd

在我的系统中它会用vim打开文件,编辑完保存即可修改虚拟机内的文件内容

也可以直接对虚拟机的磁盘文件进行操作

1

virt-edit -a /opt/images/centos2.img /etc/passwd

Note: 如果虚拟机正在运行,使用第一种文件修改它的文件会有下面的报错

12345

Libguestfs: error: error: domain is a live virtual machine.Writing to the disks of a running virtual machine ca cause disk corruption.Either use read-only access, or if the guest is running the guestfsd daemonspecify live access. In most libguestfs tools these options are --ro or--live respectively. Consult the documentation for further information.

但直接对虚拟机磁盘镜像文件操作不会有这个提示,并且可以修改成功,会不会出问题我就不知道了

virt-copy-out

virt-copy-out这个命令可以把虚拟机里的文件复制出来, 用法如下

12

virt-copy-out -d domname file|dir [file|dir ...] localdirvirt-copy-out -a disk.img file|dir [file|dir ...] localdir

例子

1

virt-copy-out -d centos2 /etc/passwd .

可以是多个文件或目录

12

mkdir tmpvirt-copy-out -d centos2 /etc /home /root/.bashrc tmp

也可以直接对虚拟机磁盘文件操作,只需要将-d domname换成-a

path_of_disk_file

virt-copy-in

virt-copy-in是将文件复制到虚拟机里面,用法和virt-copy-out基本相同,这里只举一个例子

1

virt-copy-in -d centos2 test.txt /opt/

不出你的所料,如果虚拟机正在运行,上面的命令也会报错

virt-df

这个命令是比较简单了,就是将在虚拟机中执行df命令的结果输出

12

virt-df -d centos2virt-df -a /opt/images/centos2.img

可以加-h参数以human-readable显示

virt-alignment-scan

旧的操作系统安装时会使用不对齐的分区,这会引起一些不必要的I/O,这个命令的作用是检查是否正在不对齐的问题,如果存在,只是警告(Warns)你,当前这个工具不会帮你解决这个问题

1

virt-alignment-scan -d centos2

输出类似这样

1

/dev/sda1 1048576 1024K ok

virt-inspector2

这个命令可以显示虚拟机的操作系统版本和其它一些信息,包含的信息非常多,用法非常简单

1

virt-inspector2 -d centos2

输出类似这样

123456789

/dev/sda1linuxx86_64...there are too many...

virt-resize

virt-resize可以调整虚拟机磁盘的大小,调整或删除任何分区

virt-resize不可以就地调整磁盘,不应该对正在运行的虚拟机进行磁盘调整,为了确保一致性,调整先需要关闭虚拟机

virt-resize调整的过程非常慢,从35G的磁盘进行扩展需要差不多10分钟

virt-resize调整所花的时候只和开始磁盘的大小有关,从35G扩展到40G和扩展到135G所花的时间差不多

如果你使用qcow2磁盘格式,个人建议先转成raw,调整完后再转回去,因为直接对qcow2做调整,比较35G的qcow2磁盘镜像文件可能只有1G大小(ls查看),通过virt-resize调整后就会变成35G大小了(ls查看)(也可能是我的方法不对),先转成raw调整完大小后再转回去可以避免这个问题

概要

1

2

3

virt-resize [--resize /dev/sdaN=[+/-][%]]

[--expand /dev/sdaN] [--shrink /dev/sdaN]

[--ignore /dev/sdaN] [--delete /dev/sdaN] [...] indisk

outdisk

示例1.给一个分区增加5G

首先关闭虚拟机

1

virsh destroy centos2

查看分区情况

1

virt-filesystems --long -h --all -a /opt/images/centos2.img

1

2

3

4

Name Type VFS Label MBR Size Parent

/dev/sda1 filesystems ext4 - - 35G -

/dev/sda1 partition - - 83 35G /dev/sda

/dev/sda device - - - 35G -

把qcow2格式的磁盘镜像转成raw

1

2

3

cd /opt/images

cp centos2.img centos2.img.orig

qemu-img convert -f qcow2 -O raw centos2.img

centos2.raw

利用truncate创建一个新的文件,大小比centos2.raw大5G

1

2

truncate -r centos2.raw newdisk

truncate -s +5G newdisk

开始调整

1

virt-resize --expand /dev/sda1 centos2.raw newdisk

你应该看到类似这样的信息

1

2

3

4

5

6

7

8

9

10

11

Examining centos2.img.raw ...

Summary of changes:

/dev/sda1: This partition will be resized from 35.0G to

40.0G. The

filesystem ext4 on /dev/sda1 will be expanded using the

'resize2fs'

method.

**********

Setting up initial partition table on newdisk

...

Copying /dev/sda1 ...

然后是持续好久的刷屏信息,好在有倒计时

最后应该看到类似下面的信息

1

2

3

4

Expanding /dev/sda1 using the 'resize2fs' method ...

Resize operation completed with no errors. Before deleting

the old

disk, carefully check that the resized disk boots and

works correctly.

调整完后转回qcow2格式

1

qemu-img convert -f raw -O qcow2 centos2.raw centos2.qcow2

虚拟机里面不用再做操作,现在使用新的磁盘镜像文件启动虚拟机应该可以看到/dev/sda1已经从35G变为40G了

分区的缩减我们一般用不到,没有做测试,lvm的调整可以参考这里

virt-install

virt-install命令由python-virtinst

提供,需要安装python-virtinst才可以使用virt-install

1

yum -y install python-virtinst

安装例子

virt-install \

--name kvm-test-centos-6.2-x64 \

--ram 1024 \

--vcpus 4 \

--cdrom /opt/isos/CentOS-6.2-x86_64-bin-DVD1.iso \

--network bridge:virbr0 \

--vnc --vncport=5910 --vnclisten=localhost \

--disk /opt/images/kvm-test-centos-6.2-64bit.img,size=20

如果磁盘文件不存在,会自动创建(需要size参数),默认创建是raw磁盘镜像,可以用qemu-img手动创建磁盘文件

qemu-img create -f raw kvm-test-centos-6.2-64bit.img 20G

这里磁盘格式常见的有两种,raw和qcow2(还有qed正在开发中,据说性能更好)

raw的读写性能要比qcow2好,但如果你需要快照等高级特性,可以选择qcow2

如果使用qcow2,加上preallocation性能会有所提升

qemu-img create -f qcow2 -o preallocation=metadata kvm-test-centos-6.2-64bit.img 20G

不同的bus类型,cache类型和aio选择都会有性能有影响,所以你可希望把这些也加进去,格式类似这样

...

--disk path=/opt/images/kvm-test-centos-6.2-64bit.img,size=20,bus=virtio,cache=none,aio=threads,format=qcow2 \

...

这里可供选择的参数有

bus: virtio, ide

cache: unsafe, none, writeback, writethrough, directsync

aio: threads, native

不同的网卡驱动类型会影响到虚拟机的网络性能,可以这样指定

...

--network bridge:virbr0,model=e1000 \

...

可供选择的参数有

# 可以通过qemu-system-x86_64 -net nic,model=?查到支持的参数

model: ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

virbr0是系统自动创建的桥,可以手动创建桥接设备然后指定虚拟机使用

如果你的虚拟机是windows并且想使用virtio做为硬盘驱动和网卡驱动,你需要下载两个驱动文件 这两个文件可以从这里下载

磁盘驱动

网卡驱动

virt-install \

--name kvm-test-win2003 \

--ram 1024 \

--vcpus 1 \

--cdrom /opt/isos/cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1_X13-47314.iso \

--network bridge:virbr0,model=virtio \

--vnc \

--disk path=/opt/images/kvm-test-win2003.img,bus=virtio,cache=none,format=qcow2,size=20 \

--disk path=/opt/drivers/virtio-win-1.1.16.vfd,device=floppy \

--disk path=/opt/drivers/virtio-win-0.1-12.iso,device=cdrom,perms=ro

如果不出问题,应该可以看到安装窗口了(需要安装virt-viewer)

如果没有安装virt-viewer或者你在没有安装图形的服务器上操作 你仍然可以通过以下方法访问到安装窗口

vncviewer vnclisten:vncport

前面的–vnclisten就不能写localhost了

第二种方法是:

virt-viewer --connect qemu+ssh://user@ip_address:port/system name_of_instance

kickstart安装也可以用在virt-install中

yum -y install httpd

mkdir /var/www/centos

mount -o loop /opt/isos/CentOS-6.2-x86_64-bin-DVD1.iso /var/www/centos

cp /root/ks.cfg /var/www/centos

/etc/init.d/httpd restart

virt-install \

--name kvm-test-centos-6.2-x64 \

--ram 1024 \

--vcpus 4 \

--location http://192.168.122.1/centos/

--network bridge:virbr0 \

--vnc --vncport=5910 --vnclisten=localhost \

--disk /opt/images/kvm-test-centos-6.2-64bit.img,size=20

--extra-args "ks=http://192.168.122.1/ks.cfg ip=192.168.122.10 ip=192.168.122.10 netmask=255.255.255.0 gateway=192.168.122.1 dns=8.8.8.8"

安装好之后,就可以使用virsh对虚拟做一些操作了

virt-install的更多参数可以参考这里

linux shrink dev sd,Virt相关命令(转)相关推荐

  1. oracle 格式化命令,Linux下硬盘格式化的相关命令Partprobe

    Linux下硬盘格式化的相关命令Partprobe [root@db ~]# fdisk /dev/sdb The number of cylinders for this disk is set t ...

  2. linux轮训创建文件夹,Linux文件和目录管理相关命令(三)

    通过前两篇的文章分享大家是否对Linux文件和目录管理的相关命令有所了解了呢?今天小编将继续为大家带来Linux文件和目录管理相关命令的第三篇文章,想要做Linux运维工程师的小伙伴,来看一看,希望能 ...

  3. linux实验二目录与文件查看相关命令,Linux文件和目录管理相关命令(二)

    今天小编将继续为大家带来Linux文件和目录管理相关命令的文章,想要做Linux运维工程师的小伙伴,来看一看,希望能对你有帮助哦~ 一 查看文件内容 上面提到的一些命令例如ls只是用来显示文件的属性与 ...

  4. Linux查询端口和进程相关命令

    Linux查询端口和进程相关命令 https://www.cnblogs.com/zjdxr-up/p/8408885.html 香吧香 博客园 首页 联系 管理随笔 - 247 文章 - 4 评论 ...

  5. Linux虚拟机的启动及相关命令

    Linux虚拟机的启动及相关命令 1.Linux是什么?作为一名初学者,我之前也简单的认为它是一个类似Windows的操作系统,但后来经过进一步学习,才知道,Linux是内核,Linux内核加上GUN ...

  6. linux添加源ip路由命令,linux添加ip、路由相关命令

    1- Linux添加永久路由 vi /etc/sysconfig/network-scripts/route-eth1 ADDRESS0=192.168.10.0 NETMASK0=255.255.2 ...

  7. linux下常见的网络相关命令

    linux中环境部署.网络排查要用到非常多的命令,掌握一些核心的相关命令非常有必要.下面介绍几个工作和面试中高频提及的网络相关命令. ifconfig ifconfig 是一个用来查看.配置.启用或禁 ...

  8. Linux查看所有用户与住目录,Linux查看所有用户的相关命令

    1.Linux里查看所有用户 (1)在终端里.其实只需要查看 /etc/passwd文件就行了. (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户. 或者用cat /etc/p ...

  9. Linux下/dev/null 21 相关知识说明

    在学习Linux的过程中,常会看到一些终端命令或者程序中有 ">/dev/null 2>&1" 出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者 ...

  10. Linux下 /dev/null 21 相关知识说明

    在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者g ...

最新文章

  1. activemq的学习,第一篇
  2. facade-门面模式
  3. cloudera hbase集群简单思路
  4. Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程!
  5. golang之包和锁的机制
  6. “全能”选手—Django 1.10文档中文版Part1
  7. centos安装mysql密码_centos 安装mysql并设置密码
  8. EnumSet详细讲解
  9. #386. 【UNR #3】鸽子固定器
  10. 红帽linux cd命令,redhat linux 文件操作
  11. mysql必须的组件_mysql innodb的重要组件
  12. LeetCode 692. 前K个高频单词(优先队列)
  13. (220)FPGA内部组成LUT介绍
  14. 来自读者的面试题:谈谈Spring用到了哪些设计模式?
  15. 数字金融欺诈行为名词表
  16. linux tcp socket 接收的字节数与发送的字节数不符,TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系...
  17. facet与compiler不匹配
  18. 通用crt更新不适用计算机,Office2016安装提示需要通用补丁CRT(KB2999226)
  19. 单片机定时器一1ms12MHz_51单片机CPU结构各部件的原理详细分析
  20. 迪厅装修后地板清洁与保养

热门文章

  1. MongoDB文件服务器搭建
  2. [京喜]卡红包实现真正0.01买东西
  3. 开源网上商城程序(简介国内外开源网店系统)
  4. Spring源码学习(十八)---基于注解配置Aop的aspectj-autoproxy解析
  5. 【Git】3、创建Git版本库、配置Git仓库用户邮箱信息
  6. python中seaborn报错These `style` levels are missing dashes解决办法
  7. nbiot电信平台android,nbiot之bc26 连接电信网联网平台
  8. GSP算法与SPADE算法
  9. 不多不少,大学里必做的五件事(从我的大一说起)
  10. word段落每行首字怎么对齐_怎样使word文章段落乖乖对齐!一个设置就行!