我的虚拟机里面的ubuntu的分辨率怎么修改不了,并且vmware tools安装的话也提示我会自动安装但是没有安装。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的虚拟机里面的ubuntu的分辨率怎么修改不了,并且vmware tools安装的话也提示我会自动安装但是没有安装。相关的知识,希望对你有一定的参考价值。

哪位大神给解决一下 谢谢了

在虚拟机上使用鼠标过于飘逸 很大一部分原因是因为vmware tools没有安装
第一种方式:这个需要安装基于vmware linux tools ubuntu 基本上都是图形界面的 在 光驱下直接加载就行了
第二种方式:命令行下安装
第三种方式:使用vmware player 登陆
第四种方式:telnet工具登陆(工具或者系统自带)追问

问 在命令行里怎么安装~

参考技术A 我在vmware中安装了ubuntu,然后在命令行安装vmware-tools。运行vmware-install虽然不装这个工具不会对虚拟机本身的使用造成什么影响,但操作起来尤其是鼠标 参考技术B 这都不会,,啥是ubuntu。玩会CF就好了啊追问

ubuntu 不知道啊 那你还回答个屁啊~~

追答

你妹啊。。。。你不懂还说哥哥

追问

问题是现在我自己解决了··你弟弟可好啊~~

参考技术C 讲虚拟机调成全屏可以吗?
你是ubuntu神马版本?追问

虚拟机全屏了 也不行 ubuntu的分辨率太大了 貌似是1900多乘以1300多的吧 我记不清楚了。
ubuntu的版本是最新版本 12.04的

追答

12.04还未下载呢我
我之前用vm装过10.04-10.10-11.04 都没有发现这种问题
分辨率没有固定的大小啊 都是根据显示器来调整的
你尝试一下改变虚拟机的显示器设置吧

参考技术D 额,这个问题比较麻烦

我的虚拟机挂了!怎么把镜像里面的数据找回来?

创建了一个虚拟机,不知道为什么挂了,重启也启动不了,VNC也登不上去,强行关机后再也启动不起来了,开机一大堆错误,可是里面还有很重要的数据啊,怎么办,怎么办,谁能救救我!

 

下面分析几个解救的方法。

 

方法零:谁让你把重要数据放在系统盘里面了,请使用云盘,也即块存储,虚拟机挂了,盘可以轻松的关联到新的机器上,而且块存储系统如Ceph多是三备份,数据丢不了,下次请牢记。

 

您肯定会骂我,这次咋办,下面分享真正解救的办法。

 

1. 方法一:使用qemu的工具Network Block Device

 

网络块设备是通过NBD Server将虚拟块设备通过TCP/IP export出来,可以远程访问。

 

NBD Server通常是qemu-nbd

 

1.1 使用方法一:可以提供unix socket

 

qemu-nbd -t -k /home/openstack/images/ubuntutest-nbd ubuntutest.img

 

连接这个unix socket

 

qemu-system-x86_64 -enable-kvm -name ubuntutest -m 2048 -hda nbd:unix:/home/openstack/images/ubuntutest-nbd -vnc :19 -net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=n -monitor stdio

 

1.2 使用方法二:普通的socket连接

 

qemu-nbd -t -p 1088 ubuntutest.qcow2

 

qemu-system-x86_64 -enable-kvm -name ubuntutest  -m 2048 -hda nbd:16.158.166.150:1088 -vnc :19 -net nic,model=virtio -net tap,ifname=tap0,script=no,downscript=n -monitor stdio

 

1.3 使用方法三:将镜像 mount到一个network block device

 

竟然可以这样做,咱们镜像里面的内容有救了。

 

查看内核是否编译进去NBD

 

#grep NBD /boot/config-XXXX-generic 

 

CONFIG_BLK_DEV_NBD=m

 

查看内核模块信息modinfo nbd

 

 

 

查看内核模块是否加载lsmod | grep nbd

 

如果没有加载modprobe nbd,也可以指定最多的partition: modprobe nbd max_part=16

 

加载后出现16个NBD

  

查看哪个nbd device被使用:cat /proc/partitions

 

 

将image付给一个network block device

 

