`
kavy
  • 浏览: 858870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux文件服务器搭建与使用实例

 
阅读更多

1.1 NFS是什么?

NFS 是网络文件系统 Network FileSystem 的 简称 ,最早是由 Sun 公司 开发 出来 的,目的是想  不同的 机器、不同的 操作 系統可以 共享文件。  Unix/Linux类的 操作系统  可以  NFS 来搭建文件服务器。 对于一个真实的运行环境而言,配置和启用文件服务器都是很有必要的。把重要的数据集中存储和管理,其安全性显然比分布存储要可靠得多。

 

1.2 NFS有何优缺点? 

 

本节内容来自 NFS相关资料【2】。

优点:主要用在Linux与Linux或Linux与Unix之间的文件共享,使用时很方便简单好用,所以在共享时还是经常使用的。 

缺点:NFS是基于主机来认证和访问的,明文传输,数据易被篡改和窃取从而存在很大的安全隐患,NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制, 在RPC远程调用中,一个SUID的程序就具有超级用户权限。

 

1.3 NFS与SAMBA比较如何?

 

本节内容来自NFS相关资料【3】。

samba是DEC开始开发的,用于在不同的Unix机器间进行资源共享,采用udp协议。后来基于tcp重新开发后,效率有了很大提高。它使用的协议是 SMB。微软不愿意交License费,在windows系统中对该协议重新进行了实现。既然samba和windows中的网络邻居都使用SMB协议。 那么,samba自然主要用于在windows和unix之间共享资源。资源包括文件、打印机等等。 
NFS是SUN开发的,用于UNIX机器之间的资源共享。其设置相当容易,主要是配置/etc/exports文件,然后运行exportfs -a来共享出来。现在NFS已经成为UNIX/LINUX上的标配。 
两者的文档都说自己的效率高一些:)从我的经验来看,nfs的效率要稍微高一些,只是差别不是太大。 
从配置来看,samba比较复杂,nfs比较简单。但是复杂有复杂的道理,它让我们能够灵活的配置。

 

1.4 一个使用NFS作为文件服务器的实例

 

某IVR系统中包括如下几种功能的机器节点:(只描述与文件服务器有关的信息)

节点类型 与文件服务器的相关需求 操作系统,硬件或开发环境 共享目录情况
文件服务器 用于存放大量的语音文件。 Linux,Raid5,硬盘容量2T ip地址为192.168.6.55,共享目录为/vmsnfs。
后台服务器 会定期删除文件服务器的过期文件,会按用户的要求删除文件。 Linux,C++ 文件服务器的客户端,也使用/vmsnfs来访问文件服务器上的共享目录。
CTI服务器 录制语音文件保存到文件服务器,播放语音文件。 Windows XP,C++ 文件服务器的客户端,将此共享目录映射到驱动器N:。
WEB服务器 用户或管理员需要访问文件服务器下载或播放语音文件。 Linux,Java,Tomcat 文件服务器的客户端,也使用/vmsnfs来访问文件服务器上的共享目录。

这样配置之后,此系统中的所有Linux机器都可以通过/vmsnfs访问文件服务器,而Windows则通过N:来访问,使程序几乎可以透明的访问文件服务器了。

2 Linux下 NFS 服务端的设置

2.1 在Linux下配置NFS共享目录

 

下面以实例来讲述如何在Linux下配置NFS服务器,假定我们需要共享的目录是/vmsnfs。

 

如果这个目录还不存在,那么就先创建它;否则,跳过此步。

1
mkdir /vmsnfs

将该目录中所有文件和子目录的属主和组更改为nfsnobody。

1
2
3
4
chown -R nfsnobody /vmsnfs
chgrp -R nfsnobody /vmsnfs
#或者并作一条执行
chown -R nfsnobody:nfsnobody /vmsnfs

注:如果以后直接在服务器上的共享目录创建文件或目录,要记得将属主和组设置为nfsnobody。否则客户端在访问时会出现“Permission denied”。

 

在/etc/exports文件中添加所需要共享的目录及参数,比如

/vmsnfs *(rw,async)

这里的意思是说,需要共享/vmsnfs这个目录,对所有客户端(*)都是可读写的(rw),并且是异步方式来访问。 因为不设置其他参数, 客户端创建文件或目录时默认的属主和组就是nfsnobody,即使客户端使用的账号是root。这也就是上面为什么要更改文件或目录的属主和组为nfsnobody的原因。

 

让共享目录生效

(重新)启动nfs服务

 

1
2
3
4
service portmap start
service nfs restart
#或者
exportfs -a

检查防火墙设置

如果开启了防火墙,那么就要检查一下与nfs有关的端口是否允许访问。

目前我尝试了一些方法,都没法在开启防火墙的情况下正常使用nfs,所以干脆把防火墙关掉了。

1
2
chkconfig iptables off
service iptables stop

有这方面经验的大虾请帮忙补充一下解决办法。

 

如果要永久的共享此目录,最好将相关的服务设置为开机自动启动。

1
2
chkconfig portmap on
chkconfig nfs on

至此,在Linux下配置NFS服务端的任务就完成了。(建议:重启一下系统确认配置能自动设置)

 

2.2 在Linux下配置NFS的其它问题

 

Q:能限定共享目录客户端的网段和读写权限吗?

A:可以。比如:可以设置有些网段或机器是只读的,有些是可读写的。如下所示:

1
2
3
/vmsnfs  192.168.0.0/24(rw,async) 192.168.1.0/255.255.255.0(ro,sync)
/vmsnfs   192.168.0.0/24(rw)    *(ro)
/vmsnfs  192.168.6.179(rw) 192.168.6.17(ro)

如果想了解更多NFS配置参数,请参考NFS相关资料【1】。

 

Q:怎么确认nfs共享服务已经在运行了?

A:使用chkconfig命令查看portmap和nfs服务是否都已经启动,如下所示:

1
2
3
4
5
[root@Ansen ~]#  chkconfig --list portmap
portmap         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[root@Ansen ~]#  chkconfig --list nfs
nfs             0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[root@Ansen ~]#

 

Q:怎么确认某个目录已经被分享?

A:使用exportfs可以看到共享目录列表,exportfs -v可以看到更详细的信息。

1
2
3
4
5
6
7
8
[root@Ansen ~]#  exportfs
/vmsnfs         <world>
[root@Ansen ~]#  exportfs -v
/vmsnfs         <world>(rw,async,wdelay,root_squash,no_subtree_check,anonuid=65534,anongid=65534)
[root@Ansen ~]#  showmount -e
Export list for Ansen:
/vmsnfs *
[root@Ansen ~]#

 

Q:修改了/etc/exports如何使之生效?

A:有多种方式,如下之一:

1
2
3
exportfs -a
exportfs -r
service nfs restart

 

Q:如何显示哪些端口用来提供rpc服务?

A:rpcinfo -p 或者 rpcinfo -p localhost

在 NFS服务没有启动时

1
2
3
4
5
6
[root@Ansen ~]# rpcinfo -p
   程序 版本 协议   端口
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp    984  status
    100024    1   tcp    987  status

启动 NFS服务之后

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@Ansen ~]# rpcinfo -p
   程序 版本 协议   端口
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp    984  status
    100024    1   tcp    987  status
    100011    1   udp   1006  rquotad
    100011    2   udp   1006  rquotad
    100011    1   tcp   1009  rquotad
    100011    2   tcp   1009  rquotad
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp  34440  nlockmgr
    100021    3   udp  34440  nlockmgr
    100021    4   udp  34440  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100021    1   tcp  37635  nlockmgr
    100021    3   tcp  37635  nlockmgr
    100021    4   tcp  37635  nlockmgr
    100005    1   udp    609  mountd
    100005    1   tcp    612  mountd
    100005    2   udp    609  mountd
    100005    2   tcp    612  mountd
    100005    3   udp    609  mountd
    100005    3   tcp    612  mountd

 

Q:怎么看哪些客户端正在用共享目录?

A: 使用showmount -a查看被客户端挂载过的详细信息,showmount -d查看被客户端挂载过的共享目录。在showmount手册页中可以 看到showmount -a看到的信息是不可靠的,像下面列出192.168.6.113就只是曾经访问nfs服务器的机器,而此时并未启动。

1
2
3
4
5
6
7
8
9
[root@Ansen ~]# showmount -a
All mount points on Ansen:
192.168.6.113:/vmsnfs
192.168.6.179:/vmsnfs
192.168.6.17:/vmsnfs
[root@Ansen ~]# showmount -d
Directories on Ansen:
/vmsnfs
[root@Ansen ~]#

 

Q:怎么从别的机器看nfs服务端共享了哪些目录?

A:使用showmount -e <ip_or_host>就可以看到nfs服务器上共享的目录情况。

[root@Ansen ~]# showmount -e 192.168.6.55

Export list for 192.168.6.55:

/vmsnfs *

[root@Ansen ~]# 

 

Q:在Linux配置了防火墙的情况下怎么启用NFS服务?

A:有待研究,欢迎高手指点。我使用的RHEL5.5上默认的防火墙设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@Ansen ~]# iptables-save
# Generated by iptables-save v1.3.5 on Thu Nov 18 09:44:44 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [900:105354]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Nov 18 09:44:44 2010
[root@Ansen ~]#

 

3 Linux下 NFS 客户端的设置

Unix/Linux系统把一切设备都当做文件来处理,NFS共享目录的使用也不例外。此处假定NFS服务器地址为192.168.6.55,共享目录为/vmsnfs。那么在其他Linux机器如果要访问这个共享目录,首先要挂载 (mount)此nfs共享目录,比如也可以是/vmsnfs。这样对于所有Linux机器上的程序都可以访问/vmsnfs目录下的文件或子目录,如同这些文件就存储在本机之上。

 

3.1 通过mount命令来设置

 

首先创建挂载点,就是Linux下一个普通目录。

1
mkdir /vmsnfs

 

然后使用mount命令将nfs共享目录挂载上来。

1
mount -t nfs 192.168.6.55:/vmsnfs /vmsnfs

 

如果不想再使用此nfs共享目录,可以使用umount命令卸载掉。

1
umount /vmsnfs

 

这种方式使用nfs共享目录有个问题,它是临时的,重新启动机器就会丢失。最好的方式是采用autofs来自动挂载。

 

3.2 使用autofs自动来设置

 

mount 是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、 NFS、 SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不 能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文 件系统。免去我们手动挂载的麻烦。

 

创建/etc/auto.nas文件

在文件中添加一行

1
vmsnfs -rw,rsize=8192,wsize=8192,soft,intr 192.168.6.55:/vmsnfs

 

修改/etc/auto.master

添加一行

1
/nas /etc/auto.nas --timeout=0

注意:--timeout=0表明一旦挂载就不会自动被卸载(umount)。也可以指定一个别的正数,比如600,那么如果600秒之内没有使用nfs就 会自动被卸载。如果没有--timeout参数部分,则默认为600秒(10分钟),这个参数在/etc/sysconfig/autofs文件中可以用 TIMEOUT项指定。

 

将autofs服务设置为开机自启动

先使用chkconfig --list autofs检查一下autofs服务是否已经设置为自启动了。

1
2
[root@Ansen ~]# chkconfig --list autofs
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off

如果你发现输出中全部为off,使用chkconfig autofs on设置为开机自启动。

1
[root@Ansen ~]# chkconfig autofs on

注:autofs实际上是使用automount命令来处理的。

 

创建一个符号链接/vmsnfs指向/nas/vmsnfs

因为通过上述autofs配置自动挂载的路径为/nas/vmsnfs,而实际需要的是/vmsnfs,所以需要创建一个符号链接来达到这个目的。

首先确认一下是否已经有/vmsnfs这样的目录或文件已经存在。如果有,先把它改成别的名称,否则创建的符号链接可能变成了/vmsnfs/vmsnfs了。

1
2
3
[root@Ansen /]# ln -s /nas/vmsnfs /vmsnfs
[root@Ansen /]# ls -l /vmsnfs
lrwxrwxrwx 1 root root 11 Nov 18 18:21 /vmsnfs -> /nas/vmsnfs

使用mount命令不跟任何参数就可以看到系统所有挂载点的情况。

1
2
3
4
5
6
7
8
9
10
11
[root@Ansen /]# mount
/dev/mapper/VolGroup00-LogVol00 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/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.6.55:/vmsnfs on /nas/vmsnfs type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.6.55)
[root@Ansen /]#

 

至此,在Linux下使用autofs来配置nfs客户端的任务就完成了。

 

重新启动机器之后再登录,执行mount命令,会发现/nas/vmsnfs并没有自动mount上来。如下所示:

1
2
3
4
5
6
7
8
9
[root@Ansen ~]# mount
/dev/mapper/VolGroup00-LogVol00 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/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

再访问一下/vmsnfs,也就是间接访问/nas/vmsnfs就会发现mount上来了。也就是说,使用autofs来自动挂载nfs文件系统时,只有首次使用之后才会自动挂载上来。

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@Ansen ~]# ls /vmsnfs
vms  vmsnfs  vox
[root@Ansen ~]# mount
/dev/mapper/VolGroup00-LogVol00 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/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.6.55:/vmsnfs on /nas/vmsnfs type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.6.55)
[root@Ansen ~]#

 

通过上面的配置之后,重启系统之后,autofs会根据需要来自动挂载nfs共享目录。如果--timeout参数配置为正数,在不需要时会自动卸载,释放掉不必要的资源,而通过手工方式来挂载达不到这个效果。

 

3.3 在Linux下使用NFS客户端会碰到的问题

 

Q:使用touch创建文件时,怎么报“Permission denied”或“权限不够”错误?

A:检查NFS服务端的共享目录,看属主和组是否为nfsnobody。如果不是,更改之,如下所示:(在NFS服务端所在系统上操作)

1
2
3
4
chown -R nfsnobody /vmsnfs
chgrp -R nfsnobody /vmsnfs
#或
chown -R nfsnobody:nfsnobody /vmsnfs

 

Q:怎么看共享目录的磁盘空间占用情况?

A:Linux会把挂载的共享目录当做一个文件系统,可以使用df来查看磁盘空间的占用情况。

1
2
3
4
5
6
7
[root@Ansen ~]#  df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                     941082332   2767796 889739256   1% /
/dev/hdc1               101086     12166     83701  13% /boot
tmpfs                  2069260         0   2069260   0% /dev/shm
192.168.6.55:/vmsnfs  54659136  46256872   5580944  90% /nas/vmsnfs

 

Q:在文件服务器重启之后,客户端已经使用mount挂载的nfs共享目录还能继续正常访问吗?

A:有待试验。

 

Q:在文件服务器重启之后,客户端已经使用autofs挂载的nfs共享目录还能继续正常访问吗?

A:有待试验。

4 Windows下 NFS 客户端的安装及设置

在Windows上使用NFS客户端,需要把nfs共享目录映射到一个驱动器。此处假定为映射的驱动器为N:,而nfs共享目录为192.168.6.55:/vmsnfs。

 

4.1 安装Microsoft Windows Services for UNIX

 

Windows Services for UNIX 3.5 提 供支援充分和整合完全的跨平台網路服務,適應需要 Windows 和 UNIX 基礎環境之間交互操作性的企業客 戶。 Windows Services for UNIX 3.5 為企業客戶提供儲存在多個平台的資訊之緊密存取,統一了跨平台的網路管理,並且重複 使用 UNIX 應用程式和 Windows 上的指令碼。其中包括支援網路檔案系統 (NFS)。

 

下载Microsoft Windows Services for UNIX

地址: http://www.microsoft.com/taiwan/windows/sfu/

安装程序: SFU35SEL_EN.exe  217 MB (228,178,504 字节)

 

安装Microsoft Windows Services for UNIX

注意与NFS有关的两个组件是一定要安装的

NFS->Client for NFS 
Authentication tools for NFS->Server for PCNFS

 

安装过程比较简单,此处略过。

 

4.2 在Windows下配置NFS客户端

 

打开Services for UNIX Administration配置用户名

点 “开始菜单”->“所有程 序”->“Windows Services for UNIX”->“Services for UNIX Administration”, 会弹出一个名为“Services for UNIX Administration”的窗口。

左边栏切到Server for PCNFS。

右边栏切到Groups,添加Group Name为root,Group ID(GID)为0的组。

右边栏切到Users,添加User name为root,User logon name为root,Primary group name为root,User ID(UID)为0的用户,密码不必与Linux系统的密码相同。

点击右上角的Apply保存。

 

映射网络驱动器到NFS共享目录(界面操作方式,不推荐)

在“网上邻居”上按右键,选择“映射网络驱动器”,会弹出映射网络驱动器对话框。

选择盘符,比如N:

输入网络资源路径:192.168.6.55:/vmsnfs

点 “确定”。会弹出一个NFS login successful的信息框,注意检查显示的UID和GID的值(一般为-2),点“否”,会弹出 Client for NFS Drive N:对话框。选中Login using PCNFS authentication对话框,在 Server name中填入localhost,在User name中填入root,在Password中填入前面设定的密码,点“确定”,会再次弹 出NFS login successful的信息框,此次会显示UID和GID均为0,点“确定”。

这时打开“我的电脑”,会看到增加了一个盘符N:。在其上按右键打开属性对话框,切换到NFS Attributes页,会看到权限,切换到NFS Mount Options,会看到UID和GID等信息。注意确认一下UID和GID一定要为0。

 

映射网络驱动器到NFS共享目录(批处理脚本方式,推荐)

上 面这段挺费劲的,但我不推荐使用这种方式来设置,因为一旦重新启动机器,你再打开“我的电脑”,在NFS对应的盘符N:属性就会看到UID和GID由还原 成了-2。还得先把它断开,然后重新设置,挺麻烦的。所幸微软提供了类似Unix下的命令行工具mount.exe,可以编写如下内容的批处理脚本并保存 为nfs.bat。其中第一行是用来记录操作日志的,第二行启动Server for PCNFS,第三行是避免mount命令出错,第四行是把nfs共 享目录挂载到N:(注意-p:xxx要设置成前面设定的密码),第五行列出N:下的文件和目录。

 

 

批处理代码 
echo mount nfs at %date%%time%>>c:\nfs.log  
net start pcnfsd >>c:\nfs.log  
net use/pers:no>>c:\nfs.log  
mount -o mtype=hard -o pcnfs=localhost -u:root -p:xxx 192.168.6.55:/vmsnfs N:>>c:\nfs.log  
dir N:>>c:\nfs.log   

 

双击执行nfs.bat,然后打开“我的电脑”就可以看到N:了,然后打开c:\nfs.log看一下。

 

Text代码 
mount nfs at 2010-11-19星期五11:33:39.15命令成功完成。  
N:is now successfully connected to 192.168.6.55:/vmsnfs  
The command completed successfully.  
mounted    

 

如果看到successully之类的关键字眼,就表明mount成功了。

 

4.3 在Windows下使用NFS客户端会碰到的问题

 

Q:在挂载nfs共享目录时,mount.exe报1326错误,是什么原因?

Network Error - 1326

Type 'NET HELPMSG 1326' for more information.

A:根据提示,使用net helpmsg看一下,如下所示:

C:\>net helpmsg 1326

登录失败: 未知的用户名或错误密码。

这时,需要检查一下mount命令后面的-u:user和-p:password这两部分是否正确了。

 

Q:在挂载nfs共享目录时,mount.exe报85错误,是什么原因?

Network Error - 85

Type 'NET HELPMSG 85' for more information.

A:根据提示,使用net helpmsg看一下,如下所示:

C:\>net helpmsg 85

本地设备名已在使用中。

这是由于对同一个驱动器重复执行mount命令造成的,确认驱动器选择是否正确。

 

Q:创建目录或文件时报“拒绝访问”,怎么办?

A:首先打开“我的电脑”,在NFS映射的驱动器上按右键,打开属性对话框。切换到NFS Mount Options页,看显示的UID和GID是否为0,可能你看到的是-2。关闭属性对话框之后,在驱动器上按右键,选择“断开”,然后参照上一节重新设置。

如果看到NFS Mount Options页显示的UID和GID都为0,那么就要到NFS服务端去查找原因了。比如,检查一下共享目录的属主和组是否为nfsnobody,参见前面的章节。

 

Q:怎样做到登录Windows之后自动启动NFS?

A:按照4.2创建nfs.bat脚本,然后复制到“启动”目录(我的XP系统是“C:\Documents and Settings\Administrator\「开始」菜单\程序\启动”目录)。在登录之后就会自动挂载nfs共享目录。如果需要确认是否成功,打开c:\nfs.log看一下。

 

Q:怎样做到启动Windows之后自动挂载NFS,而不管是否登录?

A:这个就有点难了。本人试验了如下两种方式,都无法成功的挂在nfs共享目录。(奇怪,手工直接执行nfs.bat就能成功)

(1)安装Windows Resource Kits,里面有instsrv.exe和srvany.exe两个程序,制作了系统服务MountNFS,用来执行nfs.bat脚本。

(2)设置“任务计划”,执行文件为nfs.bat,触发条件为“计算机启动时”。

最后,只能将XP系统设置为自动登录才得以解决,不算很完美。具体如下:

先按照上一个问题中所述,将nfs.bat复制到“启动”目录。

然后执行“rundll32 netplwiz.dll,UsersRunDll ”,在弹出的用户账户对话框中,把“要使用本机,用户必须输入用户名和密码(E)”前面的钩去掉,然后点“确定”。这时,会提示输入账号和密码,输入好之后保存就行了。下次启动机器就会直接登录,而无需手工输入账号和密码了。

因为自动登录Windows之后会自动去执行“启动”目录的nfs.bat脚本,也就会挂载nfs共享目录了。

 

Q:怎样才能在Windows下用程序访问文件服务器上的文件?

A:在Linux下文件/vmsnfs/subdir/file.wav,可以直接访问,在Windows下在路径前面加上N:无法访问N:/vmsnfs/subdir/file.wav,必须要把路径里面的vmsnfs去掉,变成N:/subdir/file.wav才能访问。这样程序处理起来稍微有点麻烦。

如果在Linux文件服务器的共享目录上创建一个名为vmsnfs符号链接,就可以用N:/vmsnfs/subdir/file.wav来访问了,具体做法如下:

cd /vmsnfs

ln -s . vmsnfs

 

Q:文件服务器重启之后,Windows上mount的nfs共享目录还能继续正常访问吗?

A:有待试验。

 

转自:http://codingstandards.iteye.com/blog/816441

分享到:
评论

相关推荐

    Linux下MySQL主从服务器的搭建详细实例完整版.pdf

    Linux下MySQL主从服务器的搭建详细实例完整版,欢迎大家来踩 Linux下MySQL主从服务器的搭建详细实例完整版,欢迎大家来踩 Linux下MySQL主从服务器的搭建详细实例完整版,欢迎大家来踩

    搭建linux系统DNS的具体步骤实例

    搭建linux系统DNS的实例,通过一台RHEL5.3架设域名服务器可以完成内网所有区域的正/反向解析

    Linux系统无盘工作站架设实例

    本文介绍了一个Linux系统无盘工作站架设实例。

    RedHat Linux AS4 LAMP经典网站搭建实例

    Apache是世界排名第一的Web 服务器, 根据Netcraf所作的调查,世界上百分之五十以上的Web服务器在使用Apache。尤其是现在,使用LAMP(Linux + Apache + MySQL + PHP)来搭建中等级别的应用已经是一种流行的方式,因此...

    Linux 中搭建DHCP服务器实例

    下面的流程实例中,DHCP服务分配的IP地址段为192.168.1.128~192.168.1.133  (一)首先查看dhcp服务是否安装 [root@localhost ~]# rpm -qa | grep dhcp dhcp-3.0.5-31.el5 dhcpv6-client-1.0.10-20.el5 sblim...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    嵌入式Linux C编程入门(第2版) PPT

    11.4.2 traceroute实例与分析 348 11.4.3 traceroute实例运行结果 354 本章小结 354 动手练练 354 第12章 嵌入式linux设备驱动开发 355 12.1 设备驱动概述 355 12.1.1 设备驱动简介 355 12.1.2 ...

    Linux运维从入门到高级全套案例v3.rar

    3.1.3搭建 Samba服务器 3.1.4搭建NFS服务器 3.1.5搭建FTP服务器 3.1.6构建 Apache WER服务器 3.1.7构建 MySQL服务器 3.1.8LAMP架构网站搭建 3.1.9 Cact i监控平台搭建 3.1.10 Nagios监控平台搭建 3.1.11 Kickstart...

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维.z01

    高性能Web服务器详解与运维》 适用于广大的Linux爱好者、具有一定Linux基础的系统管理员、Linux下的Web服务器管理员、Linux服务器下动态语言开发人员、Nginx服务器管理员、培训中心师生、运维人员以及一切应该了解和...

    基于Linux的C++ 教程合集, 包括C++基础, C++服务器, C++专题.rar

    源代码编辑传送完毕后打开远程SCRT软件连接至Linux服务器,cd到指定目录后使用g++编译器编译代码文件,其编译命令如下所示。 g++ testExample.cpp –o testExample 执行命令后,程序编译产生可执行程序,在Linux下...

    企业级Linux服务攻略

    第1章 Linux服务器的搭建与测试 1.1 Linux的安装 1.1.1 Linux简介 1.1.2 Red Hat Enterprise Linux 5新特性介绍 1.1.3 Red Hat Enterprise Linux 5的安装 1.2 常规网络配置 1.2.1 配置主机名 1.2.2 使用ifconfig...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例227 上传多个文件到服务器 292 4.2 文件下载 294 实例228 通过链接方式下载 294 实例229 通过header函数进行下载 295 4.3 文件遍历 296 实例230 读取整个文件的内容 296 实例231 文本文件的分页读取 298 4.4 ...

    Linux无盘工作站架设实例

    Linux无盘工作站架设实例

    samba服务器安装与配置带图操作

    文件共享是重要的网络需求,特别在企业环境中这种需求显得非常迫切。我们知道Windows主机间的文件共享非常简单,可以通过网上邻居实现。...下面笔者搭建环境,实例演示在Linux中部署SAMBA的详细技术细节。

    高性能Linux服务器构建实战视频(9讲)

    【】lvs keepalived搭建高可用的负载均衡集群系统 高俊峰视频【】mysql高可用集群 Drbd Heartbeat Mysql实例【】Oracle RAC集群体系 高俊峰视频 (高性能linux服务器构建实战)【】利用iSCSI搭建IP存储网络视频【】...

    Linux服务器创建oracle数据库RAC集群.docx

    VM15安装RAC集群 一、RAC集群安装 1.安装前规划 2.配置主机 3.oracle专用参数设置 4.安装oracle依赖软件 5. 修改用户环境变量 6. 配置oracle用户ssh互信 7. 添加ASM本地磁盘 ...二、创建数据库实例

    Linux服务器下Nginx与Apache共存的实现方法分析

    本文实例讲述了Linux服务器下Nginx与Apache共存的实现方法。分享给大家供大家参考,具体如下: 同一个端口是不能同时有两个程序监听的。所以换个思路解决同一台服务器下某些网站运行在nginx下,某些网站运行在Apache...

    cacti监控多个tomcat端口模板xml文件

    所有加载的cacti模板文件中,核心区分点所...以此类推,现在喜欢在一个linux服务器上搭建mysql多实例,那么多实例mysql如何在cacti下监控,也可以用本文中类似的办法构建新的mysql的多端口模板xml文件来重新加载实现。

    决战Nginx: 系统卷 - 高性能Web服务器详解与运维.zip

    高性能Web服务器详解与运维》 适用于广大的Linux爱好者、具有一定Linux基础的系统管理员、Linux下的Web服务器管理员、Linux服务器下动态语言开发人员、Nginx服务器管理员、培训中心师生、运维人员以及一切应该了解和...

Global site tag (gtag.js) - Google Analytics