当前位置:首页 » 操作系统 » nfslinux内核

nfslinux内核

发布时间: 2023-01-17 16:59:06

linux实用工具-nfs

nfs服务器建立

本文介绍Linux环境下nfs服务的搭建过程。

nfs服务的作用是让其他机器可以通过网络把将本地的nfs目录挂载,然后通过访问挂载目录访问本地机器。在嵌入式开发中经常会将运行的开发板上的整个文件系统,做为本地的一个主目录,然后开发板启动的时候通过nfs服务,将本地的这个目录挂载上去,作为根文件系统。
这里分别介绍在Ubuntu和CenterOS上面nfs服务的配置过程。

编辑/etc/exports,在其中增加要共享的目录


其中 /home/quietheart/nfs,10.1.14.0/24代表共享给哪个子网,rw是可读写权限

然后

建立好了nfs之后,如果板子里面的内核支持网络和nfs,需要板子和你的机器各有一个网线和网口,两者在同一个网段,配置好了就能互访。也可以把机器和板子用一根网线链接(板子有独立的网口),这样不需要网关,就能使板子挂载机器的nfs系统了,但是机器也不能够上网了。

添加类似如下一行:

在配置NFS之前先查看“rpm -q nfs-utils portmap“两个软件包是否安装,默认都是安装的。

这里,'<your nfs directory>'是你本地的nfs目录,可以随意设置。具体含义参见"info exports".

这一步有时候可以不用做。

具体在:"系统"->"管理"->"安全级别和防火墙"

至此nfs服务搭建完毕.

这里说一下测试nfs是否好用的方法:

在其它机器上运行:

如果成功则完毕。

无。

通过以上可知,在Linux上面配置nfs服务的过程大致一样。

㈡ Linux系统主要做哪些用途

当今世界流行的操作系统有3大类,Linux、Mac OS和Windows操作系统,Linux操作系统因其开源、免费、跨平台、良好的界面等特性,深受广大程序员们的青睐!

Linux操作系统被广泛的应用于企业服务器领域,目前市场上的网络设备都是使用linux内核操作系统,一些网络服务器也是使用linux操作系统下面的服务搭建实现的,目前操作系统这块也基本被linux占据,使用linux的iptables功能可以做代理服务器和防火墙;使用samba服务的功能可以做搭建和打印共享服务器。

使用linux下的apache+mysql+php搭建web、linux下的vsftp服务作为FTP文件传输服务器,使用linux下bind服务做域名解析服务器,使用linux下DHCP服务做网络中地址分配服务器,使用linux下open***服务实现×××服务器,使用linux下sendmai和qmail服务搭建邮件服务器,使用linux下的NFS和iSCSI搭建网络存储服务器等,linux在企业应用范围极广。 Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

在的网络设备一般都是linux操作系统,比如:软防火墙、软路由、软监控、云计算等,这些都是使用linux内核开发的。

Linux操作系统安全性和稳定性高,目前android系统、银行系统、企业WEB服务器、虚拟化、等都是使用linux操作系统。

Linux操作系统在市场上得到了广泛的应用,市场上80%的服务器用户在使用Linux操作系统,因此,学好Linux可以有很多就业选择,而且喜爱技术的人员来说,也是一种成就!

㈢ ARM linux内核添加了nfs server support 是否就可以用NFS服务

要安装nfs软件系统才可以~!nfs server support 只是表示arm linux支持nfs而已~!

㈣ 我的友善之臂micro2440开发板,烧写uboot和Linux内核后我想设置nfs网络根文件系统,但是一直有问题。

linux-2.6.35在fs2410开发板启动后,通过nfs挂载文件系统,但是rtc不能用,也会在挂载文件系统之前打印如下提示信息:

TCP cubic registered

NET: Registered protocol family 1

RPC: Registered udp transport mole.

RPC: Registered tcp transport mole.

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

IP-Config: Complete:

device=eth0, addr=192.168.20.253, mask=255.255.255.0, gw=192.168.20.1,
host=thomas_fs2410, domain=, nis-domain=(none),
bootserver=192.168.20.192, rootserver=192.168.20.192, rootpath=
Looking up port of RPC 100003/2 on 192.168.20.192
Looking up port of RPC 100005/1 on 192.168.20.192
VFS: Mounted root (nfs filesystem).
Mounted devfs on /dev
Freeing init memory: 184K

解决方案:

1. 内核配置选项

--- Real Time Clock
[*] Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
[ ] RTC debug support
*** RTC interfaces ***
[*] /sys/class/rtc/rtcN (sysfs)
[*] /dev/rtcN (character devices)
[ ] RTC UIE emulation on dev interface
*** on-CPU RTC drivers ***
<*> Samsung S3C series SoC RTC

2. linux kernel 中 已经支持S3C2410的RTC,但是并没有添加到平台设备初始化数组中,所以系统启动时并不会初始化这一部分,需要修改文件mach-smdk.c

static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_ohci,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_rtc, //新增代码
};

3. 创建设备节点,在文件系统/dev目录下执行:

sudo mknod rtc c 10 135

4. 重新编译内核,查看启动信息

S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0

这里说明rtc驱动起来可以正常工作了
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
s3c-rtc s3c2410-rtc: hctosys: invalid date/time

以上信息说明当前 RTC 时间invalid , RTC 初始时间为 Wed Dec 31 23:59:59 1969 ;

从内核函数 int rtc_valid_tm(struct rtc_time *tm) ,可以看出,当 year 小于 1970 时,认为是时间 invalid ,函数返回 -EINVAL ;

drivers/rtc/rtc-lib.c

/*
* Does the rtc_time represent a valid date/time?
*/
int rtc_valid_tm(struct rtc_time *tm)
{
if (tm->tm_year < 70
|| ((unsigned)tm->tm_mon) >= 12
|| tm->tm_mday < 1
|| tm->tm_mday > rtc_month_days(tm->tm_mon, tm->tm_year + 1900)
|| ((unsigned)tm->tm_hour) >= 24
|| ((unsigned)tm->tm_min) >= 60
|| ((unsigned)tm->tm_sec) >= 60)
return -EINVAL;

return 0;
}
EXPORT_SYMBOL(rtc_valid_tm);

下面来验证一下这个想法

# hwclock

Wed Dec 31 23:59:59 1969 0.000000 seconds

# date

Thu Jan 1 00:06:58 UTC 1970

系统时间是通过 date 来设置的, RTC 时间是通过 hwclock 来设置的。开机时系统时间首先通过 RTC 来获得,RTC没有设置时,系统时间也会使用Wed Dec 31 23:59:59 1969。

# hwclock --help

BusyBox v1.9.2 (2008-04-01 21:32:34 CST) multi-call binary

Usage: hwclock [-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc] [-f FILE]

Query and set a hardware clock (RTC)

Options:

-r Read hardware clock and print result

-s Set the system time from the hardware clock

-w Set the hardware clock to the system time

-u The hardware clock is kept in coordinated universal time

-l The hardware clock is kept in local time

-f FILE Use the specified clock (e.g. /dev/rtc2)

# hwclock -s

hwclock: settimeofday() failed: Invalid argument

# hwclock -w

s3c2410-rtc s3c2410-rtc: rtc only supports 100 years

hwclock: RTC_SET_TIME: Invalid argument

以上错误信息都是因为 year 设置不当引起的。没有设置 RTC , RTC 也不会启动计时。

下面首先设置正确的系统时间,然后将系统时间传递给 RTC 。

# date 040612282008.20

Sun Apr 6 12:28:20 UTC 2008

# hwclock -w

# hwclock

Sun Apr 6 12:29:01 2008 0.000000 seconds

# hwclock

Sun Apr 6 12:30:15 2008 0.000000 seconds

Ok , RTC 开始工作了!

