Linux挂载

本文详细介绍了NFS(网络文件系统)在不同操作系统中的安装与配置步骤,包括Ubuntu、CentOS 5/6/7等环境下的具体操作,涵盖了基本配置、防火墙设置、客户端挂载等多个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三、上传文件同步问题解决。

由于集群配置了虚拟路径,那么所有静态文件都从你定义的虚拟路径读取,所以,当你上传时,是上传到不同路径,这就会出现上传成功,其他的tomcat无法访问。

这里有几种方案来处理,第一,文件同步,第二,磁盘共享,第三,tomcat虚拟路径映射。前两种都是靠操作系统和其他软件处理。这里讲解第三种。

配置方法如下两种任选,这样就解决

1. 在.%TOMCAT_HOME%\conf\Catalina\localhost建立一个xml文件 里面写上

<Context path="/web" docBase="D:/myweb" crossContext="false" debug="0"

reloadable="true"></Context> 推荐方式

2.打开%TOMCAT_HOME%\conf\server.xml文件

在 <host> </host>之间加入如下代码: <Context path="/web" docBase="E:\myweb"

debug="0" reloadable="true"/>
或者把 <host> 里面的appBase="" 改成自己挂载的目录
********************************************************************

********************************************************************
Ubuntu 14.04下NFS安装配置
刻骨铭心 2014-07-21 6084 阅读
Data NFS
参考:http://www.linuxidc.com/Linux/2013-08/89154.htm

1、执行命令:sudo apt-get install nfs-kernel-server ;

2、执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹;

3、建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs;

4、在文章的最后一行添加:/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)
/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)这一行的含义是:
/home/jacobxu/nfs-jacoxu:与nfs服务客户端共享的目录,这个路径必须和你前面设置的文件的路径一致!
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。

5、修改完上述配置文件保存退出。

6、执行命令:sudo /etc/init.d/rpcbind restart 重启rpcbind 服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过rpcbind 设定。

7、执行命令:sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。

8、挂载指令:
sudo mount -t nfs 192.168.111.128:/home/jacobxu/nfs-jacoxu /nfs-jacoxu-node001/
到任意一台服务器中执行挂载指令,则可以将指定ip服务器上的共享路径,挂载到本地。

注:nfs只是一种文件目录共享模式,以本地方式进行访问。而HDFS是一种分布式的文件系统,能够在服务器中进行数据的负载均衡。

9、开机自动挂载:
把 上述指令 sudo mount -t nfs 192.168.111.128:/home/jacobxu/nfs-jacoxu /nfs-jacoxu-node001/ 写到 /etc/rc.local 文件中

附录:NFS常用参数如下:
ro 只读访问
rw 读写访问sync 所有数据在请求时写入共享
async nfs在写入数据前可以响应请求
secure nfs通过1024以下的安全TCP/IP端口发送
insecure nfs通过1024以上的端口发送
wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
hide 在nfs共享目录中不共享其子目录
no_hide 共享nfs目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID


手动通过 mount -t nfs 172.29.43.183:/media/sda6/share/hurray /media/bbp进行NFS共享时,出现超级块错误。
mount:文件系统类型错误、选项错误、172.29.43.183:/media/sda6/share/hurray 有坏超级块,
缺少代码页或助手程序,或其他错误
(对某些文件系统(如 nfs、cifs) 您可能需要
一款 /sbin/mount.<类型> 助手程序)
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。

解决方案:
安装nfs-common
sudo apt-get install nfs-common
然后重新执行mount命令即可。


sudo mount -t nfs 192.168.37.32:/usr/ROOT /usr/ROOT
*****************************************************

*****************************************************
1.1 搭建NFS服务器

NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

安装nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

设置NFS-Server目录。修改/etc/exports文件,在其中增加NFS服务器目录。 一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:

NFS共享目录路径 客户机IP或者名称(参数1,参数2,...,参数n)

说明:

q NFS共享目录可以是主机的任何一个目录,为了方便使用,最好将权限设置为777。

q 客户机指的是可以访问共享目录的客户机的IP或者主机名,可以是指定的IP或者主机名。如果使用IP,可以使用通配符。假如指定IP为192.168.1.x的客户机可以访问,可以写成192.168.1.*,如果设置为*,则表示任何客户机都可以访问。

q 访问参数可以是一个,也可以是多个,用逗号分开。可能的参数和说明如 REF _Ref286733518 \h 表 5.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。

表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS设置参数和说明

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID



假定NFS共享目录是/home/ky/nfs,允许所有客户机访问,/etc/exports文件可写为:

/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)

启动NFS服务器。启动portmap(如果有必要)和nfs-kernel-server服务:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

