nfs起根文件系统

合集下载

mount命令+nfs挂载各个参数解释以及常见失败原因

mount命令+nfs挂载各个参数解释以及常见失败原因

mount命令+nfs挂载各个参数解释以及常见失败原因Mount 命令[转]mount [-afFhnrvVw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [加载点]用法说明:mount可将指定设备中指定的文件系统加载到Linux 目录下(也就是装载点)。

可将经常使用的设备写入文件/etc/fastab,以使系统在每次启动时自动加载。

mount加载设备的信息记录在/etc/mtab文件中。

使用umount命令卸载设备时,记录将被清除。

常用参数和选项:-a 加载文件/etc/fstab中设置的所有设备。

-f 不实际加载设备。

可与-v等参数同时使用以查看mount的执行过程。

-F 需与-a参数同时使用。

所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。

-h 显示在线帮助信息。

-L<标签> 加载文件系统标签为<标签>的设备。

-n 不将加载信息记录在/etc/mtab文件中。

-o<选项> 指定加载文件系统时的选项。

有些选项也可在/etc/fstab中使用。

这些选项包括:async 以非同步的方式执行文件系统的输入输出动作。

atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。

auto 必须在/etc/fstab文件中指定此选项。

执行-a参数时,会加载设置为auto的设备,取消选为noauto。

defaults 使用默认的选项。

默认选项为rw、suid、dev、exec、anto nouser与async。

dev 可读文件系统上的字符或块设备,取消选项为nodev。

exec 可执行二进制文件,取消选项为noexec。

noatime 每次存取时不更新inode的存取时间。

noauto 无法使用-a参数来加载。

nodev 不读文件系统上的字符或块设备。

noexec 无法执行二进制文件。

嵌入式Unux根文件系统NFS启动方式构建

嵌入式Unux根文件系统NFS启动方式构建
关 键 字 :嵌 入 式 ;根 文 件 系 统 ; 内核 ;移 植 ;N S 3 2 1A F ;¥ C 4 0

0 引言
根 据英 国 电气 工 程 师 协 会 f . Istt no UK. tui f ni o
到文 件 系统 中 的相应 目录下 。下 面 将对 上 述 构建
ቤተ መጻሕፍቲ ባይዱ
过 程进 行详 尽 分析 。 E etcl n ier l r a E gne)的定 义 ,嵌 入式 系统 为 控 制 、 ci 监视 或辅 助 设 备 、机器 或 用 于 工 厂 运 作 的设 备 。
现 在 比较 流行 的 嵌 人 式 系 统 种 类 非 常 多 , 比如
S n i 、 V w rs y ba n x ok 。W ic 、 Ln x 。 其 中 Ln x n e iu 等 iu
1 基 于A M的嵌 入 式 Ln x 统 平 台 R iu 系
Ln x 一款 遵 循G L iu 是 P 协议 的成 熟稳 定 的操 作 系 统 。 它 具 有 许 多 优 点 , 比 如 开 源 、成 熟 、完 善 、低 成本 、可支 持 多种 硬件 平 台 、可 裁剪 、性 能 稳定 、极 好 的网络 支持 等 ,这 些优 点 使它 已成
第4 期
电子元 器 件 主 片 1
Elcr n cCo o e t De i eAp l a in et i o mp n n & vc pi t s c o
V0. 2 No4 1 . 1 Ap .2 0 r 01
开 发 的应用 程 序等 几个 方 面 。如果 文 件 系统 或者 开 发 的应 用 程序 有 问题 ,则 需要 重 新在 宿 主 机上
进行 调试 和 编译 ,然 后 重新 下载 .这样 就 给 开发

根文件系统的移植

根文件系统的移植

