安装linux虚拟机分盘怎么弄(linux基础20课06安装虚拟机)

作为运维人员 安装虚拟机、压缩,解压,打包,解包、查找文件 都是必须懂的知识,下面我们就来说一说关于安装linux虚拟机分盘怎么弄?我们一起去了解并探讨一下这个问题吧!

安装linux虚拟机分盘怎么弄(linux基础20课06安装虚拟机)

安装linux虚拟机分盘怎么弄

作为运维人员 安装虚拟机、压缩,解压,打包,解包、查找文件 都是必须懂的知识

这些都不懂,维护起来可能会有很多麻烦,上补丁的时候必须要对系统或者文件进行备份的

部署服务的时候是要对安装包,或者压缩文件进行解压的

一. 虚拟化

rhel5里自带的虚拟机叫xen

rhel6里自带的虚拟机叫kvm

商业的老大是vmware

我们这里先学会图形化来使用vmware的workstation版

1. 安装虚拟机

# showmount -e 10.0.0.2

Export list for 10.0.0.2:

/var/lib/libvirt/images *

/yum *

/share/iso *

/share/soft *

# mount 10.0.0.2:/share/soft /mnt/ --将10.0.0.2上共享的目录挂载到本地磁盘

# df -h --看到有下面的记录,表示挂载成功

10.0.0.2:/share/soft

58G 47G 8.1G 86% /mnt

# cp -rf /mnt/vmware-workstation-8.0.0/ /soft/

--拷贝时,会类似卡住一样,其实是在拷贝中,拷完就好了

# umount /mnt --拷完后,记得把挂载连接断掉

# cd /soft/vmware-workstation-8.0.0/

# ./VMware-Workstation-Full-8.0.0-471780.x86_64.bundle

--图形安装

# vmware & --安装完后使用这个命令去打开虚拟机,&符号为后台符号

注册序列号

MV4YN-0L38Q-2ZK60-XUA7K-AAZ18

关于vmware的删除

# vmware-uninstall --用此命令查看帮助

# vmware-installer --list-products

# vmware-installer -l

Product Name Product Version

==================== ====================

vmware-workstation 8.0.2.591240

# vmware-installer -u vmware-workstation --用此命令可以卸载这个软件

# vmware-installer --uninstall-product vmware-workstation

拷贝系统镜像:

# umount /mnt --卸载

# showmount -e 10.0.0.2

Export list for 10.0.0.2:

/var/lib/libvirt/images *

/yum *

/share/iso *

/share/soft *

# mount 10.0.0.2:/share/iso/ /mnt --挂载/share/iso目录

# cp /mnt/rhel-server-6.3-x86_64-dvd.iso /soft/ --拷贝时会卡住,不要按任何键,等它拷贝完、

# du /share/iso/rhel-server-6.3-x86_64-dvd.iso --64位镜像

3593220 /share/iso/rhel-server-6.3-x86_64-dvd.iso

# ls -l /share/iso/rhel-server-6.3-x86_64-dvd.iso

-rwxr-xr-x 1 qemu qemu 3679453184 Jun 30 2015 /share/iso/rhel-server-6.3-x86_64-dvd.iso

# du -s /share/iso/rhel-server-6.3-i386-dvd.iso --32位镜像

# cp /mnt/rhel-server-6.3-i386-dvd.iso /soft/

创建一个虚拟的过程,见笔记里的截图

安装一个虚拟机,如果报不支持64位的话,请重启你的宿主机,在bios里把CPU选项的intel 虚拟化技术选项开启,重启后再来使用

虚拟机建议按下面的方法来分区

/boot/ 200M

swap 2G

/ 余下的所有空间

2. 虚拟机的网络配置

# vmware-netcfg

三种网络:

桥接:相当于和物理网络同一个交换机

hostonly:是一个虚拟的内网私网网络,他和你宿主机连接的物理网络无关

nat:可以看作是在hostonly的基础做了NAT(network address translation)规则

