一、CentOS 修改IP地址

修改对应网卡的IP地址的配置文件
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改以下内容

DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
IPADDR=12.168.1.2 #如果设置网卡获得 ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0 #网卡对应的网络掩码
NETWORK=192.168.1.0 #网卡对应的网络地址
ONBOOT=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备

二、CentOS 修改网关
修改对应网卡的网关的配置文件
[root@centos]# vi /etc/sysconfig/network

修改以下内容
NETWORKING=yes(表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动)
HOSTNAME=centos(设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应)
GATEWAY=192.168.1.1(设置本机连接的网关的IP地址。例如,网关为10.0.0.2)

三、CentOS 修改DNS

修改对应网卡的DNS的配置文件
# vi /etc/resolv.conf
修改以下内容

nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

四、重新启动网络配置
# service network restart

# /etc/init.d/network restart

修改 IP 地址
即时生效:
# ifconfig eth0 192.168.0.2 netmask 255.255.255.0
启动生效:
修改 /etc/sysconfig/network-scripts/ifcfg-eth0

修改网关 Default Gateway
即时生效:
# route add default gw 192.168.0.1 dev eth0
启动生效:
修改 /etc/sysconfig/network

修改 DNS
修改/etc/resolv.conf
修改后可即时生效,启动同样有效

修改 host name
即时生效:
# hostname centos1
启动生效:
修改/etc/sysconfig/network

 

posted @ 2012-08-05 02:05 卡洛shll 阅读(359) | 评论 (0)编辑 收藏

dbx(SUN studio)调试工具:在利用 dbx 对程序进行源代码级调试前,必须使用 -g 选项

启动:dbx program_name加载要调试的程序,调试JAVA程序dbx program_name.class|.jar,可以指定进程ID来连接正在运行的进程进行调试。

也可以在dbx运行时加载调试程序:(dbx)debug program_name

运行调试程序:run [运行参数] 

查看core文件:可以dbx program_name core,或者dbx - core,再使用where命令显示栈跟踪,找到崩溃位置

设置断点:stop in 函数;stop at file:line ; 也可以先通过file file-name设置当前文件,list function查看源文件,确定要设置断点的行数。在C++中可以将关键字(inmember、inclass、infunction 或 inobject)在类,成员函数,对象中设置断点。stop change variable可设置当变量改变时停止。条件停止断点:stop cond condition。另外在动态库中可以在动态共享库的函数中以在程序启动时在链接的库中设置断点的同样方式来设置断点。

列出所有断点:status

删除断点:delete 断点号

单步执行:step、next,step 命令步入函数,而 next 命令步过函数。step up将一直执行,直至当前函数将控制返回调用它的函数为止。

继续执行:cont

查看调用栈:where 调用栈代表那些已被调用但尚未返回各自调用程序的所有当前活动例程。在栈中,函数及其参数按调用的顺序进行存放。栈跟踪显示程序流执行的停止位置以及执行如何到达此点。它提供程序状态的简明描述。

检查变量:print 变量名 

退出:quit

连接已运行的进程:attach pid

分离已连接的进程:detach pid

查找符号:whereis symbol  打印指定符号所有具体值的列表

要打印输出标识符的声明whatis

对子进程使用运行时检查,可通过attach 子进程ID连接到子进程进行调试。

要显示当前进程的所有线程信息:执行thread,切换到指定线程:thread thr_id

信号处理:

cont -sig signal将信号转发到进程;catch显示当前正在捕获的信号列表;ignore显示程序忽略信号列表

shell方式切换:sh

posted @ 2012-08-04 17:21 卡洛shll 阅读(443) | 评论 (0)编辑 收藏

C/C++ string库(string.h)提供了几个字符串查找函数,如下:

memchr在指定内存里定位给定字符
strchr在指定字符串里定位给定字符
strcspn返回在字符串str1里找到字符串str2里的任意一个字符之前已查找的字符数量
strrchr在字符串里定位给定字符最后一次出现的位置
strpbrk在字符串str1里定位字符串str2里任意一个首次出现的字符
strspn返回字符串str1从开始字符到第一个不在str2中的字符个数
strstr在字符串str1中定位字符串str2首次出现的位置



函数说明:

1、memchr

原型:const void * memchr ( const void * ptr, int value, size_t num);

            void * memchr ( void * ptr, int value, size_t num);