为了使系统时间和 RTC 时间同步,可以在初始化文件中添加命令

Hwclock –s

使每次开机时读取 RTC 时间,并同步给系统时间。

在 etc/init.d/rcS 中添加

/bin/hwclock -s

时间设置的相关命令(转载)

1. 在虚拟终端中使用date 命令来查看和设置系统时间
查看系统时钟的操作:
# date

设置系统时钟的操作:
# date 091713272003.30

通用的设置格式:
# date 月日时分年. 秒

2. 使用hwclock 或clock 命令查看和设置硬件时钟
查看硬件时钟的操作:
# hwclock --show 或
# clock --show
2003年 09月 17日 星期三 13 时24 分11 秒 -0.482735 seconds

设置硬件时钟的操作:
# hwclock --set --date="09/17/2003 13:26:00"

或者
# clock --set --date="09/17/2003 13:26:00"

通用的设置格式:hwclock/clock --set --date=“ 月/ 日/ 年时:分:秒” 。

3. 同步系统时钟和硬件时钟

Linux 系统( 笔者使用的是Red Hat 8.0 ,其它系统没有做过实验) 默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话( 服务器通常很少重启) ,使用clock 或hwclock 命令来同步系统时钟和硬件时钟。

硬件时钟与系统时钟同步:
# hwclock --hctosys

或者
# clock --hctosys

上面命令中,--hctosys 表示Hardware Clock to SYStem clock 。

系统时钟和硬件时钟同步:
# hwclock --systohc

或者
# clock --systohc

使用图形化系统设置工具设置时间

参考:http://blogold.chinaunix.net/u2/63560/showart_518707.html

㈤ NFS Client in Linux Kernel - cred

struct auth_cred 记录着uid,gid,是最基本的cred信息。
通过 current_cred() 得到当前进程的 struct auth_cred

用来描述RPC传输时候使用哪种方式鉴权, Linux内核提供了4个unix_auth,null_auth,generic_auth,gss_auth,其中unix_auth是默认使用的。

鉴权方式,mount时候参数sec=xx,默认是sys,对应RPC_AUTH_UNIX。还可以为krb5,krb5i,krb5p等。

Linux Kernel每次通过RPC发送NFS数据的时候,都会走一个状态机。当走到call_refresh状态时候,

每次发RPC命令时候,都会准备类似的message,其中包括了设置cred

不同的NFS请求,cred来自不同的地方。
exchange_id命令是来自

open命令

㈥ 如何配置linux内核具有nfs的功能

1、使用的技术

NFS

2、测试环境

NFS服务器:192.168.255.18

NFS客户端:192.168.255.11

操作系统:REDHAT4

3、NFS服务器配置

(1)配置 /etc/hosts.deny

禁止任何客户端能和你的NFS服务器进行NFS连接:

### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

(2)配置/etc/hosts.allow

允许那些你想要的客户端和你的NFS服务器建立连接。下列步骤将允许任何IP地址
以192.168.2开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。

### NFS DAEMONS
portmap: 192.168.255.
lockd: 192.168.255.
rquotad: 192.168.255.
mountd: 192.168.255.
statd: 192.168.255.

(3)重启portmap

运行 $ /etc/init.d/portmap restart 重启portmap daemon。

(4)配置/etc/exports

NFS挂载目录及权限由/etc/exports文件定义。比如要将我的/tmp目录让
192.168.255.*的IP共享, 则在该文件末尾添加下列语句:

/tmp 192.168.255.*(rw,sync,no_root_squash)

192.168.255.* 网段内的NFS客户端能够共享NFS服务器/tmp目录内容,且有读,写
权限,并且该用户进入/home/zp/share目录后的身份为root,最好加上sync,否则
$ sudo exportfs -r 时会给出警告, sync是NFS的默认选项。

(5)重启NFS服务

运行 $ /etc/init.d/nfs-kernel-server restart 重启nfs服务)