根文件系统的移植1.下载busybox-1.13.4.tar.bz2网址:/2.解压busybox-1.13.4.tar.bz2到桌面[root@localhost Desktop]# tar-xjvf busybox-1.13.4.tar.bz2-C./[root@localhost Desktop]# cd busybox-1.13.4[root@localhost busybox-1.13.4]#3.编辑Makefile文件[root@localhost busybox-1.13.4]# gedit Makefile将CROSS_COMPILE ?=改为CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-将ARCH ?= $(SUBARCH)改为ARCH ?= arm4.进行默认配置[root@localhost busybox-1.13.4]# make defconfig //恢复默认配置5.对配置信息进行修改[root@localhost busybox-1.13.4]# make menuconfigHOSTLD scripts/kconfig/mconfHOSTCC scripts/kconfig/lxdialog/checklist.oHOSTCC scripts/kconfig/lxdialog/inputbox.oHOSTCC scripts/kconfig/lxdialog/lxdialog.oHOSTCC scripts/kconfig/lxdialog/menubox.oHOSTCC scripts/kconfig/lxdialog/msgbox.oHOSTCC scripts/kconfig/lxdialog/textbox.oHOSTCC scripts/kconfig/lxdialog/util.oHOSTCC scripts/kconfig/lxdialog/yesno.oHOSTLD scripts/kconfig/lxdialog/lxdialogscripts/kconfig/mconf Config.in在弹出的TUI界面中进行如下配置:检查Miscellaneous Utilities--->taskset 是否去除同时设置如下:Busybox Settings --->Build Options --->[*]Build BusyBox as a static binry (no shared libs) //选用静态连接[*]Build with Large File Support (for accessing files > 2 GB)(/usr/local/arm/3.4.1/bin/arm-linux-) Cross Compiler prefixInstallation Options --->[*] Don't use /usr(./_install) BusyBox installation prefix //安装路径Busybox Library Tuning --->(6) Minimum password length(2) MD5: Trade Bytes for Speed[*] Faster /proc scanning code (+100 bytes)[ ] Support for /etc/networks[*] Command line editing(1024) Maximum length of input[*] vi-style line editing commands(15) History size[*] History saving[*] Tab completion[*] Username completion[*] Fancy shell prompts //Setting this option allows for prompts to use things like \w and// \$ and escape codes.[ ] Give more precise messages when copy fails (cp, mv etc)(4) Copy buffer size, in kilobytes[ ] Use clock_gettime(CLOCK_MONOTONIC) syscall[*] Use ioctl names rather than hex values in error messages[*] Support infiniband HW设置完毕后,保存、退出。

详细解读NFS 文件系统源代码

详细解读NFS 文件系统源代码

详细解读NFS 文件系统源代码NFS 文件系统概述NFS(Network File System,网络文件系统)是一种基于网络的文件系统。

它可以将远端服务器文件系统的目录挂载到本地文件系统的目录上,允许用户或者应用程序像访问本地文件系统的目录结构一样,访问远端服务器文件系统的目录结构,而无需理会远端服务器文件系统和本地文件系统的具体类型,非常方便地实现了目录和文件在不同机器上进行共享。

虽然NFS 不是唯一实现这个功能的文件系统,但它无疑是最成功一个。

NFS 的第一个版本是SUN Microsystems 在20 世纪80 年代开发出来的,至今为止,NFS 经历了NFS,NFSv2,NFSv3 和NFSv4 共四个版本。

现在,NFS 最新的版本是4.1,也被称为pNFS(parallel NFS,并行网络文件系统)。

前四个版本的NFS,作为一个文件系统,它几乎具备了一个传统桌面文件系统最基本的结构特征和访问特征,不同之处在于它的数据存储于远端服务器上,而不是本地设备上,因此不存在磁盘布局的处理。

NFS 需要将本地操作转换为网络操作,并在远端服务器上实现,最后返回操作的结果。

因此,NFS 更像是远端服务器文件系统在本地的一个文件系统代理,用户或者应用程序通过访问文件系统代理来访问真实的文件系统。

众所周知的是,NFS 的客户端在访问远端服务器文件系统时,既需要通过服务器获得文件的属性信息,还需要通过服务器获得文件的数据信息,这使得NFS 天然地具备将文件的属性信息和数据信息分离在不同服务器上进行访问的特性,于是最后一个版本NFS4.1/pNFS,将Lustre/CephFS/GFS 等集群文件系统的设计思想引入到自身中,成为一个具有里程碑意义的NFS 版本。

它使得NFS 的数据吞吐的速度和规模都得到了极大提高,为NFS 的应用带了更为广阔的空间。

NFS 之所以备受瞩目,除了它在文件共享领域上的优异表现外,还有一个关键原因在于它在NAS 存储系统上应用。

NFS参数配置详细说明

NFS参数配置详细说明