参数:ptr,待查找的内存指针;

            value,要查找的值;

            num,内存大小。

说明:在ptr指向的内存中查找value,返回指向和value首次匹配的元素指针,如果没有找到,返回NULL指针。


2、strchr

原型:const char * strchr ( const char * str, int character);

            char * strchr ( char * str, int character);

参数:str,待查找字符串指针;

            character,要查找的值。

说明:在字符串str中查找character,返回指向和character首次匹配的元素指针,如果没有找到,返回NULL指针。


3、strcspn

原型:size_t strcspn ( const char * str1, const char * str2);

参数:str1,待查找的字符串指针;

            str2,要查找的字符串指针。

说明:在str1中查找str2中的字符,返回找到str2中任意一个字符时已查找的字符个数。


4、strrchr

原型:const char * strrchr ( const char * str, int character);

            char * strrchr ( char * str, int character);

参数:str,待查找的字符串指针;

            character,要查找的值。

说明:在str中查找character,返回指向与character最后一次匹配的元素的指针,如果没有找到,返回NULL指针。


5、strpbrk

原型:const char * strpbrk (const char * str1, const char * str2);

            char * strpbrk ( char * str1, const char * str2);

参数:在str1中查找str2中任意一个字符,返回指向与首次出现的str2中的任意一个字符匹配的元素的指针,如果没有找到,返回NULL指针。


6、strspn

原型:size_t strspn ( const char * str1, const char * str2);

参数:str1,待查找的字符串指针;

            str2,要查找的字符串指针。

说明:从str1的第一个字符开始算起,直到出现一个不在str2中的字符为止,返回字符个数。


7、strstr

原型:const char * strstr ( const char * str1, cosnt char *str2);

            char * strstr ( char * str1, const char * str2);

参数:str1,待查找的字符串指针;

            str2,要查找的字符串指针。

说明:在str1中查找匹配str2的子串,并返回指向首次匹配时的第一个元素指针。如果没有找到,返回NULL指针。

posted @ 2012-08-01 08:23 卡洛shll 阅读(653) | 评论 (0)编辑 收藏

      网络上流传一种方案,用opendir(), readdir(),closedir()方式解决。我也尝试使用,发现不能解决我的需求。这种方案,仅仅能遍历给出所有的文件名,估计效率比较高吧。一旦遍历中需要对文件进行操作就会发生意想不到的事情,比如进入了死循环,程序一直在while readdir()中纠结。下面贴上网络上流传的这段代码:

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
int testdir(char *path)
{
 struct stat buf;
 if(lstat(path,&buf)<0)
 {
  return 0;
 }
 if(S_ISDIR(buf.st_mode))
 {
  return 1; //directory
 }
 return 0;
}


int directory(char *path)
{
 DIR *db;
 char filename[128];
 struct dirent *p;
 db=opendir(path);
 if(db==NULL)return 0;
 memset(filename,0,128);
 while ((p=readdir(db)))
 {
  if((strcmp(p->d_name,".")==0)||(strcmp(p->d_name,"..")==0))
   continue;
  else
  {
   sprintf(filename,"%s/%s",path,p->d_name);
   if(testdir(filename))
   {
    directory(filename);
   }
   else {
    printf("%s/n",filename);
   }
  }
  memset(filename,0,64);
 }
 closedir(db);
 return 0;
}
int main(int argc,char **argv)
{
 char *path="./"; //要遍历的目录
 if(access(path,F_OK)==0&&testdir(path))
 {
  printf("is directory/n");
  directory(path);
 }
 else printf("%s not exist/n",path);
}


      后来我又找到了另外还有一种方案,这种方案能帮我解决不能打开文件进行操作的疑惑。主要是使用ftw.h里的方法,该头文件意义是 file tree wall文件目录树遍历:先贴上代码:


#include <iostream>
#include <fstream>
using namespace std;

#include <string.h>
#include <ftw.h>

int fn(const char* file, const struct stat* sb, int flag)
{
    char    line[256] = {0};
    int     count = 0;

    if (flag == FTW_F) {    // 如果是文件
        cout<<"The File's name : "<<file<<endl;
        /*
        ifstream file(file);
        if (file.isopen()) {
            file.getline(line, 100);
            cout<<line<<endl;
        }
        */
       
        FILE*   fp;
        fp = fopen(file, "r");
        fgets(line, sizeof(line), fp);
        fclose(fp);
        printf("Line's data######## : %s\n", line);
       
    }else if (flag == FTW_D) {  // 如果是子目录(遍历的第一个是根目录)
        cout<<"The Directory name : "<<file<<endl;
    }

    return 0;
}