桥接 与宿主机同一网段,宿主机和虚拟机是平等的,虚拟机使用的是vmnet0 ------>外网

nat 网络地址转换

nat(192.168.194.x) vmnet8 ----------宿主机(10.0.0.x)eth0---------->外网

hostonly

hostonly(172.16.155.x) vment1 ----------宿主机(10.2.2.x) 外网不通

vmware虚拟机的基本用法

快照: 装完一个新的虚拟机系统后,建议对其做一个snapshot

挂起: 如果一个实验你今天做不完,想明天继续做,可以先挂机当前的状态,相当与暂停

克隆: 选全克隆,一般不用链接克隆 create a full clone;

克隆一台新的机器,需要关机

你还可以手动克隆. cp A虚拟机的目录 B虚拟机的目录,然后使用vmware虚拟机软件打开B虚拟机目录里的.vmx配置文件就可以了(这里打开它会问你是不是拷贝的,你选择是就可以了;还可能有个问题,如果A虚拟机已经被用过,它这里可能会报你的虚拟机已经被占用,解决方法:删除B虚拟机目录下的所有.lck结尾的锁文件就可以了)

克隆之后,eth0变成eth1

为虚拟机加减设备:直接双击图形里的设备然后选择 add 或 remove去加或减

也可以使用命令的方式来加设备:

例:加一个大小为1000MB的磁盘

第一步:在虚拟机目录里创建一个新的磁盘文件,大小自定义,名字要和原来的磁盘名不冲突

# vmware-vdiskmanager -c -s 1000MB -a scsi -t 0 /root/vmware/rhel6.3-1/rhel6.3-1-000003.vmdk

Creating disk '/root/vmware/rhel6.3-1/rhel6.3-1-000003.vmdk'

Virtual disk creation successful.

第二步:

# vim /root/vmware/rhel6.3-1/rhel6.3-1.vmx

scsi0:0.present = "TRUE"

scsi0:0.fileName = "rhel6.3-1-000002.vmdk" --上两行是原配置文件里的

scsi0:1.present = "TRUE"

scsi0:1.fileName = "rhel6.3-1-000003.vmdk" --下两行是我复制上两行,再改一下加上去的;首先磁盘名字要和你刚创建的磁盘名一致,然后前面的编号我由0:0改成0:1

第三步:

在虚拟机管理界面,先关掉这个虚拟机,然后再open这个虚拟机,就可以看到新的硬盘了

二. 压缩,解压,打包,解包

压缩使文件更小,有利于网络传输和节省存储空间,在传输大量小文件时,最好是打包压缩,速度较快

windows下 winrar .rar

winzip .zip

linux下的压缩命令:

.Z compress --淘汰了,现在极少见到

.gz gzip压缩的

.bz2 bzip2压缩的

.tar tar打包

.tar.gz tar,gzip

.tar.bz2 tar,bzip2

.tar.xz

--compress 老的压缩工具

# mount -o loop /share/iso/rhel-server-6.3-x86_64-dvd.iso /mnt/

# rpm -ivh /mnt/Packages/ncompress-4.2.4-54.el6_2.1.x86_64.rpm

# umount /mnt

# rm -rf /test

# mkdir /test

# cd /test

# cp /etc/grub.conf /test/

compress grub.conf --直接压缩文件,源文件没了

zcat grub.conf.Z --直接查看压缩文件的内容

compress -d grub.conf.Z --解压

compress -c grub.conf > grub.conf.Z --这样压缩并保留源文件

# file grub.conf.Z

grub.conf.Z: compress'd data 16 bits

# file grub.conf

grub.conf: ASCII text

--gzip 使用广泛,用来替代compress,它能解压.Z .gz .zip 等格式的压缩包

gzip grub.conf --压缩

zcat grub.conf.gz --查看压缩包的内容

gzip -d grub.conf.gz --解压

gzip -c grub.conf > grub.conf.gz --压缩并保留源文件

file grub.conf.gz

--bzip2 它用来替代gzip,拥有更好的压缩比率,但是更需要资源和时间