NFS参数配置详细说明1、NFS概述NFS:Network file system,网络文件系统;由sun公司1984年推出,用来在网络中的多台计算机间实现资源共享(包括象文件或cd-rom);设计的目的是:实现在不同系统间交互使用,所以它的通信协议采用与主机和操作系统无关的技术;NFS Server可以看作是File Server,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样;NFS协议从诞生到现在有多个版本:NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010);如何查看nfs当前的版本:rpm -qi portmaprpm -qi nfs-utilsNFS服务器的安装:可以由多种安装方法:----在安装linux系统时选择安装nfs服务对应的组件;(多数linux发行版本默认安装)----安装nfs的rpm套件包(手动安装)rpm -ivh rpm包需要5个RPM包。

setup-*:共享NFS目录在/etc/exports中定义(linux默认都安装)initscripts-*:包括引导过程中装载网络目录的基本脚本(linux默认都安装)nfs-utils-*:包括基本的NFS命令与监控程序portmap-*:支持安全NFS RPC服务的连接quota-*:网络上共享的目录配额,包括rpc.rquotad (这个包不是必须的)----也可以去下载nfs的源代码包,进行编译安装;RPC(Remote Procedure call) NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。

而这些传输协议用到这个RPC功能的。

可以说NFS本身就是使用RPC的一个程序。

或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。

网络文件系统(NFS)的工作原理和应用技术

网络文件系统(NFS)的工作原理和应用技术

6网络文件系统(NFS)的工作原理和应用技术郭英见图2R PC 工作过程计算机网络的软件环境包括网络协议和网络操作系统两个方面:网络协议用于实现各种操作系统的网络连接和数据通信;而网络操作系统是网络协议中的网络服务系统,是网络的核心。

工业标准的网络文件系统NFS 由于具有网络操作系统文件服务器的功能,且使用维护均比较方便,从而也被广泛地应用在各系统中。

本文从N FS 工作原理和应用技术两方面深入讨论N FS 。

一、网络文件系统NFS 的工作原理N FS 包括N FS 服务器和N FS 客户两部分,采用星型拓扑结构连接。

NFS 服务器是中心,N FS 客户是端点,见图1。

N FS 服务器:提供共享本地硬盘上的任何文件系统或目录等文件信息的计算机。

N FS 客户:能够安装远地文件系统和目录,并且从其他计算机上获取文件信息的计算机。

N FS 服务器与N FS 客户之间并无严格的界定,多任务的操作系统可同时作为客户和服务器,读取网络上其他正在访问自己硬盘的计算机上的文件。

为了NFS 的开发应用专门引入了远程过程调用RPC(Remote Pr ocedure Call)的概念,RPC 过程调用可以作为对话层和报文交换器用于所有的NFS 的应用程序。

RPC 由一系列过程组成,这些过程可以视为处理任何所需网络访问的高层应用程序,即可以透明地访问远地文件系统。

R 通过网络作用于客户和服务器之间,具体工作过程是首先客户向服务器发出请求报文,服务器接收到报文后,从中提取出请求,然后执行请求的过程,并且将结果汇编成响应报文。

客户将接收到的报文响应后,对报文进行反汇编,继续执行应用程序的正常过程。

这个过程的每一步都由RPC 程序库(与应用程序相连)的例程控制。

见图2。

二、网络文件系统NFS 的配置由于N FS 是由N FS 客户和N FS 服务器组成的,所以N FS 的配置就需分成NFS 服务器的配置和N FS 客户的配置。

nfs详细配置说明

nfs详细配置说明

网络文件系统(NFS)一、NFS简介1、NFS就是Network File System的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(share files)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将它看作一个文件服务器(File Server)。

注意:一般而言,使用NFS服务能够方便地使各unix-like系统之间实现共享,但如果需要在unix-like和windows系统之间共享,那就得使用samba了。

2、NFS是通过网络进行数据传输,那么NFS使用哪些端口呢,答案是……不知道,因为NFS传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用RPC。

其实,NFS运行在SUN的RPC(Remote Procedure Call,远程过程调用)基础上,RPC 定义了一种与系统无关的方法来实现进程间通信,由此,NFS Server也可以看作是RPC Server。

正因为NFS是一个RPC服务程序,所以在使用它之前,先要映射好端口——通过portmap设定。

比如:某个NFS Client发起NFS服务请求时,它需要先得到一个端口(port),所以它先通过portmap得到port number(不仅是NFS,所有的RPC服务程序启动之前,都需要先设定好portmap)。

注意:在启动RPC服务(比如NFS)之前,需要先启动portmap服务。