int main(int argc, char** argv)
{
    ftw("home/~", fn, 0);
    return 0;
}




posted @ 2012-07-29 10:05 卡洛shll 阅读(2762) | 评论 (2)编辑 收藏

      今天由于项目中需要对一些文本做字符串处理后生成string,插入map。
      刚开始时,我就打算用std::string处理结果,久没用突显生疏啊,看到find_first_of()就望文生义了,调试了半天才发现这是对传入字符串的每个字符的查找函数,赶紧撤出,去cplusplus reference逛了逛,发现我用错了,应该使用find()才能解决我的需求,find已经轻车上路,问题又来了,到了截获字段这步了,当然,只能用substr()了,由于久没用到,对第二参数n传入的时候发生了错误认识,n应该是字符的计数,第一个参数应该是要截获的子字符串的头位置,我把第二个参数以结束位置的方式传入了,唉。。。怪不得调试了半天。。。说是陷阱,也是我马虎大意的表现啊。。。不应该,如果参数为count那就直观多了。这里又引申一个问题:变量命名,其实这是个很现实的问题,为了增加开发效率,开发人员有必要对变量进行管理。

posted @ 2012-07-29 09:56 卡洛shll 阅读(1700) | 评论 (0)编辑 收藏

     摘要: ISO C 标准头文件 Header FreeBSD 5.2.1 Linux 2.4.22 Mac OS X 10.3 Solaris 9 Description <assert.h> • • • • verify prog...  阅读全文

posted @ 2012-07-29 09:45 卡洛shll 阅读(821) | 评论 (0)编辑 收藏

都说symbian没落了,可是我却乐此不疲,因为我觉得既然西比安支持C++开发,必然有值得学习的地方,于是就开始捣鼓这方面的开发资料。
万事开头难,这句谚语正确,以我自己的习惯,先研究symbian字符串显示方面吧,毕竟,字符串操作在编程中,尤其是C++应用开发编程,占有大比重。都说symbian显示中文字符串麻烦,于是,按照国际惯例,先来个HelloWorld试试,建立一个GUI应用程序工程,利用菜单消息弹出提示框来显示。依照教程上的方法死活弄不出来,这时有点急了,只能先膜拜下百度大神,在网上搜到一篇文章http://mobile2008.blogbus.com/logs/30170600.html。  
但是这篇文章所用SDK估计跟我目前用的不一样,文章是这样的:
symbian中的菜单中的写字,真是复杂啊。 1.在L31中定义字符串,保存成utf-8 例如定义为 language.L31文件,L31表示此文件中保存的是中文简体。 如下 rls_string qtn_app_short_caption_string "中文显示" 2. 在LOC中引用此文件: #ifdef LANGUAGE_31 #include "Language.l31" #endif 3.在rss中引用LOC文件 #include "ChineseDisplay.loc" 并且定义变量 ......................... 第一种引用方式,这里的字符串显示在菜单面板中 MENU_ITEM { command = EChineseDisplayCmdHello; txt = qtn_hello; .................... 第二种引用方式,将其放入资源缓存。并在任意cpp中都可以引用(下边一段代码)。 RESOURCE TBUF r_example_text_hello { buf = qtn_hello ; } .... #include <ChineseDisplay.rsg> iEikonEnv->ReadResourceL(iHelloText, R_EXAMPLE_TEXT_HELLO ); 例如在下边的按钮事件中调用: case EChineseDisplayCmdTest: { HBufC* helloText; // now reads the text from resource file to helloText helloText = iEikonEnv->AllocReadResourceL( R_EXAMPLE_TEXT_HELLO ); iEikonEnv->InfoMsg( *helloText ); delete helloText; break; }

posted @ 2010-12-24 16:22 卡洛shll 阅读(328) | 评论 (0)编辑 收藏

