`
kavy
  • 浏览: 890978 次
  • 性别: 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服务器[归纳].pdf

    搭建 DHCP 服务器需要安装 DHCP 软件包,挂载 CDROM,找到 Server 文件夹,安装 DHCP 服务,检查安装,配置文件实例文件,开启端口,并配置子网、子网掩码、路由、DNS 服务器等信息。 知识点: * DHCP 服务器的...

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

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

    linux平台搭建web服务器

    - [2] 相关书籍:《Linux服务器管理实战》、《PHP与MySQL Web开发》。 - [3] 在线资源:Stack Overflow、GitHub等社区。 --- 以上内容详细介绍了如何在Linux平台上搭建一个完整的Web服务器,包括所需的各个组件的...

    2023年《网络建设与运维》国赛第三部分服务器搭建包括windows和linux两部分解答过程

    ### 2023年《网络建设与运维》国赛第三部分:服务器搭建与运维解析 #### 一、概述 2023年的《网络建设与运维》国赛第三部分聚焦于服务器搭建与运维,主要考察参赛者在X86架构及ARM64架构服务器上的操作系统安装与...

    阿里云ECSlinux服务器搭建和maven私服仓库技术文档.zip

    总的来说,通过阿里云ECS Linux服务器搭建Maven私有仓库,不仅可以优化依赖管理,提高构建速度,还能增强内部代码的安全性和可控性。遵循上述步骤,结合提供的文件内容,你可以顺利完成这一过程。在实际操作中,务必...

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

    本文将详细介绍 Linux 系统无盘工作站架设实例的实现过程,包括客户端的 PXE 方式启动、DHCP 服务器的配置、TFTP 服务器的配置、PXE boot loader 的配置和 NFS 服务器的配置。 第一步:安装 DHCP 服务器 DHCP ...

    服务器 数据库 框架搭建案例

    常见的服务器操作系统有Linux(如Ubuntu、CentOS)和Windows Server,而Web服务器软件则包括Apache、Nginx等。 2. **数据库类型**:根据项目需求,可以选择关系型数据库(如MySQL、PostgreSQL)或非关系型数据库...

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

    总结来说,搭建Linux系统DNS服务器涉及安装相关软件、配置主配置文件、定义区域文件以及创建和编辑正反向解析记录。这个过程需要对DNS工作原理、Linux系统管理以及网络配置有深入理解。通过合理规划和配置,可以有效...

    Linux下搭建SVN服务器

    至此,已经完成了在Linux环境下搭建SVN服务器的所有步骤,并且通过具体的实例介绍了如何进行软件安装、版本库建立、配置文件编辑以及服务启动与关闭的操作流程。这为在实际工作中使用SVN提供了全面的技术支持。

    linux +oracle 环境搭建

    还需要安装Oracle数据库软件,通常涉及运行安装脚本、接受许可协议、选择安装类型(如只安装数据库服务器或带管理工具的完整安装)、配置数据库参数(如内存分配、表空间等)、创建数据库实例以及初始化参数文件。...

    Linux环境下搭建主从DNS服务器.doc

    在 Linux 环境下,常用的 DNS 服务器软件是 bind,本文档将详细介绍使用 bind 软件搭建主从 DNS 服务器的过程。 一、Bind 软件简介 Bind 软件是 ISC 维护的免费开源 DNS 服务器软件,可以在 Linux 和 Unix 平台上...

    20分钟在自己的linux主机上搭建一个属于自己的gitlab服务器.docx

    本文将详细介绍如何在Linux主机上,特别是CentOS 7或8系统上,用20分钟搭建一个GitLab服务器。GitLab是一款开源的Git仓库管理工具,它提供了与GitHub类似的功能,包括代码托管、项目管理、持续集成/持续部署(CI/CD)...

    使用开源协议软件搭建即时通讯服务器

    ### 使用开源协议软件搭建即时通讯服务器 #### 一、引言 随着信息技术的发展,即时通讯(Instant Messaging,简称 IM)已成为企业内部沟通的重要工具之一。它不仅能够提高工作效率,还能加强团队之间的协作与交流。...

    在linux上搭建weblogic集群,使用Apache作为代理服务器(原创)

    在Linux环境下搭建WebLogic集群并使用Apache作为代理服务器是一个复杂的过程,涉及到多个步骤和技术细节。以下是对这个主题的详细说明: 首先,WebLogic Server是Oracle公司的一款企业级Java应用服务器,它提供了...

    linux学习资料(精心整理)服务器搭建 shell脚本 c语言

    【标题】"Linux学习资料(精心整理)服务器搭建 shell脚本 c语言"涵盖了Linux系统学习的几个关键领域,包括Linux服务器的搭建、shell脚本的编写以及C语言的基础与应用。这些主题对于IT专业人士,尤其是那些希望提升...

    配置Linux服务器实例

    ### 配置Linux服务器实例详解 #### 一、引言 在现代信息技术环境中,Linux服务器因其高度可定制性、稳定性及安全性而被广泛应用于各种场景之中。本文将详细介绍如何配置一台基于Red Hat 9.0的Linux服务器,并实现与...

    winform上传文件到服务器

    本教程将深入探讨如何使用WinForm实现文件或文件夹的上传功能,将其发送到远程服务器。我们将关注的重点是如何构建这样的系统,包括客户端的交互设计以及与服务器的通信。 首先,我们需要在WinForm中创建一个用户...

    Linux上搭建Oracle数据库需要的各种package.zip

    4. **Unzip命令**:首先,你需要使用`unzip`命令解压下载的"Linux上搭建Oracle数据库需要的各种package.zip"文件,获取其中的依赖包。 5. **yum/dnf软件包管理器**:在RHEL/CentOS 7及之前版本中,使用`yum`命令来...

Global site tag (gtag.js) - Google Analytics