(6)NFS服务器查看共享是否成功

$ Showmount –e 192.168.255.18

/tmp 192.168.255.*

(6)NFS客户端启动NFS服务

service nfs start

(7)NFS客户端查看服务器共享目录

Showmount –e 192.168.255.18

(8)挂载NFS服务器共享目录

mount –t nfs -o tcp192.168.255.18:/tmp /tmp

4、错误排查

当/etc/exports设置的权限,不符合client端的来源时,则会出现以下错误信息:

mount: hostname:/dir failed, reason given by server: Permission denied

㈦ 2022-05-15--Linux挂载报错:mount.nfs: Protocol not supported

遇到这个问题首先网络,网络得到的答案无非两个:

1.内核不支持NFS,需要配置内核支持.

2.busy box的mount需要支持NFS.

其实还有一个原因是网络不稳定,或网络配置有问题,

我遇到的情况:

[root@software ~]# mount -t nfs -o ro 192.168.30.9:/vx/software   /share/software

报错:mount.nfs: Protocol not supported

起正在的原因是:

UUID=02666766-9664-46e4-86d6-6666666666

DEVICE=p2p1

ONBOOT=no

IPADDR="192.168.1.6"

NETMASK="255.255.255.0"

GATEWAY="192.168.1.1"

ONBOOT=no配置错误。 改成yes完美解决。

㈧ Linux的VPS上如何使用NFS麻烦告诉我

解决方案 NFS有两种类型,一种是Kernel space NFS,一种是user space NFS。 Kernel Space的NFS依赖于内核中的CONFIG_NFSD=m参数。当编译内核的时候,需要将NFS支持编译进去。 通常,默认的Linux内核一般都支持Kernel Space,无须单独编译或者安装了。 只要安装操作系统上自带的NFS软件包,即可使用Kernel space方式的NFS。 出于安全方面的原因,vps内不能使用Kernel space NFS,只能使用user space NFS。 User Space的有点是无须任何内核级别的支持。当NFS出现问题的时候,只有NFS进程会卡出或者崩溃 但是内核以及整个Linux系统都不会出现问题。缺点是user-space NFS的速度稍稍慢于Kernel space NFS。 在vps内如果需要运行NFS,一个很好的选择是"The Linux User-Space NFS Server"。 这个程序由Olaf Kirc开发,很多Linux发行版都已经内置他的支持, 例如:Debian Sarge (NFS-user-server),OpenSUSE 10.0 (NFS-server) 其他的一些Linux发行版,需要单独下载rpm安装包并安装。 The Linux User-Space NFS Server提供了NFS v2协议的支持,还有一些其他组件如uNFS3提供了NFS v3的支持 也可以根据需求安装 注意:redhat as/es 系列Linux内置的rpm NFS-lib是Kernel space NFS,不是User Space NFS。 英文资料参考:

㈨ 急求解,在LINUX做完内核用NFS下载到板子启动后,显示到这里就不加载了。求解答。。。

没挂载根目录。
Linux 没有启动一个进程的话,就是 kernel panic 的。

热点内容
配置管理如何支持测试 发布:2025-07-04 10:38:53 浏览:655
云服务器2核4g3m什么意思 发布:2025-07-04 10:23:34 浏览:241
苹果手机如何往安卓手机导通讯录 发布:2025-07-04 10:19:11 浏览:133
未来之役如何换服务器 发布:2025-07-04 10:13:51 浏览:217
curlc上传 发布:2025-07-04 09:59:35 浏览:882
没有编译器能运行c程序吗 发布:2025-07-04 09:54:38 浏览:309
创建配置目录错误是什么意思 发布:2025-07-04 09:53:35 浏览:50
为什么租凭服务器不能玩了 发布:2025-07-04 09:03:01 浏览:984
安卓手机减肥软件哪个好 发布:2025-07-04 08:51:17 浏览:997
Oracle查看数据库归档 发布:2025-07-04 08:44:53 浏览:609