今天在网上找资料时,看到一位网友的博客签名   “写博客督促自己思考”,顿时被雷了下。
作为一名程序员,经常思考在所难免,不过,对于曾经思考过的东西,又记住了多少呢?其实我个人认为程序员是那类很健忘的人,往往把工作都推给了计算机去弄,自己只为逻辑正确性思考,但是在现实工作中,往往又有很多类似成果的和经验总结需要做的,单单靠自己大脑那有限的内存资源(虽然有时有点像硬盘),是难以管理这些抽象的思维的。所以,感觉这位仁兄给了我一个很好的建议---写博客,或工作日志。

posted @ 2010-12-24 16:07 卡洛shll 阅读(194) | 评论 (0)编辑 收藏

有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预。这里,提供一种让程序开机自动运行的方法。见下面代码:
BOOL CXXX::SetAutoRun(CString strPath)
{
CString str;
HKEY hRegKey;
BOOL bResult;
str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS)
bResult=FALSE;
else
{
_splitpath(strPath.GetBuffer(0),NULL,NULL,str.GetBufferSetLength(MAX_PATH+1),NULL);
strPath.ReleaseBuffer();
str.ReleaseBuffer();
if(::RegSetValueEx( hRegKey,str,0,REG_SZ,(CONST BYTE *)strPath.GetBuffer(0),strPath.GetLength() )!=ERROR_SUCCESS)
bResult=FALSE;
else
bResult=TRUE;
strPath.ReleaseBuffer();
}

return bResult;
}

CString CXXX::GetMyPath()
{
CString strPath;
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
strPath.ReleaseBuffer();
return strPath;
}


//把上面的两个函数加入在程序初始化的地方
CString mypath;
mypath=GetMyPath();
SetAutoRun(mypath);


****************************************************************************

  • vc实现开机自动运行的代码程序

CString sPath; 
 int nPos;
 HKEY RegKey;
 GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
 sPath.ReleaseBuffer();
 nPos=sPath.ReverseFind('\\');
 sPath=sPath.Left(nPos);
 CString lpszFile=sPath+"\\双机切换软件.exe";
 CFileFind fFind;
 BOOL bSuccess;
 bSuccess=fFind.FindFile(lpszFile);
 fFind.Close();
 if(bSuccess)
 {
  CString fullName;
  fullName=lpszFile;
  RegKey=NULL;
  RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey);
  RegSetValueEx(RegKey,"KJ65N自动切换软件",0,REG_SZ,(const unsigned char*)(LPCTSTR)fullName,fullName.GetLength());
  RegCloseKey(RegKey);
  this->UpdateData(FALSE);

  return TRUE;
 }
 else
 {
  ::AfxMessageBox("没找到执行程序,自动运行失败");
  exit(0);
  
  return FALSE;
 }
 
 return TRUE;

  • vc实现删除开机自动运行的代码程序

 CString sPath; 
 int nPos;
 HKEY RegKey;
 GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
 sPath.ReleaseBuffer();
 nPos=sPath.ReverseFind('\\');
 sPath=sPath.Left(nPos);
 CString lpszFile=sPath+"\\双机切换软件.exe";
 CFileFind fFind;
 BOOL bSuccess;
 bSuccess=fFind.FindFile(lpszFile);
 fFind.Close();
 if(bSuccess)
 {
  CString fullName;
  fullName=lpszFile;
  RegKey=NULL;
  RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey);
  RegDeleteValue(RegKey,"KJ65N自动切换软件");
  RegCloseKey(RegKey);
  this->UpdateData(FALSE);
 }
 else
 {
  ::AfxMessageBox("没找到执行程序,自动运行失败");
  exit(0);
 }

  • vc实现开机自动运行的代码程序

