1 命令汇总
file /bin/ls
sudo apt-get remove vim-common -y
sudo apt-get install vim -y
安装KVM
egrep -o '(vmx|svm)' /proc/cpuinfo
km-ok
sudo apt install qemu qemu-kvm libvirt-daemon-system libvirt-clients virt-manager virtinst bridge-utils libguestfs-tools -y
lsmod|grep kvm
service libvirtd status/start/stop/restart
/etc/init.d/libvirtd status/start/stop/restart
systemctl enable libvirtd 开机自启
modprobe -a kvm
modprobe -a kvm_intel
virt-manager
virsh net-create /etc/libvirt/qemu/networks/mynat100.xml
virsh net-define /etc/libvirt/qemu/networks/mynat100.xml
virsh net-autostart mynat100
virsh net-destroy default
virsh list --all
virsh define xxx.xml
virsh start xxx
virsh shutdown xxx
virsh destroy xxx
virsh undefine xxx
调试外部ssh工具(未完)
ps -e|grep ssh
apt-get install openssh-server
service sshd status/start/stop/restart
service sshd reload ?
ssh -l 用户名 本机ip
grep X11Forwarding /etc/ssh/sshd_config
yum list installed|grep xorg-x11*
创建虚拟机(iso)
virt-install --name centos7 \
--memory 1024 \
--vcpus 1 \
--cdrom=/home/zj/file/CentOS-7.0-1406-x86_64-DVD.iso \
--disk=/home/zj/images/centos7.qcow2 \
--network=bridge:virbr1,model=virtio
cd /home/zj/images/
qemu-img create -f qcow2 centos7.qcow2 10G
qemu-system-x86_64 -enable-kvm \
-name centos7 \
-m 1024 -smp 2 -boot d \
-drive file=/home/zj/images/centos7.qcow2,if=virtio,index=0,media=disk,format=qcow2 \
-drive file=/home/zj/file/CentOS-7.0-1406-x86_64-DVD.iso,index=1,media=cdrom
cd /home/zj/images/
qemu-img create -f raw centos7.raw 10G
qemu-system-x86_64 -enable-kvm \
-name centos7 \
-m 1024 -smp 2 -boot d \
-drive file=/home/zj/images/centos7.raw,if=virtio,index=0,media=disk,format=raw\
-drive file=/home/zj/file/CentOS-7.0-1406-x86_64-DVD.iso,index=1,media=cdrom
启动虚拟机(raw/qcow2)
qemu-system-x86_64 \
-hda /home/zj/images/centos7.qcow2 \
-m 2G
查看镜像信息
qemu-img info centos7.raw
2 centos
安装KVM
在进一步行动之前,首先需要检查你的 CPU 是否支持 KVM 虚拟化,确保你系统中有 VT-x( vmx)英特尔处理器或 AMD-V(svm)处理器。
你可以通过运行如下命令,如果输出值大于 0,那么虚拟化被启用。否则,虚拟化被禁用,你需要启用它:
egrep -c '(vmx|svm)' /proc/cpuinfo
km-ok,检查 VT 是否在 BIOS 中启用,若无此命令,yum install cpu-checker
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b5308ac0d6547a2b15c6d1224d151d4.png)
安装:
yum install qemu-kvm qemu-kvm-tools -y
yum groupinstall “Virtualization” -y
yum groupinstall “Virtualization Client” -y
yum groupinstall “Virtualization Platform” -y
yum groupinstall “Virtualization Tools” -y
yum install virt-manager libvirt -y
yum install libguestfs-tools -y
这几个组包包含很多,好像不用装这么多,精简版应该是:
yum install qemu qemu-kvm libvirt-daemon-system libvirt-clients virt-manager virtinst libguestfs-tools -y
查询是否安装成功
查看KVM安装:lsmod|grep kvm
出现kvm、kvm_intel(kvm_amd)才是成功,若没有可能是centos虚拟机创建时没有开启CPU虚拟化,解决办法参见下文。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6e53883a1e6f46a0aaf10db68199c275.png)
查看libvirt状态:service libvirtd status
![在这里插入图片描述](https://img-blog.csdnimg.cn/4d5bb5feca99495abaa7a417905402c7.png)
启动libvirt:/etc/init.d/libvirtd start
![在这里插入图片描述](https://img-blog.csdnimg.cn/6fe2a83c1b274effa355c48bd37e7ed1.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f87e925bd3f049b6a9f11b6663ab14d7.png)
安装镜像
查询由virsh define和virt-manager创建的虚拟机列表,由qemu-kvm安装启动的这里查不到。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d66fc96419fb4cf391087c8d32fb1fb7.png)
目前有三种方式:
第一:用虚拟化管理工具,即virt-manager,此方法识别不到硬盘,而且启停按钮不好用;
第二:用virsh install命令,未尝试,可能识别不到硬盘;
第三:用qemu-kvm命令,未尝试。
virt-manager方式
通过virt-manager命令打开虚拟化管理工具:
若centos有桌面,在虚拟机里执行就会自己打开,但该方式也有问题;
若是ssh客户端如xshell连接,执行该命令就会出现各种问题,目前未调好。详细信息参见
virsh install方式
qemu-kvm方式
3 ubuntu
下载参考博客
https://www.cnblogs.com/manongqingcong/articles/16623647.html
安装kvm博客
https://zhuanlan.zhihu.com/p/573578594
磁盘扩容
https://www.jianshu.com/p/dfbdb3949d93
安装完Ubuntu系统,有几方面必须解决的问题:
- root用户不知道密码:可用sudo passwd root改密码;
- root用户不能密码登录,只能普通用户su root切;
- Vim问题:上下左右键、esc、删除键不好用的问题,解决方案见下文;
- ssh无法连接;
修改ip
![在这里插入图片描述](https://img-blog.csdnimg.cn/e6dff8bbb68142daa47c2d9b7685b755.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a9efc3cfc2f426d8120518ca72677c1.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/21b3f5cbda324db58cd38c7b76e5125b.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c8c86ed1b8114234bdf781648b6799d5.png)
ssh连接
![在这里插入图片描述](https://img-blog.csdnimg.cn/57c0aaddc8994e40ab74d249cc48437c.png)
qcow2 xml定义
qcow2镜像定义文件,Ubuntu系统下需修改三个地方:machine/emulator/source/
![在这里插入图片描述](https://img-blog.csdnimg.cn/f089ae0017e64364bc53ecc62bee61ba.png)
安装依赖
在进一步行动之前,首先需要检查你的 CPU 是否支持 KVM 虚拟化,确保你系统中有 VT-x( vmx)英特尔处理器或 AMD-V(svm)处理器。
你可以通过运行如下命令,如果输出值大于 0,那么虚拟化被启用。否则,虚拟化被禁用,你需要启用它:
egrep -c ‘(vmx|svm)’ /proc/cpuinfo
km-ok,检查 VT 是否在 BIOS 中启用,若无此命令,apt install cpu-checker
![在这里插入图片描述](https://img-blog.csdnimg.cn/f2fb3866176a417592f5772726ea57ba.png)
sudo apt install qemu qemu-kvm libvirt-daemon-system libvirt-clients virt-manager virtinst bridge-utils libguestfs-tools -y
查看KVM安装:lsmod|grep kvm
查看libvirt状态:service libvirtd status
启动libvirt:/etc/init.d/libvirtd start
Libvirtd默认开机自启,可查看
![在这里插入图片描述](https://img-blog.csdnimg.cn/0927fce0b5fc4ac1b3e98967951aba27.png)
若不是,可自行设置:systemctl enable libvirtd
启动后可以看到网卡多了一个virbr0的网口,这个是libvirt默认的nat网口(默认IP是192.168.122.1),在更新的版本会发现有virbr0-nic、vnet0等网口,这些都是给虚拟机用的网口
![在这里插入图片描述](https://img-blog.csdnimg.cn/c120d8378c0649f0aea57fb8471b115a.png)
创建虚拟机(iso)
目前有三种方式:
第一:用虚拟化管理工具,即virt-manager,此方法识别不到硬盘,而且启停按钮不好用;
第二:用virsh install命令,此方法识别不到硬盘;
第三:用qemu-system-x86_64命令,可正常安装。
工具创建虚拟机(不建议)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad67e43a587443e59136ff3b0aa51bf0.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/4f80878574894becac9ff277fb774bae.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ebfc15e5112d4bd7ada48ddbf790402f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/cd952c85e4af42dc9863fe6a273f0377.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a4d21393bd134af281ac1d655f5f3a61.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/e41f8ecc2cd54c7db4eed07e185f913d.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/eb2ff90c3be24cd3a30a17eb20761d13.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/dd59bc58487f40c397eb9f9ea452265b.png)
点击Finish,弹出安装界面,通过上下键选择Install CentOS7
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a2c1de4acb54f3796fb2e4e4e21765b.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/4f22baf8d1cd49d5b6f2713459be3bae.png)
走到磁盘这里卡住了,创建时分了20G,但是此处不显示
![在这里插入图片描述](https://img-blog.csdnimg.cn/a2038613f4264e9c99d512a9d5430e94.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/abfbe11a842e415f9c277202519f25c3.png)
后来发现,这暂停、关机啥的都不好使。不建议使用virt-manage的管理端
![在这里插入图片描述](https://img-blog.csdnimg.cn/db93323c23e44d1f901655591e0b4411.png)
virsh install命令行创建虚拟机(不建议)
qemu-img create -f qcow2 centos7.qcow2 10G
virt-install --name centos7 \
--memory 1024 \
--vcpus 1 \
--cdrom=/home/zj/file/CentOS-7.0-1406-x86_64-DVD.iso \
--disk=/home/zj/images/centos7.qcow2 \
--network=bridge:virbr1,model=virtio
![在这里插入图片描述](https://img-blog.csdnimg.cn/7c055f83cb214e3bb3cbc0899108ecc8.png)
同工具创建一样,识别不到磁盘
qemu-system-x86_64命令行创建虚拟机
root@ubuntu:/opt/images/centos7
root@ubuntu:/opt/images/centos7
--memory 1024 \
--vcpus 1 \
--cdrom=/opt/images/centos7/CentOS-7.0-1406-x86_64-DVD.iso \
--disk=/opt/images/centos7/centos7.raw \
--network=bridge:virbr1,model=virtio
root@ubuntu:/opt/images/centos7
-name centos7 \
-m 1024 -smp 2 -boot d \
-drive file=/opt/images/centos7/centos7.raw,if=virtio,index=0,media=disk,format=raw \
-drive file=/opt/images/centos7/CentOS-7.0-1406-x86_64-DVD.iso,index=1,media=cdrom
iso安装成功后,对应的raw或者qcow2格式的磁盘,都可作为一个基础的镜像,直接拷贝和发给别人,直接启动虚拟机即可,省去重复iso安装过程。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4497852107d6441daafc8c6d3d8d535e.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/58dc70e152e84a1cbf4d8149d2b990a0.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/ce17c788acef48a9bec655449626209f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c8a7d8e2f54f478eadfa09d29e0fb4ac.png)
设置root密码为root,密码太简单时需要点击两次完成。
启动虚拟机(raw/qcow2)
目前有两种:
第一:有xml文件,用virsh define/start的方式,不知是何原因,一start整个Ubuntu就宕机,貌似和内存硬盘无关;
第二:用qemu-system-x86_64命令,通过hda参数指定raw/qcow2镜像的位置,m参数指定分配的内存,也可以指定网络但我没研究。
root@ubuntu:/opt/images/centos7
-hda /opt/images/centos7/centos7.raw \
-m 2G
root@ubuntu:/opt/images/centos7
-hda /opt/images/centos7/centos7.raw \
-m 2G -curses
此命令直接弹出虚拟机控制台,关闭窗口即关机。(每次启动好像都需要重行开启和重启网卡)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9ce36c45af34593b02b1dc71d6d3e0a.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d516b7b8bd53475991163c690a8951bd.png)
进入ens3的配置文件,开启网口,onboot=yes,改完保存。
此处不想改成静态IP,所以就直接用 ifup ens3开启了。
重启网卡service network restart。
注意:此命令是nat模式,建议使用dhcp自动获取ip。例子如下,文件尽量不要包含其它字段:
DEVICE=eth3
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
查询IP为10.0.2.15,与Ubuntu宿主机可互通。(互通好像只是个例)
![在这里插入图片描述](https://img-blog.csdnimg.cn/62d289cd62a14cd0bac993aa5feb330c.png)
至于想用桥接和Windows物理机相通,还未研究。
安装产品
由于没有设置Ubuntu里的虚拟机的网络,默认是nat吧,所以无法用Windows的ssh工具连接。
采取Windows用ssh给Ubuntu发文件,再由Ubuntu用scp命令发给centos。
宿主机Ubuntu:192.168.0.100
虚拟机centos7:10.0.2.15
从Ubuntu向centos发送文件:scp 源绝对路径/相对路径 user@ip:目的地绝对路径
按理来说是可以通的,但不知道为什么命令没反应。
所以采取了centos从Ubuntu复制文件:scp user@ip:源绝对路径 目的地绝对路径/相对路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc11f80526db4de791797085155af4f1.png)
扩容
诉求:centos7 10G 扩成 20G
思路:扩容三步曲,不管是什么命令什么方式,底层都是这三步
- 硬件磁盘扩容(宿主机操作)
- 分区扩容(虚拟机操作)
- 文件系统扩容(虚拟机操作)
virt-resize方式
以下.raw路径均是相对路径,在/opt/images/centos7中
1. 创建新的磁盘
创建新的20G磁盘,raw格式,因为virt-resize只支持raw拉伸大小
qemu-img create -f raw n20.raw 20G
qemu-img info n20.raw
virt-filesystems --long --parts --blkdevs -h -a n20.raw
![在这里插入图片描述](https://img-blog.csdnimg.cn/7534c257d30a48d488daed77a196aa9d.png)
2. 查看旧磁盘情况
查看centos7镜像分区情况:virt-filesystems --long --parts --blkdevs -h -a centos7.raw
相当于进入虚拟机执行lsblk
可以看到有主要是sda,有两个分区:sda1和sda2,加起来一共10G。
![在这里插入图片描述](https://img-blog.csdnimg.cn/40a7d3e40fd44f5d9d580005502ca2ac.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/43ab73f765ca4e3491ff38fd855c1185.png)
查看centos7镜像文件系统情况:virt-df centos7.raw
相当于进入虚拟机执行df
可以看到有两个文件系统,一个普通文件系统/dev/sda1,一个lvm逻辑卷/dev/centos/root,是挂在sda2分区下的(扩容命令会用到)
![在这里插入图片描述](https://img-blog.csdnimg.cn/9a22f8c5f17246e786ce1a121aa0b4a7.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/3bf1af7b5b2547f99fe3a5c9e5e0ffda.png)
3. 扩容
根据virt-df查询出的结果,进行编写命令:将 /dev/sda2下的/dev/centos/root进行扩容,并复制到新镜像n20.raw中。
virt-resize --expand /dev/sda2 --LV-expand /dev/centos/root centos7.raw n20.raw
竟然只用了几秒就扩容完了
![在这里插入图片描述](https://img-blog.csdnimg.cn/d27ccd4d509946cdbc974b536fed9a1d.png)
再次查看新镜像的分区情况,可以看到sda1和sda2都有了
virt-filesystems --long --parts --blkdevs -h -a n20.raw
![在这里插入图片描述](https://img-blog.csdnimg.cn/fda5c2f9d72e46c8bd3c59f9890ea00e.png)
保险起见,我们打开虚拟机进入,用df -h看一下
![在这里插入图片描述](https://img-blog.csdnimg.cn/84c8547a36a4416ca1eef28417b84f4d.png)
4. 压缩转换格式(可选)
将raw格式镜像压缩为qcow2格式镜像,缩小体积。
压缩镜像:qemu-img convert -O qcow2 -c n32.raw n32.qcow2
virsh blockresize方式
- 硬件磁盘扩容(宿主机)
a) 查看镜像文件路径:virsh domblklist 镜像名
b) 扩容:virsh blockresize –path 镜像绝对路径 –size 50G 镜像名 - 分区扩容(虚拟机)
a) 查看:lsblk
b) 扩容:growpart 磁盘名 分区序号,此步骤好像要求系统是英文的 - 文件系统扩容(虚拟机)
a) 查看:df -h
b) 扩容:xfs_growfs 分区名
![在这里插入图片描述](https://img-blog.csdnimg.cn/113a85a35c5c46c0ba84aceea3e6e40b.png)
其他问题
关于vi编辑
方式一:将就
上下左右、esc、删除等均不好使,esc = alt + Q
h 或 向左方向键(←) 光标向左移动一个字符
j 或 向下方向键(↓) 光标向下移动一个字符
k 或 向上方向键(↑) 光标向上移动一个字符
l 或 向右方向键(→) 光标向右移动一个字符
方式一:一劳永逸
sudo apt-get remove vim-common -y
sudo apt-get install vim -y
![在这里插入图片描述](https://img-blog.csdnimg.cn/d738689aff5548b19e4ec2297787f624.png)
关于清数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad933743a0e74c8ab6930b34b1b27d24.png)
关于lsmod
查看KVM安装:lsmod|grep kvm
若是查不出来,自行加载一下试试,可能会出错
modprobe -a kvm
modprobe -a kvm_intel(amd芯片系统则是kvm_amd)
加载kvm_intel失败,百度搜索后,执行modprobe kvm_intel报错更明确,网图如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/320ca5cee8574f919787abdfc8211f1b.png)
其中一种可能的原因是,我的虚拟机没有开启 CPU虚拟化的支持,我用的VirtualBox,修改虚拟机配置,系统—处理器,勾选启动嵌套VT-x
![在这里插入图片描述](https://img-blog.csdnimg.cn/7002d01c418f4a41baee06f189de98c6.png)
修改完开机,再查询就有了
![在这里插入图片描述](https://img-blog.csdnimg.cn/a03d3853cf7b4b238b72e2fa4526ab4a.png)
关于yum源
![在这里插入图片描述](https://img-blog.csdnimg.cn/90a1fc002cd9479d85338f04d1e0a0c7.png)
我本地存了一份yum源相关的文件,这次选择直接删除覆盖的方式。若是想用命令更新,请百度。
进入/etc/yum.repos.d目录,删除里面的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/e628ba194c2341828ede482bb144ea57.png)
将自己的yum文件包上传到/home/zj里,解压后将文件复制到/etc/yum.repos.d目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/2986d7fd5e2147ee871ee37a8f412741.png)
关于虚拟化管理工具
关于xshell执行命令打开
![在这里插入图片描述](https://img-blog.csdnimg.cn/1c7f862307fa4eb7b7d6aa9a05967752.png)
1.首先查看本机sshd是否开启X11转发
grep X11Forwarding /etc/ssh/sshd_config
![在这里插入图片描述](https://img-blog.csdnimg.cn/39e04b162cb24f7a93990d3ddb3ae1de.png)
若未开启,修改为开启之后,重启sshd
service sshd reload
![在这里插入图片描述](https://img-blog.csdnimg.cn/7aecfbd42d384c5681bcd1c37a3b5c66.png)
2.检查xorg-x11-xauth是否安装
yum list installed|grep xorg-x11*
![在这里插入图片描述](https://img-blog.csdnimg.cn/246f6370fb144af1a346e4af16e28fc9.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/3cb49898f94d489daf806f9d715ec711.png)
关于虚拟机桌面打开
执行virt-manager ,通过转发到x-manager怎么调也调不好,所幸虚拟机是有图形化界面的,直接进入虚拟机操作。
![在这里插入图片描述](https://img-blog.csdnimg.cn/e34bdb06f1974e58bc1a62e6fcf61441.png)
可以看到此时没有一个镜像。
我们需要一个基础镜像,签名组提供了一个qcow2格式的,猜测是通过centos iso版镜像改造过来的。
上传至/home/zj/images/
![在这里插入图片描述](https://img-blog.csdnimg.cn/35dd78dd6c6143e3960b6c3e30e3c889.png)
修改netseal6.xml:指定qcow2镜像的位置
![在这里插入图片描述](https://img-blog.csdnimg.cn/ed8a8a83c3a54f8a9240761120f8d576.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/29f9e46adf0946ef83bc78c8deb716d9.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/3874f39c87b94dada529e906efdff8f7.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/e84a3e8a1a3a4981b72cdfb5f5f15f1f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/25174a1f93154c5b802a9bb8e62f3047.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/07cf66e3323c4f868b5d583cf9304e53.png)
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b54728e2ae64d659f26bede9164ab32.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c5afdfbffaf346f79d1c22ba5ea73779.png)
添加网卡
若没有NIC,则点击左测底部“添加硬件”,进入《添加新虚拟硬件》界面,如图所示:
Alt+鼠标左键,拖拽窗口,才能看见添加硬件按钮
![在这里插入图片描述](https://img-blog.csdnimg.cn/051ffdfad79b4880ab5be4efde55febe.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/9592489bf1e640d686ec1d36a52d8c7b.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5a5bea99141b4d7aab6e342fdf0af5b6.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2c0a972fd7d74994b965965d21afe8a6.png)
记录MAC地址:52:54:00:01:5c:36,配置虚拟机网卡时使用。
![在这里插入图片描述](https://img-blog.csdnimg.cn/92759c738fc042cfa87e71ac9a5bcdd8.png)
启停虚拟机
亲测不好使,不仅工具按钮不好使,命令也不好使
virsh start xxx
virsh shutdown xxx
只有删除和销毁好使
virsh destroy xxx
virsh undefine xxx
![在这里插入图片描述](https://img-blog.csdnimg.cn/f7fe299672a143cd8fdb69484fd78f86.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)