3、NFS允许系统将其目录和文件共享给网络上的其他系统。

通过NFS,用户和应用程序可以访问远程系统上的文件,就像它们是本地文件一样。

那么NFS最值得注意的优点有:(1)本地工作站可以使用更少的磁盘空间,因为常用数据可以被保存在一台机器上,并让网络上的其他机器可以访问它。

(2)不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在NFS服务器上设置并使其在整个网络上可用。

Linux通过nfs挂载根文件系统失败:VFS:Unabletomountrootfsvi。。。

Linux通过nfs挂载根文件系统失败:VFS:Unabletomountrootfsvi。。。
请求出错错误代码503请尝试刷新页面重试
Linux通过 nfs挂载根文件系统失败: VFS: Unabletomountrootfsvi。 。 。
在网上搜索各种资料均未解决。
最终发现原因是我的Ubuntu版本太新了,不兼容导致。
终于在大神的博客里找到解决方法:
查找资料发现从Ubuntu17.04开始,nfs默认只支持协议3和协议4,而kernel中默认支持协议2,所以才会出现挂载失败的情况,现有两种方 法可以解决该问题:
1. 设置Ubuntu18.04系统中的nfs服务支持协议2,修改nfs配置文件 /etc/default/nfs-kernel-server,在文件末尾加入一句:RPCNFSDOPTS="-nfs-version 2,3,4 --debug --syslog"。
2. 如果kernel版本较高支持nfs协议3的话,可以在Uboot传到Kernel的bootargs参数中加入'nfsvers=3',使kernel使用nfБайду номын сангаас协议3。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1为什么要制作nfs起根文件系统
制作用于mini2440开发板使用的内核,并使用nfs起根文件系统。

2应用arm平台的linux2.6.29内核。

首先清理内核中间文件,配置文件
命令#cd /home/guoqian/4-3-1
#cd linux-2.6.29
#make distclean
3选择参考配置文件
为了使制作的内核支持nfs起根文件系统,选择config-mini2440作为配置文件。

修改配置文件CMDLINE,修改代码如下:
******************************************************************************* CMDLINE=”root=/dev/nfs nfsroot=192.168.14.2:/nfsroot/rootfs
ip=192.168.1.55 rw console=ttySAC0 mem=64M”
******************************************************************************* 解释:CMDLINE:命令行启动参数定义了内核挂载根文件系统的方式
(1)root=/dev/nfs →表示内核采用nfs方式起根文件系统
(2)nfsroot=192.168.14.2:/nfsroot/rootfs →表示nfs起的根文件系统位于nfs服务器/nfsroot/rootfs目录,服务器IP地址为192.168.14.2
(3)ip=192.168.1.55 →开发板IP地址,要求与服务器IP地址在同一网段
(4)rw →文件系统可读可写
(5)console=ttySAC0 mem=64M →ttySAC0作为控制台,内存64M
4配置内核
命令#make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-
要使内核支持nfs起根文件系统,内核必须选上如下的配置选项:
File system→Network File Systems→
选择
<*> NFS client support
[*] MFS client support for NFS version 3
[*] Root file system on NFS
选择完成后退出保存。

5编译内核
命令#make ulmage ARCH=arm CROSS_COMPILE=arm-linux-
以下就是我编译完成后生成的内核映像ulmage。

其位于arch/arm/bootm目录下。

6将ulmage拷贝到tftp服务项目/tftpboot
命令#cp arch/arm/boot/ulmage/tftpboot
#ls /tftpboot
7在PC机和mini2440开发板接好电源、串口、网线。

并打开超级终端正确配置超级终端端
口,开发板上电,超级终端输出以下信息
8配置uboot保证网络可用
虚拟机IP地址#setenv serverip 192.168.14.2
开发板IP地址# setenv ipaddr 192.168.14.55
网卡的物理地址# setenv ethaddr 00:01:02:03:04:05
# seven
9测试网络是否可用
#ping 192.168.14.2
输出语句hose 192.168.14.2 is alive说明我的网络可用。

10在u-boot中通过tftp下载内核
命令#tftp 31000000 ulmage
(把server<IP=环境变量中设置的serverip>中服务目录下的ulmage通过TFTP读入到mini2440开发板内存地址0x31000000处
内核已经成功下载到内存中
11启动内核
命令#bootm 31000000
内核已经成功启动,并使用NFS方式起根文件系统。

相关文档
最新文档