CString sPath; 
 int nPos;
 HKEY RegKey;
 GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
 sPath.ReleaseBuffer();
 nPos=sPath.ReverseFind('\\');
 sPath=sPath.Left(nPos);
 CString lpszFile=sPath+"\\双机切换软件.exe";
 CFileFind fFind;
 BOOL bSuccess;
 bSuccess=fFind.FindFile(lpszFile);
 fFind.Close();
 if(bSuccess)
 {
  CString fullName;
  fullName=lpszFile;
  RegKey=NULL;
  RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey);
  RegSetValueEx(RegKey,"KJ65N自动切换软件",0,REG_SZ,(const unsigned char*)(LPCTSTR)fullName,fullName.GetLength());
  RegCloseKey(RegKey);
  this->UpdateData(FALSE);

  return TRUE;
 }
 else
 {
  ::AfxMessageBox("没找到执行程序,自动运行失败");
  exit(0);
  
  return FALSE;
 }
 
 return TRUE;

  • vc实现删除开机自动运行的代码程序

 CString sPath; 
 int nPos;
 HKEY RegKey;
 GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
 sPath.ReleaseBuffer();
 nPos=sPath.ReverseFind('\\');
 sPath=sPath.Left(nPos);
 CString lpszFile=sPath+"\\双机切换软件.exe";
 CFileFind fFind;
 BOOL bSuccess;
 bSuccess=fFind.FindFile(lpszFile);
 fFind.Close();
 if(bSuccess)
 {
  CString fullName;
  fullName=lpszFile;
  RegKey=NULL;
  RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey);
  RegDeleteValue(RegKey,"KJ65N自动切换软件");
  RegCloseKey(RegKey);
  this->UpdateData(FALSE);
 }
 else
 {
  ::AfxMessageBox("没找到执行程序,自动运行失败");
  exit(0);
 }


posted @ 2009-09-05 18:41 卡洛shll 阅读(997) | 评论 (0)编辑 收藏

1、打开菜单“VM -> Install VMware Tools”,然后有光盘自动弹出,把里面的源代码拷贝出来.我的文件是VMwareTools-6.0.4-93057.tar.gz,我把它拷贝到/opt里.

2 、安装 VMware TOOLS

cd /opt

tar -zxvf VMwareTools-6.0.3-80004.tar.gz

cd vmware-tools-distrib/

./vmware-install.pl

再一路安回车,然后在What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]会怎么也找不到C Header.

3、下载相应的kernel-devel.rpm包进行安装

首先查看内核版本:uname -r一下,我的是2.6.25-14.fc9.i686,

所以下载kernel-devel-2.6.25-14.fc9.i686.rpm,然后运行rpm -ivh kernel-devel-2.6.25-14.fc9.i686.rpm 进行安装. 内核安装完毕后,需要用这个命令确定内核 C header 的安装目录:ls -d /usr/src/kernels/$(uname -r)*/include

安装内核具体步骤如下:

[root@localhost ~]# uname -r
2.6.25-14.fc9.i686
[root@localhost ~]# rpm -q kernel-devel
package kernel-devel is not installed
[root@localhost ~]# cd /home
[root@localhost home]# wget ftp://rpmfind.net/linux/fedora/releases/9/Everything/i386/os/Packages/kernel-devel-2.6.25-14.fc9.i686.rpm
[root@localhost home]# rpm -i kernel-devel-2.6.25-14.fc9.i686.rpm
[root@localhost home]# rpm -q kernel-devel
kernel-devel-2.6.25-14.fc9.i686

注:

安装vmware tools 的时候,如果提示没有权限,那么需要用chmod 777 文件名 来添加权限,比如 提示vmware-install.pl没有权限,那么用下面的命令:chmod 777 vmware-install.pl

另:内核头文件C header files下载地址:

http://rpmfind.net/linux/rpm2html/search.php?query=kernel-devel

4、再重新运行 ./vmware-install.pl ,一路回车下来,会出现In file included from include/linux/string.h:11, from /tmp/vmware-config3/vmhgfs-only/cpName.h:18, from /tmp/vmware-config3/vmhgfs-only/cpName.c:18: include/linux/types.h:40: 错误:与‘uintptr_t’类型冲突 /tmp/vmware-config3/vmhgfs-only/vm_basic_types.h:170: 错误:‘uintptr_t’的上一个声明在此 make[2]: *** [/tmp/vmware-config3/vmhgfs-only/cpName.o] 错误 1 make[1]: *** [_module_/tmp/vmware-config3/vmhgfs-only] 错误 2 make[1]: Leaving directory `/usr/src/kernels/2.6.25-14.fc9.i686' make: *** [vmhgfs.ko] 错误 2 make: Leaving directory `/tmp/vmware-config3/vmhgfs-only' Unable to build the vmhgfs module.

5、解决的方法是:(有时不需要,看不清就复制到记事本里看)