bzip2 grub.conf --压缩

bzcat grub.conf.bz2 --查看压缩包的内容

bzip2 -d grub.conf.bz2 --解压

bzip2 -c grub.conf > grub.conf.bz2 --压缩并保留源文件

# ll

-rw------- 1 root root 810 Apr 24 09:53 grub.conf

-rw-r--r-- 1 root root 560 Apr 24 10:04 grub.conf.bz2

-rw-r--r-- 1 root root 493 Apr 24 09:59 grub.conf.gz

-rw-r--r-- 1 root root 614 Apr 24 09:55 grub.conf.Z

--这里看到gzip压缩的比bzip2压缩的更小,那是因为文件太小了

--zip

# zip grub.conf.zip grub.conf --zip压缩,后面为源文件

# unzip grub.conf.zip --解压到当前目录

# unzip grub.conf.zip -d /test/ --指定解压到/test/目录

--rar

# wget http://www.rarlab.com/rar/rarlinux-x64-4.2.0.tar.gz --下载rar解压文件

# ls /share/soft/rarlinux-x64-4.2.0.tar.gz

tar xf rarlinux-x64-4.2.0.tar.gz -C /usr/src

cd /usr/src/rar

make --此包直接make就可以了,有makefile文件,表示是已经./configure好的

有rar命令就表示安装完毕

此命令是没有man page,因为没有安装man的帮助文件,可以用rar -h 或者rar --help来看

rar a grub.conf.rar grub.conf --压缩

rar e grub.conf.rar --解压

--tar

-c create,创建一个新的存档

-v verbose,显示过程

-f file,接文件

-j 调用bzip2进行压缩或者解压

-z 调用gzip进行压缩或者解压

-C 解压时指定解压的路径

-t 查看包内容

-x 解压

# cd /test

# cp -rf /etc/ . --把根下的/etc目录拷到/test做测试(但要注意,不要用根下原本的etc去测试)

tar cvf etc.tar etc/ --打包,注意源和目地的位置,没有压缩的

tar xvf etc.tar --解压,默认解到当前路径下

tar xvf etc.tar -C /usr/src/ --用-C参数指定解压的路径,注意是大写字母C

tar tf etc.tar --查看压缩包有那些文件

tar cjvf etc.tar.bz2 etc/ --打包,并用bzip2压缩

tar xjvf etc.tar.bz2 --对应的解压

tar czvf etc.tar.gz etc/ --打包,并用gzip压缩

tar xzvf etc.tar.gz --对应的解压

还可以比较两个压缩方式的时间,明显bz2的时间要长,文件越大,效果越明显,但bz2压的文件大小要比较小

# time tar cfz etc.tar.gz etc/

real 0m1.236s

user 0m1.223s

sys 0m0.062s

# time tar cfj etc.tar.bz2 etc/

real 0m4.776s

user 0m4.751s

sys 0m0.059s

万能解压参数:

tar xvf etc.tar.gz -C /usr/src --自动会调用压缩工具解压

tar xvf etc.tar.bz2 -C /usr/src --也可以

# ll -h

total 16M

drwxr-xr-x. 114 root root 12K Jul 23 10:27 etc

-rw-r--r--. 1 root root 7.3M Jul 23 10:32 etc.tar.bz2

-rw-r--r--. 1 root root 8.6M Jul 23 10:31 etc.tar.gz

-rw-------. 1 root root 795 Jul 23 10:02 grub.conf

-rw-r--r--. 1 root root 562 Jul 23 10:09 grub.conf.bz2

-rw-r--r--. 1 root root 495 Jul 23 10:09 grub.conf.gz

-rw-r--r--. 1 root root 565 Jul 23 10:20 grub.conf.rar

-rw-r--r--. 1 root root 619 Jul 23 10:05 grub.conf.Z

-rw-r--r--. 1 root root 635 Jul 23 10:12 grub.conf.zip

注意:

--这里可以看出来bzip2比gzip有更好的压缩比率, 但在压缩一个小文件时,反而没有gzip压得小

--压缩目录是把目录里的每个文件都压缩,所有一般没有这种做法,正确的做法是把目录用tar打包,再用gzip或者bzip2压缩

题目:

想做一个系统备份,把这个备份压缩,并以时间来命名存放到/backup目录下;要求备份/下所有文件,但除了/dev/,/tmp/,/proc/,/sys/目录

tar cfj /backup/`date %F`.system.tar.bz2 / --exclude=/dev/ --exclude=/tmp --exclude=/proc --exclude=/sys --exclude=/backup

先建立一个/backup目录

实现每天开机用root登录系统,就自动在把前一天/var/log下的日志(除了/var/log/btmp,/var/log/wtmp和/var/log/lastlog)打包,并使用bzip2压缩到/backup目录下,并记录时间

要求格式都为(年-月-日.xxx);如2012-03-17.xxx

tar cfj /backup/`date %F`.log.tar.bz2 /var/log/ --exclude=/var/log/btmp --exclude=/var/log/wtmp --exclude=/var/log/lastlog

三. 文件查找

which whereis locate find

--which

# which ifconfig --查找二进制可执行文件,通过环境变量来查找

/sbin/ifconfig

--whereis

# whereis ifconfig

ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

$ whereis ifconfig

ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

--locate

locate - find files by name

速度快,通过系统带的一个数据库去查找,数据是非实时的

# ls /var/lib/mlocate/

mlocate.db

# ll /var/lib/mlocate/mlocate.db -lh --如果系统里文件越多,此文件会越大,locate查找的速度会越慢

-rw-r-----. 1 root slocate 3.1M Jul 18 03:46 /var/lib/mlocate/mlocate.db

# file /var/lib/mlocate/mlocate.db

/var/lib/mlocate/mlocate.db: data

# touch abcd777 --新建一个文件

# locate abcd777 --locate查找不出来

# updatedb --手动更新locate数据库,时间比较长,但是系统的时间任务服务会在晚上4点帮你去更新

# locate abcd777 --更新locate数据库后,再查找就有了

/root/abcd777

--find

速度较慢,因为要实时扫你的磁盘,功能强大

find 路径 [选项]

-name --通过名字找

-type --通过文件类型找

-uid --通过uid查找

-gid --通过gid查找

-user --通过username查找

-group --通过groupname查找

-perm --通过权限查找

n --n包含的权限也查找出来

-n --包含n的权限也查找出来

-size --通过大小查找

+n --查出大于n的文件

-n --查出小于n的文件

1,按名称查找

find /etc/ -name grub.conf --查找/etc目录下的grub.conf文件

find /etc/ -name "*.conf" --使用通配符,查找/etc/目录下的以.conf结尾的文件,这里一定加上引号,否则会出现问题

find /etc/ -name ".*" --查找etc下所有隐藏文件

find /test/ -iname Aaa --忽略大小写加上-i

/test/aaa

/test/Aaa

/test/AAa

通配符(不是正则表达式):

? --匹配单个任意字符

* --0个或多个任意字符

[a-z] --匹配单个字母

[0-9] --匹配单个数字

--定义查找的目录层次

# find /test/ -maxdepth 1 -name aaa

/test/aaa

# find /test/ -maxdepth 2 -name aaa

/test/aaa

/test/a/aaa

# find / -maxdepth 2 -name grub.conf

/etc/grub.conf

# find / -maxdepth 3 -name grub.conf

/etc/grub.conf

/yum/isolinux/grub.conf

/boot/grub/grub.conf

/soft/isolinux/grub.conf

# find / -maxdepth 4 -name grub.conf

/etc/grub.conf

/yum/isolinux/grub.conf

/boot/grub/grub.conf

/soft/isolinux/grub.conf

/var/lib/tftpboot/grub.conf

# find / -mindepth 4 -maxdepth 4 -name grub.conf

/var/lib/tftpboot/grub.conf

2,按类型查找