qemu-nbd -c /dev/nbd0 ubuntutest.img

 

可以看到这个image里面有三个partition

 

 

Mount其中一个partition

 

可以看到里面的文件啦!!!!!

 

修改结束后

 

umount ubuntutestnbd0p1

 

qemu-nbd -d /dev/nbd0

 

 

2. 方法二:如果镜像里面是LVM

 

有LVM的情况相对复杂

 

qemu-nbd -c /dev/nbd0 centos-5.8.new.qcow2

 

 

发现里面有LVM,当然LVM不能作为整体访问,因为里面有Logic volume,都是单独成文件系统的

 

查看LVM的信息

 

 

Import这个volume group

 

vgimport VolGroup00

 

将这个volume group设为active

 

vgchange -ay VolGroup00

 

 

 

Mount其中一个LV

 

mount /dev/VolGroup00/LogVol00 ubuntutestnbd0p1/

 

可以拿到这个Logic Volume里面的文件啦!!!!!

 

修改结束后

 

umount ubuntutestnbd0p1/

vgchange -an VolGroup00

vgexport VolGroup00

qemu-nbd -d /dev/nbd0

 

 

 

3. 方法三:使用libguestfs

 

这个工具十分强大,Libguestfs可以在不启动虚拟机的情况下,编辑Image

 

安装:apt-get install libguestfs-tools

 

编辑一个Image:

 

guestfish -a trusty-server-cloudimg-amd64-disk1.img

 

接着运行run,则一个虚拟机启动了

 

 

查看所有的文件系统

 

list-filesystems

 

Mount这个文件系统

 

mount /dev/sda1 /

 

 

3.1 libguestfs的架构和原理,知其然知其所以然

 

  • guestfish -a trusty-server-cloudimg-amd64-disk1.img启动的进程,也即那个交互命令行是main program

  • 运行run的时候,会创建一个child process,在child process中,qemu运行一个称为appliance的小的虚拟机。创建子进程是由guestfs_launch函数完成的

  • 在appliance中,运行了linux kernel和一系列用户空间的工具(LVM, ext2等),以及一个后台进程guestfsd

  • main process中的libguestfs和这个guestfd通过RPC进行交互。

  • 由child process的kernel来操作disk image

 

 

libguestfs是一个C的library,你可以写一个C的程序,将这个类库加载进去,调用它的API

 

文档http://libguestfs.org/guestfs.3.html就描述了这些C的API

 

而guestfish是一个交互命令行,可以通过执行命令,他来调用C类库的API,帮我们完成操作

 

文档http://libguestfs.org/guestfish.1.html描述了这些命令,几乎所有的API,都有对应的命令

 

3.2 Libguestfs appliance的启动过程,更详细的了解它

 

如果我们想看这个appliance启动的详细过程,则需要export LIBGUESTFS_DEBUG=1

 

然后运行guestfish -a trusty-server-cloudimg-amd64-disk1.img

 

然后运行run,打印出很多的东西

 

(1) 启动guestfish

 

 

(2) 运行supermin

 

 

(3) 选择kernel

 

 

(4) 选择initrd, root images, 创建appliance

 

 

(5) 检测qemu

 

 

(6) 启动qemu appliance

 

 

(7)启动initrd

  

(8) load kernel modules

 

 

(9) mount sda, sdb

 

 

(10) 将sdb作为root device

 

 

(11) 运行init

 

 

(12) 启动guestfsd

 

 

 

(13) 开通一个端口,C类库会通过RPC连接这个端口

 

 

3.3 Guestfish的有很多的命令

 

  • 添加一个drive

 

这个命令只有在run之前起作用

 

对应的API是guestfs_add_drive_opts

 

add-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..]

 

guestfish -a trusty-server-cloudimg-amd64-disk1.img,这个Image是第一个drive

 

add-drive /home/openstack/images/ubuntutest.img format:qcow2,添加一个drive

 

运行run

 

查看所有的device: list-devices

查看所有的分区: list-partitions

查看所有的文件系统: list-filesystems

 

 

  • Mount文件系统

 

对应的API是guestfs_mount

 

mount /dev/sda1 /

 

文件系统操作

 

