虛擬機的網路配置:
橋接 連接到你真實機上的網路,和真實機在同一個區域網內,相當於是插在同一個交換機上
如果橋接網路不通,則看是否有DHCP伺服器,沒有則配置靜態IP;
如果還不能通,則查看是否開啟iptables或selinux之類的;
如果這兩個沒有開啟,還不能ping通,那麼幾乎可以肯定是虛擬機的配置問題(vmware-config.pl)
nat
network address translation 網路地址轉換
解決IP地址不夠的問題,把私網內的多個IP轉換成公網上的IP地址從而進行上網
如
家裡上網常用的IP 192.168.1.100 - 192.168.1.254這類的全都是進行了NAT轉換成公網上網IP才能上網的
在家裡只要windows能上網,虛擬機加一個NAT網段,自動獲取IP后,就可以上網(虛擬機的網關是指向x.x.x.2)
如果真實機是linux,有路由器上網,有DHCP獲取就可以上網;如果是要拔號上網,則只能試試 adsl-setup
==================================================
一般家庭上網需要路由器進行NAT地址轉換才可以上網.如果沒有路由器的話,就需要拔號上網.
請問:
有路由器的情況下,真實機可以上網,虛擬機怎麼連接才能上網?
虛擬機使用橋接網路,就表示直接連接到了路由器,使用dhcp自動獲取就可以了
沒有路由器的情況下,真實機可以上網,虛擬機怎麼連接才能上網?
1,虛擬機使用NAT網路,使用dhcp自動獲取就可以了
2,虛擬機使用hostonly網路,然後在真實機上使用類似iptables的工具進行NAT
只要在真實機上加上下面兩句就可以了,虛擬機的網關指向真實機的hostonly網路的IP,DNS指向外網的DNS伺服器(172.19.1.1或8.8.8.8都可以)
--注意上面兩句的172.19.1.44換成你能上外網的IP,別的都不用改
如果上面的命令輸入有錯誤,就使用下面的命令刪除所有的規則,再打上面的命令
# iptables -F
# iptables -t nat -F
====================================================
host-only
只可以和你的真實機通訊的網段,默認配置是你真機上ifconfig查看到的私有網段vmnet1
並且在這個網段,自動開啟了DHCP,默認獲取的話默認主機號由128開始獲取
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01
inet addr:172.16.86.1 Bcast:172.16.86.255 Mask:255.255.255.0
===========================
熟悉使用虛擬機配置命令來修改虛擬機的配置
vmware-config.pl
Would you like to skip networking setup and keep your old settings as they are?
(yes/no) [yes] no
Do you want networking for your virtual machines? (yes/no/help) [yes]
Would you prefer to modify your existing networking configuration using the
wizard or the editor? (wizard/editor/help) [wizard] editor
The following virtual networks have been defined:
. vmnet0 is bridged to eth0
. vmnet1 is a host-only network on private subnet 172.
16.232.0.
. vmnet8 is a NAT network on private subnet 172.16.43.
0.
Do you wish to make any changes to the current virtual networks settings?
(yes/no) [no] yes
Which virtual network do you wish to configure? (0-99) 0
The network vmnet0 has been reserved for a bridged network. You may change it,
What type of virtual network do you wish to set vmnet0?
(bridged,hostonly,nat,none) [bridged]
Configuring a bridged network for vmnet0.
Your computer has multiple ethernet network interfaces available:
__tmp440025934, eth0:0, eth0:99999, virbr0, vmnet1, vmnet8, eth0. Which one do
you want to bridge to vmnet0? [eth0] eth1
The following virtual networks have been defined:
. vmnet0 is bridged to eth1 --現在再看就是橋接到eth1了
. vmnet1 is a host-only network on private subnet 172.
16.232.0.
. vmnet8 is a NAT network on private subnet 172.16.43.
0.
============================================
實驗:
把vmnet0橋接到eth1,會發現橋接網路的虛擬機怎麼樣都連接不到真機
再次把vmnet0橋接回eth0,就OK了
=================================================
虛擬機工具的安裝方法:
虛擬機軟體-->VM-->安裝虛擬機工具--> 然後會自動掛載工具軟體包
如果它不能自動掛載,就拷貝10.1.1.35:/share/soft/VMware-workstation/VMwareTools-6.0.2-59824.i386.rpm 后再直接安裝
rpm -ivh VMwareTools-6.0.2-59824.i386.rpm
再使用vmware-config-tools.pl配置
--這個是虛擬機工具,要安裝到虛擬機上.如果你的虛擬機安裝的是windows,那麼它的包就是.exe形式的
mount 2.2.2.35:/share/soft /mnt
rpm -ivh /mnt/VMware-workstation/VMwareTools-6.0.2-59824.i386.rpm
vmware-config-tools.pl --安裝完成後用此命令來配置虛擬機工具
========================================
虛擬機的掛機,快照和克隆功能
建議的虛擬機使用習慣:
安裝一個新的虛擬機系統,進行基本優化,基本軟體的安裝和基本服務的配置.
然後將它做一個快照.每次做完一個項目實驗,就把它再做一個快照.要做新項目實驗時,就把它恢復快照到剛安裝系統的狀態,再來做實驗.
有要用到新的虛擬機系統時,就把老虛擬機系統恢復到剛安裝的狀態,再進行克隆
在克隆前,為了防止兩台衝突,最好網路為dhcp獲取方式,物理地址那一條也不要指定.克隆后的機器,MAC是會自動給你新創建的,不指定的話,會被自動認的
================================================
在線用戶管理命令
users
who
w
whoami
[root@li ~]# who
root :0 2011-04-19 09:38
root pts/1 2011-04-19 09:39 (:0.0)
root pts/2 2011-04-19 09:39 (:0.0)
[root@li ~]# w
09:44:01 up 6 min, 3 users, load average: 0.68, 0.46, 0.20
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 - 09:38 ?xdm? 2:15 0.06s /usr/bin/gnome-se
root pts/1 :0.0 09:39 0.00s 0.05s 0.00s w
root pts/2 :0.0 09:39 4:53 0.01s 0.01s bash
last 顯示登錄成功的日誌,讀取的是/var/log/wtmp
[root@li ~]# file /var/log/wtmp
/var/log/wtmp: data
strings /var/log/wtmp
lastb 顯示登錄失敗的日誌,讀取的是/var/log/btmp
[root@li ~]# file /var/log/btmp
/var/log/btmp: DBase 3 index file
lastlog lastlog 顯示是不同的用戶最后一次登錄的信息
[root@li ~]# file /var/log/lastlog
/var/log/lastlog: data
wall
write
對單用戶的通知,可以使用w查看在哪裡登錄,然後重定向給它信息
echo "hello" > /dev/pts/2
write 單獨對一個用戶寫信息
write user [ttyname]
在文本模式下做如下操作 :
ctrl alt F1 登錄root(tty1) ctrl alt F2登錄abc(tty2)
在第一個終端tty1
write abc tty2
hello abc
ctrl d --ctrl d結束
--在文本模式下如果顯示翻上去的頁面 shift pageup 向下shift pagedown
--在bash下查找以前使用的很長的命令 ctrl shift R
===============================================
磁碟管理
3primary 1 extended (在擴展分區內部分多個logical擴展分區)
MBR (master bootloader record,主引導記錄) 446(啟動設備)+ 64(分區表)+2(結束位)=512個位元組
64 個位元組 16個位元組存放一個分區,最多存放4個分區
[root@li ~]# fdisk -l
Disk /dev/sda: 320.0 GB, 320072933376 bytes --磁碟名,大小
255 heads, 63 sectors/track, 38913 cylinders --多少柱面
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux -- *代表引導
/dev/sda2 14 523 4096575 82 Linux swap / Solaris
/dev/sda3 12762 17860 40957717 83 Linux
/dev/sda4 17861 38913 169108222 5 Extended--擴展分區的end值最好要等於前面的柱面值,才表示磁碟利用完
/dev/sda5 17861 20410 20482843 83 Linux--邏輯擴展分區的範圍在擴展分區內
/dev/sda6 20411 21685 10241406 83 Linux
fdisk /dev/sda
Command (m for help): m
Command action
a toggle a bootable flag --表示一個分區作為引導分區
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition --刪除一個分區
l list known partition types --列出已知的分區類型
m print this menu
n add a new partition --增加一個分區
o create a new empty DOS partition table
p print the partition table --列印當前的分區表
q quit without saving changes --不保存退出
s create a new empty Sun disklabel
t change a partition's system id --改變分區類型ID值
u change display/entry units
v verify the partition table
w write table to disk and exit --保存退出
x extra functionality (experts only)
Command (m for help): l
0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx
5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
c FAT32
5 extend
7 NTFS
83 ext3
82 swap 交換分區
8e Linux LVM
fd Linux raid auto
Command (m for help): n
First cylinder (21699-38913, default 21699): --直接回車就是默認從21699柱面開始分
Using default value 21699
Last cylinder or size or sizeM or sizeK (21699-22195, default 22195): 200M --這裡M大小寫無所謂
Command (m for help): w --確認后,按w保存
[root@li etc]# partprobe 刷新到磁碟分區表
partprobe - inform the OS of partition table changes
mkfs -t ext3 /dev/sda9 格式化
mkfs.ext3 /dev/sda9
mkfs /dev/sda9 --直接這樣格式化,默認格成ext2
mkfs -t vfat /dev/sda9 --格成fat32
--注意:system id和格式化的文件系統類型不一定一致
mkdir /fdisk 建立一個用於掛載的目錄
mount /dev/sda9 /fdisk 把新分的分區掛載到新建的目錄
[root@li etc]# mount
/dev/sda8 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda6 on /notes type ext3 (rw)
/dev/sda7 on /share type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
/dev/sda9 on /fdisk type ext3 (rw) --這裡可以看到掛載的情況
實驗一:
驗證分了四個主分區后,就不能再分區了
實驗二:
驗證擴展分區不用光所有剩餘空間會造成浪費
實驗三:
驗證一個磁碟最多只能分15個分區
實驗四:
驗證同一個1G大小的分區,格成ext2和ext3的區別
df -h命令去查看比較
格成ext3的掛載情況
/dev/sda9 950M 18M 885M 2% /notes
格成ext2的掛載情況
/dev/sda9 950M 1.2M 901M 1% /notes
--可以看到ext3默認佔用的空間比較大,存放日誌需要空間
mbr的小實驗:
dd if=/dev/sda of=/mbr.bak bs=1 count=512 --備份mbr
dd if=/dev/zero of=/dev/sda bs=1 count=512 --幹掉mbr
再fdisk -l 查看不到分區信息,重啟系統會啟不來
dd if=/mbr.bak of=/dev/sda --恢復mbr的備份
=============================================
[root@li fdisk]# umount /fdisk/ --umount 時報busy的錯誤,一般是有程序佔用,最常見的就是bash佔用,要先cd出來,再umount
umount: /fdisk: device is busy
umount: /fdisk: device is busy
--如果cd出來了,umount時還是報busy錯誤,嘗試一下下面兩條命令
[root@li /]# lsof /fdisk/
[root@li /]# fuser -k /fdisk/
--同一個目錄,可以mount多個分區,但是只顯示最后一次mount的分區的內容,umount的話,就要一級一級的umount
--掛載不要掛載重要的目錄,一般只掛到/mnt/,/misc/,/media/或自定義創建的空目錄等
mount的用法
掛載遠程的NFS共享目錄
mount 10.1.1.35:/share/soft/ /fdisk/
配置方法如下:
# vim /etc/exports
/share/soft *(ro)
/share/yum *(ro)
# /etc/init.d/nfs restart
# /etc/init.d/portmap restart
掛載光碟 要加-o loop
mount /share/iso/rhel-5.4-server-i386-dvd.iso /mnt/ -o loop
mount -o loop /share/iso/rhel-5.4-server-i386-dvd.iso /mnt/
針對分區類型掛載
mount -t vfat /dev/sda10 /mnt
mount -t cifs /dev/sda10 /mnt
--cifs common internet file system windows網路鄰居共享使用的就是此協議
mount 的特殊用法:
--當你裝了兩個linux系統在同一台機器上,進入其中一個系統,看不到另一個系統的文件信息,但是可以看到它的分區 ,可以在當前系統建立一個目錄,把另一個系統的分區mount過來,就可以使用另一個系統的文件了
--直接把windows的共享目錄給mount過來
mount -t cifs -o username=administrator //10.1.1.161/knk /mnt
這樣使用的要注意的是 用戶名別打錯了 共享名盡量簡單 windows防火牆要關閉 guest用戶要打開
----------------
雙系統,兩個系統的分區可以直接掛載過來進行文件的修改和拷貝
=============================================================
建立一個swap分區
[root@li ~]# free -m
total used free shared buffers cached
Mem: 2017 964 1052 0 123 529
-/ buffers/cache: 312 1705
Swap: 4000 0 4000 --這裡
用fdisk 新建出一個分區 我這裡是一G大小 (注意分區ID值為82)
[root@li ~]# mkswap /dev/sda12 --格式為swap分區類型
Setting up swapspace version 1, size = 1011671 kB
[root@li ~]# swapon /dev/sda12 --使之生效
[root@li ~]# free
total used free shared buffers cached
Mem: 2065980 989096 1076884 0 126236 542432
-/ buffers/cache: 320428 1745552
Swap: 5084520 0 5084520
[root@li /]# swapoff /dev/sda12 --使之失效
[root@li /]# free
total used free shared buffers cached
Mem: 2065980 2010728 55252 0 9596 1710824
-/ buffers/cache: 290308 1775672
Swap: 4096564 136 4096428
另一種方法:
[root@li /]# dd if=/dev/zero of=/swapfile bs=1M count=1000 --用dd命令創建出一個1000M大小的文件,此文件為二進位文件,不能cat或者vi去看
1000 0 records in
1000 0 records out
1048576000 bytes (1.0 GB) copied, 4.40506 seconds, 238 MB/s
[root@li /]# mkswap /swapfile
Setting up swapspace version 1, size = 1048571 kB
# swapon /swapfile
[root@li /]# free
total used free shared buffers cached
=============================
設置開機后自動掛載目錄
[root@li ~]# cat /etc/fstab
LABEL=/1 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0--在內存上掛載
devpts /dev/pts devpts gid=5,mode=620 0 0--虛擬終端
sysfs /sys sysfs defaults 0 0--內存信息的反應
proc /proc proc defaults 0 0--虛擬目錄,都是系統正在運行的信息
LABEL=SWAP-sda2 swap swap defaults 0 0
/dev/sda6 /notes ext3 defaults 0 0
/dev/sda7 /share ext3 defaults 0 0
分區號或者標籤號 掛載點 掛載類型 掛載參數 是否掃描 掃描級別
加上下面一句讓/dev/sda9開機后自動掛載到/fdisk
/dev/sda9 /fdisk ext3 defaults 0 0
e2label /dev/sda9 dev9 --給/dev/sda9 做一個標籤
掛載參數
defaults rw,suid,dev,exec,auto,nouser,async --man mount查看
rw 讀寫 ro 只讀
suid setuid和setgid生效
dev 允許c類型和b類型的設備文件
exec 允許二進位文件的執行
auto 能夠使用-a參數掛載 使用mount -a 可以把fstab里的所有的自動再掛一次
nouser 禁止普通用戶掛載文件系統
================================
如何把
mount 10.1.1.35:/share/iso/ /mnt 寫到fstab里
vim /etc/fstab
10.1.1.35:/share/iso/ /mnt nfs defaults 0 0
--但不建議這樣做,如果35沒開機,或先關機,都會出現問題
autofs 自動掛載服務
mount -a 把fstab里寫的的重掛載一次,可以測試一下fstab是否寫錯,以防開機開不了
/etc/mtab --直接輸入mount命令顯示的信息來源於此
=================================================
實驗一:
把/etc/fstab里開機掃描的分區寫錯的情況:
開機不能進系統
輸入root密碼
repair system # mount -o rw,remount /
repair system # vim /etc/fstab --再去修改,重啟系統就可以了
--注意fstab文件里的各種錯誤會造成的情況也不相同
實驗二:
mv一下/etc/fstab
開機可以進入系統
進入后錯誤很多,有可能終端打不開
解決:使用文本tty模式,mv回來再重啟,就可以了
==============================
軟體包管理
.rpm 紅帽包管理 red hat packages management
yum-3.2.22-20.el5.noarch.rpm
xsane-0.991-5.el5.i386.rpm
nginx-0.8.4.tar.gz --源碼包
cacti-0.8.7b-1.fc8.src.rpm --rpm源碼包
軟體名-版本號-平台架構-包後綴
x86 複雜指令集 ,一般是PC平台
非x86 精簡指令集 一般指大型主機,伺服器類型
i386 支持386平台,386都是支持後來的586,686的平台,但是反過來686不一定支持386,686rpm包它有對平台做優化,那386就不一定支持
rpm -ivh yum-3.2.22-20.el5.noarch.rpm
-i 安裝
-v 看它的安裝過程
-h hash校驗
[root@li Server]# rpm -ivh yum-3.2.22-20.el5.noarch.rpm
warning: yum-3.2.22-20.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
package yum-3.2.22-20.el5.noarch is already installed
--表示已經安裝過了;上面有nokey的報警,就導入光碟的RPM-GPG-KEY文件
rpm --import RPM-GPG-KEY-redhat-release
[root@li Server]# rpm -ivh zsh-html-4.2.6-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:zsh-html ########################################### [100%]
--裝成功
[root@li Server]# rpm -ivh mysql-5.0.77-3.el5.i386.rpm
error: Failed dependencies:
perl(DBI) is needed by mysql-5.0.77-3.el5.i386
--包依賴性
[root@li Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm
warning: wireshark-1.0.8-1.el5_3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libsmi.so.2 is needed by wireshark-1.0.8-1.el5_3.1.i386
--庫依賴性
[root@li Server]# rpm -ivh libsmi-devel-0.4.5-2.el5.i386.rpm --再裝這個也有依賴性
warning: libsmi-devel-0.4.5-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libsmi = 0.4.5-2.el5 is needed by libsmi-devel-0.4.5-2.el5.i386
libsmi.so.2 is needed by libsmi-devel-0.4.5-2.el5.i386
--正確的安裝順序為:
[root@li Server]# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm
--衝突
[root@li ~]# rpm -ivh /share/soft/VMware-workstation/VMwareTools-6.0.2-59824.i386.rpm
Preparing... ########################################### [100%]
file /usr/bin/vm-support from install of VMwareTools-7240-59824.i386 conflicts with file from package VMwareWorkstation-6.0.2-59824.i386
file /usr/lib/libvmci.so.0.0.0 from install of VMwareTools-7240-59824.i386 conflicts with file from package VMwareWorkstation-6.0.2-59824.i386
--上面就是安裝虛擬機工具時,和你已經安裝的虛擬機軟體衝突了
解決方法:
先刪除衝突包,再安裝新包
也不一定非要按上面那樣做,有時候如果只是一個無關緊要的文件(比如說一個文檔衝突了)那麼我可以在安裝時指定不安裝此文檔就可以正常安裝了
關於一些特殊參數
--force --強制安裝
--nodeps --脫離依賴性
--noscript --不要命令的腳本功能
--nodocs --不安裝文檔包
rpm -qa --查找系統里已經安裝的rpm軟體包
rpm -ql --查找一個包將要安裝哪些文件,安裝到哪裡
rpm -qpl --當你接的包名不是rpm -qa查找出來的,需要接p參數;用於一個包在安裝之前,就想查看它會安裝哪些文件
rpm -qf --查找一個文件是屬於哪個包
rpm -qi --查看一個已安裝的包的信息
rpm -qpi
rpm -qc --查看配置文件
rpm -qd --查看文檔文件
--包的刪除
[root@li ~]# rpm -qa |grep wireshark
wireshark-1.0.8-1.el5_3.1 --要用這個名,不能用包的全名
[root@li ~]# rpm -e wireshark-1.0.8-1.el5_3.1
本文出自 「linuxart」 博客,請務必保留此出處http://linuxart.blog.51cto.com/686203/843909
[火星人 ] linux05-虛擬機配置,磁碟管理,mount已經有484次圍觀