安装linux虚拟机分盘怎么弄(linux基础20课06安装虚拟机)
作为运维人员 安装虚拟机、压缩,解压,打包,解包、查找文件 都是必须懂的知识,下面我们就来说一说关于安装linux虚拟机分盘怎么弄?我们一起去了解并探讨一下这个问题吧!
安装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