ls /

mkdir /mnt/sdb

mount /dev/sdb1 /mnt/sdb

ls /mnt/sdb

ls /mnt/sdb/home/openstack

cat /mnt/sdb/home/openstack/.bash_history

 

更多文件系统命令chown,chmod,cp等都支持

 

 

 

  • 对partition的操作

 

part-list /dev/sdb

part-get-bootable /dev/sdb 1

 

有个partition的命令包括:

part-add,part-del,part-disk,part-get-bootable,part-get-gpt-type,part-get-mbr-id,part-get-name,part-get-parttype,part-init,part-list,part-set-bootable,part-set-gpt-type,part-set-mbr-id,part-set-name,part-to-dev,part-to-partnum

 

  

  • 对LVM的操作,哈哈不用害怕LVM了,也不用复杂做这么多操作

 

guestfish -a trusty-server-cloudimg-amd64-disk1.img

 

add-drive ./centos-5.8.new.qcow2 format:qcow2

 

run

 

查看所有的PV: pvs-full

 

查看所有的VG: vgs-full

 

命令包含:lvcreate, lvcreate-free, lvm-canonical-lv-name, lvm-clear-filter, lvm-remove-all, lvm-set-filter, lvremove, lvrename, lvresize, lvresize-free, lvs, lvs-full, lvuuid, pvcreate, pvremove, pvresize, pvresize-size, pvs, pvs-full, pvuuid, vg-activate, vg-activate-all, vgchange-uuid, vgchange-uuid-all, vgcreate, vglvuuids, vgmeta, vgpvuuids, vgremove, vgrename, vgs, vgs-full, vgscan, vguuid

 

 

  • 下载和上传文件,直接文件就能拷贝出来

 

guestfish -a ubuntutest.img

 

run

 

list-filesystems

 

mount /dev/sda1 /

 

download /home/openstack/.bash_history testdownload

 

upload instance01.xml /home/openstack/testupload

 

 

3.4 在Libvirt里面,Virt也提供了相应命令系列

 

一个命令完成操作,无需启动交互命令行

 

  • Guestmount

 

创建一个本地文件夹

 

mkdir testguestmount

 

将image里面的/dev/sda1 mount到这个文件夹里面

guestmount -a ubuntutest.img -m /dev/sda1 testguestmount

 

 

结束编辑后

guestunmount testguestmount

 

  • virt-builder

 

可以快速的创建虚拟机镜像

 

update-guestfs-appliance

 

查看所有的镜像类型

 

virt-builder –list

 

创建一个Image

 

virt-builder fedora-20 -o myfedora.img --format qcow2 --size 20G 

 

设置root password, 放在文件里面

 

virt-builder fedora-20 --root-password file:/tmp/rootpw

 

设置hostname

 

virt-builder fedora-20 --hostname virt.example.com

 

安装软件

 

virt-builder fedora-20 –install “apache2“

 

第一次启动运行脚本

 

virt-builder fedora-20 --firstboot /tmp/yum-update.sh

 

 

virt-ls -a myfedora.img /root/

 

 

virt-cat -a myfedora.img /root/.bash_profile

 

 

virt-copy-in -a myfedora.img desktop.xml /root/

 

 

virt-copy-out -a myfedora.img /root/.bash_profile ./

 

virt-df -a myfedora.img

 

 

virt-list-filesystems -a myfedora.img

 

virt-list-partitions myfedora.img

 

 

欢迎关注微信公众号

 

以上是关于我的虚拟机里面的ubuntu的分辨率怎么修改不了,并且vmware tools安装的话也提示我会自动安装但是没有安装。的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 8.04,怎么调分辨率

我的在虚拟机里面修改ip地址,但是每次保存不了

虚拟机下的ubuntu怎么全屏,分辨率怎么调。语言怎么调?

VMware虚拟机在G盘安装Ubuntu半途将它删除了,磁盘变为Install Ubuntu图标和名称,全都无法修改怎么办?

用虚拟机装的ubuntu为啥分辨率设置不了,没有确定啊,就只有这么一小块,求解

VM虚拟机里的Ubuntu系统怎么设置屏幕分辨率?