下载最新的open-vm-tools,现在可以下载到最新版本是open-vm-tools-2008.06.03- 96374.tar.gz (很难找到,给个链接,用迅雷可以下载:

http://jaist.dl.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-2008.06.03-96374.tar.gz).

tar xzvf open-vm-tools-2008.06.03-96374.tar.gz

cd open-vm-tools-2008.06.03-96374/

./configure && make

cd modules/linux/

for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done

cd ../../..

mv -f open-vm-tools-2008.06.03-96374/modules/linux/*.tar vmware-tools-distrib/lib/modules/source/

cd vmware-tools-distrib/

sudo ./vmware-install.pl

一路回车,直到出现屏幕分辨率的选项,选你喜欢的分辨率.搞定。

6、装好后还有一个问题,当你向共享文件夹写文件时总提示没有权限,root用户都提示没有权限.看了一下日志,是selinux在做怪,配置SElinux太麻烦了,不如关了它.vi /etc/sysconfig/selinux找到SElinux=enforcing这一行把它改为SElinux=disabled.重启后一切就ok了.

上网:

(1)首先设置VMware的网络连接为NAT(VMnet8),然后在宿主机的网上邻居中查看VMnet8的IP地址,一般是192.168.X.2 的,记下X,此次我的为74,每次安装VMware后X都会变的,我上次的就是31.子网掩码为:255.255.255.0

(2)然后在Widows下更改网络连接的VMnet8的属性.注意这里要设置成192.168.X.1,非192.168.X.2

(3)接着进入LINUX,进行网络配置,在LINUX下点系统/网络/eth0编缉,把IP设置成和VMnet8一个网段的 IP(192.168.X.Z/255.255.255.0),DNS设置成刚才查看的那个IP192.168.X.2即可.X要跟前边的相同,Z可任 意,但不可超过255.

(4)接着就激活配置,保存.重启LINUX,然后打开LINUX下的火狐浏览器,在地址栏上写入网址,耶,可以上网了.

共享:

在VMware 6.0上,VMware打开时,但LINUX系统尚未启动时,可点击VMware左边的选项“编辑虚拟机设置”,然后点击"添加",接着“下一步”,然后 选择“使用一个物理磁盘(对于高级用户)”,选择后,点击“下一步”,此时可能会出现一个对话框,提示:“设备使用时.对于这项功能只提供有限的支持.

更多的文档,请查看 http://www.vmware.com/info?id=15 并点击链接“Installing an Operating System onto a Raw Partition from a Virtual Machine.”之类的,点击“确定”,此时会出现添加硬件向导界面,设备除按默认保持不变,用法处选择使用单个分区,点击“下一步”,此时会让选择然 分区,可以找到相应的需要挂载的windows分区分区后,在前面打对勾确定后即可,点击下一步,然后输入你的虚拟机内保存的文件名,如D.vmdk,点 击完成.需要注意的是此种方式每次只能共享一个windows分区而且格式应为FAT32格式.若要贡献多个windows分区,那就用同样的方法多添加 几次.这个仅是第一步,下面还需将其挂载上.(有时不需要挂载)当启动LINUX系统后

[land @host root]#fdisk -l #查看目前LINUX系统中所存在的分区

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 1049 8426061 2d Unknown
/dev/hda2 1050 9729 69722100 f W95 Ext'd (LBA)
/dev/hda5 1050 4209 25382668+ b W95 FAT32
/dev/hda6 4210 4846 5116671 2d Unknown
/dev/hda7 4847 7368 20257933+ 2d Unknown
/dev/hda8 7369 9485 17004771 2d Unknown
/dev/hda9 9486 9729 1959898+ 2d Unknown

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 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 78 522112+ 82 Linux swap
/dev/sda3 79 1305 9855877+ 83 Linux

此时会发现多出几个分区以上红色区域均为挂载后所显示的,找到相应的windows分区,进行挂载如:

[land @host root]#mount /dev/hda5 /mnt

如果中文显示乱码请将挂载的盘卸载后从新用这个命令挂载,已解决中文乱码问题

#mount -o loop /dev/hda5 /mnt #参数是-小写呕

这个方式在LINUX下可以访问windows真机的资源,一般读取是没有什么问题的,当想从LINUX中写入数据到windows分区的时候,可能不成功,所以这种方法只能称为VMware下LINUX共享windows真机资源.

posted @ 2009-07-19 09:16 卡洛shll 阅读(1016) | 评论 (0)编辑 收藏

仅列出标题
共3页: 1 2 3