本地验证NFS服务器。将NFS服务器目录挂载到本机另外一个目录下,可以看到挂载点目录下可以看到NFS服务器目录中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用开发板验证NFS服务器是否可用。启动开发板,进入系统,配置好开发板的IP地址后,用mount命令挂载NFS服务器的NFS目录:

target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

挂载成功后,可以在开发板的/mnt目录下看到NFS服务器上的文件。

说明,使用开发板与虚拟机安装的客户系统进行NFS挂载,需要将虚拟网卡设置为Bridged模式,并建议使用静态IP地址。

如果在使用中需要增加新的NFS共享目录,直接修改/etc/exports文件即可。修改该文件后,可以不用重启NFS服务,用exportfs命令读取/etc/exports文件,重新共享输出。exportfs命令语法如下:

exportfs [-aruv]

选项说明:

-a:全部挂载(或卸载) /etc/exports的设置;

-r:重新挂载/etc/exports的设置;

-u:卸载某一个目录;

-v:在输出的时候,把共享目录显示出来。

如果NFS已经启动,修改了/etc/exports文件,执行如下命令,新的设置即可生效:

ky@ubuntu:~$ exportfs -ra

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

***************************************************************************************
如果在安装Centos7时选择安装必要的开发工具选项,所以系统已经安好NFS必要的软件。
配置:
# vi /etc/exports
/home/qws/share 192.168.168.0/24 (rw,sync,all_squash)
保存

启动NFS
systemctl start nfs.service
检查是否配置好:
showmount -e

Export list for localhost.localdomain:
/home/qws/share (everyone) Linux学习,http:// linux.it.net.cn
可见已经配好
尝试用开发板mount,结果不行,因为有防火墙
所以要要先关闭防火墙。

在centos7以后要使用sysytemd
systemctl stop iptables.service


然后在开发版端使用:
mount -o nolock -t nfs 192.168.168.99:/home/qws/share /mnt/


*****************************************************
*****************************************************
NFS的安装配置:
centos 5 :
yum install nfs-utils portmap
centos 6 :
yum install nfs-utils rpcbind


本节是使用centos 6的配置过程:
设备:两台 centos6 OS 安装的时候选择的是"Basic Server"软件配置包。
首先,让两台机器都安装NFS的 软件包,如下显示的是服务器端:
$ yum install nfs-utils rpcbind
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
Setting up Install Process
Package rpcbind-0.2.0-8.el6.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.x86_64 1:1.2.3-15.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
nfs-utils x86_64 1:1.2.3-15.el6 base 308 k

Transaction Summary
================================================================================
Install 0 Package(s)
Upgrade 1 Package(s)

Total download size: 308 k
Is this ok [y/N]: y
Downloading Packages:
nfs-utils-1.2.3-15.el6.x86_64.rpm | 308 kB 00:10
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
base/gpgkey | 3.3 kB 00:00 ...
Importing GPG key 0xC105B9DE "CentOS-6 Key (CentOS 6 Official Signing Key) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : 1:nfs-utils-1.2.3-15.el6.x86_64 1/2
Cleanup : 1:nfs-utils-1.2.2-7.el6.x86_64 2/2

Updated:
nfs-utils.x86_64 1:1.2.3-15.el6

Complete!
$

服务器端:
###(建立挂载的目录,并且挂载目录。)
$ mkdir /opt/centos6
$ cd /opt/centos6/
$ mkdir thisISnfsFile
$ ls
thisISnfsFile
$ vi /etc/exports
$ cat /etc/exports

/opt/centos6 192.168.1.0/24(ro,no_root_squash)
### 备注:/opt/centos6表示nfs共享的目录 192.168.1.0-192.168.1.254区间的IP可以访问,访问权限是自读,root 用户
###(启动对应的服务)
$ chkconfig nfs on
$ /etc/init.d/rpcbind start
$ /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
$ service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]


客户端:
$ yum install nfs-utils rpcbind
安装完毕!
# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
###查看是否能访问nfs服务
# showmount -e 192.168.1.75
Export list for 192.168.1.75:
/opt/centos6 192.168.1.0/24
# mkdir /opt/centos6
# mount -t nfs 192.168.1.75:/opt/centos6/ /opt/centos6/
# ls /opt/centos6/
thisISnfsFile
###配置开机自动挂载
# vi /etc/fstab
### 添加 #192.168.1.75:/opt/centos6/ /opt/centos6/ nfs nodev,ro,rsize=32768,wsize=32768 0 0

# init 6
#
login as: root
root@192.168.1.116's password:
Last login: Mon Mar 5 17:29:04 2012 from 192.168.1.23
# ls /opt/centos6/
thisISnfsFile
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值