find /etc -type l |grep grub.conf

find /etc -type l -name grub.conf --与-name参数一起写

find / -type f --普通文件

find / -type b --块文件

find / -type s --socket文件

find / -type c --字符文件

find / -type p --管道文件

find / -type d --目录

find / -type l --链接文件

把一个目录下的所有子目录(不包括父目录)权限改变

# find /test -mindepth 1 -type d |xargs chmod 777

# find /test -mindepth 1 -type d -exec chmod 755 {} \;

-- -exec后接动作 {}代表前面的结果 \;代表结束

3,按用户名,组名,uid,gid查找

find / -user a

find / -group a

find / -uid 533

find / -gid 533

find / -nouser --查出系统的无头文件,就是指没有属主的文件

find / -nogroup --查出系统的没有属组的文件

没有属主和属组的文件,系统管理一般是要去注意的

4,按权限查找

find / -perm 777 --查出所有权限为777的文件,一般也是管理员要注意的

# ll

total 0

-rwxr-xrwx. 1 root root 0 Jul 23 11:42 1

---------x. 1 root root 0 Jul 23 11:42 10

-rwx--xr--. 1 root root 0 Jul 23 11:42 2

-rw-rw--wx. 1 root root 0 Jul 23 11:42 3

-r-xrwx---. 1 root root 0 Jul 23 11:42 4

-r---w--w-. 1 root root 0 Jul 23 11:42 5

--wx-wx-wx. 1 root root 0 Jul 23 11:42 6

--w-r-x--x. 1 root root 0 Jul 23 11:42 7

---xrw-r-x. 1 root root 0 Jul 23 11:42 8

----rwxr--. 1 root root 0 Jul 23 11:42 9

# find . -perm 422 --只有7和10两个文件不符合。+号的意思表示把权限写成9位,然后位与位对比,只要有一位重合,则找出来

# find . -perm -422 --只查出3和5两个文件。-号的意思表示位与位对比,要全部包含重合,则找出来

例:假设/etc/目录下所有文件owner和group为root.root,我要查找一个普通用户user1在/etc/下能读能写的文件.

find /etc/ -perm -006

5,按大小查找

find / -size 500M --单位有k,m,g等

find / -size 1G

find /etc -size 50k

find /etc -size 50b (b在这里不是代表byte,是代表block,并且还不是系统的4096大小的block,这里的大小为512byte)

find / -size -1M

find / -size 3c (c在这里代表byte)

find / -size 80M -size -100M

6,按时间查找

# stat 1 |tail -3

Access: 2014-07-23 11:56:42.297572398 0800 --atime 阅读过,用cat,tail,head,more,less命令等或者vi访问过,但没有修改;执行过也会改变

Modify: 2014-07-23 11:56:44.836572907 0800 --mtime 修改过内容,用vi修改过或者echo一个值重定向

Change: 2014-07-23 11:56:44.856885177 0800 --ctime 改变过内容,属主,属组,权限,创建软链接,硬链接等

-mtime n --代表n天前的24小时内

n --代表n天前(不包含n天本身的24小时)

-n --代表n天内

1 2 3 4 5 6 7

|-- 2 --|

<------- -2 | | 2 --------------->

future now past

find / -mtime 0 --0代表目前当天的24小时

find / -mtime 1 --修改时间48小时之前

find . -mtime -1 --修改时间往推24小时到现在甚至到将来

find / -mtime 1 --往前推24小时到推48小时之内

mmin

amin --与mtime,atime,ctime的单位不同,这是以分钟为单位

cmin

# find / -mmin 30 -mmin -150 --查看30分钟前到150分钟前之内的两个小时内有哪些文件被修改过内容

现在的时间为2014年7月23号14:35分,我现在想查出7月20号那一天哪些文件被修改过内容怎么做?

find / -mtime 3 --这样做代表的是7月19号14:35分到7月20号14:35分

find / -newermt "2014-07-20 00:00:00" ! -newermt "2014-07-21 00:00:00"

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页