当前位置:首页 > CN2资讯 > 正文内容

win 10 NFS挂载 windows使用nfs挂载

9小时前CN2资讯


 NFS(network file system)

NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。

也就是说NFS服务端提供共享目录文件挂载在客户端某一个目录文件下,以供客户端去访问和使用

编辑

思路:

在虚拟机下创建根文件系统,安装并开启NFS的服务端,提供根文件系统给外界访问,JZ2440在启动时配置相关参数,将虚拟机下的根文件系统挂载到JZ2440的根文件系统下,这样在JZ2440就可以直接使用虚拟机下的根文件系统去启动了

前提:

虚拟机安装了gcc和交叉编译工具arm-linux-gcc,arm-linux-gcc已加入环境变量,已添加make menuconfig用到的相关软件及一些32位的函数库,

库文件:

sudo apt install bison flex build-essential patch libncurses5-dev libncursesw5-dev libc6-i386 lib32stdc++6 lib32z1

 linux启动所需的文件有etc/inittab  ,   etc/init.d/rcS   ,  etc/fstab这三个文件

内核引导完成后会启动第一个进程init,所有进程的父进程,该进程的源码文件也是由Busybox工具生成的,initi进程会去读取etc/inittab文件的每一行语句作为行为指针,其中一行行为是去执行etcinit.d/rcS脚本文件,而rcS中有一行脚本命令(mount -a)是去挂载etc/fstab文件中指定的所有文件系统,至此,将三个文件都联系起来

创建nfs根文件

1.创建mynfs文件夹,进入mynfs,在下方创建目录

mkdir bin dev etc lib proc sbin sys usr mnt tmp var

 2. 在dev目录下创建两个基本的设备文件console(控制台)和null(黑洞文件)

sudo mknod dev/console c 5 1 sudo mknod dev/null c 1 3

 3. 在etc目录下创建fstab,init.d/rcS和inittab文件,并编辑好内容

3.1 fstab文件内容:

#device mount-point type options dump fsck order proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0

 3.2 inittab文件内容:

# /etc/inittab # 系统启动阶段,执行rcS脚本 ::sysinit:/etc/init.d/rcS # sh进程结束,又会重启sh进程 console::askfirst:-/bin/sh # ctrl+alt+del,重启reboot ::ctrlaltdel:/sbin/reboot # 关机时候,卸载所有设备 ::shutdown:/bin/umount -a -r ::shutdown:/

 3.3 init.d/rcS文件内容:

#!/bin/sh #mount all filesystem defined in "fstab" echo "#mount all…" mount -a mkdir /dev/pts mount -t devpts devpts /dev/pts echo /sbin/mdev > /proc/sys/kernel/hotplug mdev -s

init.d/rcS文件需要加上“x”可执行属性.

chmod +x rcS

 4. 使用busybox创建bin目录下的命令和生成init进程。

4.1 解压busybox源码包,进入其目录,修改Makefile,指定ARCH和CROSS_COMPILE

vim Makefile

找到并修改这两个参数 

原来的代码:

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?=

 

修改后的代码:

ARCH ?= arm 

CROSS_COMPILE ?= arm-linux-

 通过厂家给定的默认文件改为默认配置文件,在用菜单配置界面修改busybox的默认配置

cp ../busybox1.22.1_config_ok ./.config make menuconfig

4.2 配置busybox,

确保Shells中选中ash,

Init utilities中选中init;

BusyBox         Settings/build         option,使用动态库,

BusyBox         Settings/installation         option/Don't use /usr,确定生成的文件不在use/usr下

miscellaneous utilities中,取消taskset, 

4.3 保存生成.config,重新编译和安装:

 编译Busybox

make -j16

-j表示多线程编译,会自动向下兼容 

安装Busybox中的工具到根文件系统 

make CONFIG_PREFIX=/home/a1/jz2440/rootfs/mynfs install

安装完毕后,在/home/a1/jz2440/rootfs/mynfs下会看到linuxrc文件,在/home/a1/jz2440/rootfs/mynfs/bin下会看到很多命令文件。 

5.  copy 必须的库文件到mynfs/lib中。

cd /home/a1/jz2440/crosstool/arm-linux-gcc-4.4.3/arm-none-linux-gnueabi/lib cp *.so* /home/a1/jz2440/rootfs/mynfs/lib -d

-d or -a参数的意思是包括软链接文件也copy过来。 

6. 主机上安装和配置nfs服务

sudo apt-get install nfs-kernel-server

配置:
6.1 修改 /etc/portmap文件,把最后一行的options前加上“#”注释掉 (注:ubuntu16.04不需要)

6.2修改 /etc/exports文件,最后一行加上:

/home/a1/jz2440/rootfs/mynfs *(rw,sync,no_root_squash,no_subtree_check)

意思是 将/home/a1/jz2440/rootfs/mynfs目录下的所有内容共享出去

运行

sudo exportfs -r

更新一下。

6.3 运行NFS:

需要启动portmap、 nfs-kernel-server:

sudo /etc/init.d/rpcbind restart sudo /etc/init.d/nfs-kernel-server restart

6.4 本机测试

将刚刚创建的根文件系统挂载到本机的/mnt/nfs目录下,先在/mnt目录下创建nfs目录(需要sudo权限)

sudo mkdir nfs

然后挂载

sudo mount 127.0.0.1:/home/a1/jz2440/rootfs/mynfs /mnt/nfs

 查看挂载的主机


showmount


查看当前的文件系统


df -h


客户端卸载从服务器上挂载在本地的目录文件


sudo umount /mnt/nfs


7. 开发板挂载nfs根文件系统

进入uboot,修改原来的本地根文件启动参数

"bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0,115200 mem=64M"

为nfs启动,然后保存参数

set bootargs root=/dev/nfs rw nfsroot=192.168.0.19:/home/a1/jz2440/rootfs/mynfs/ ip=192.168.0.17 init=/linuxrc mem=64M console=ttySAC0,115200 save

如果NFS的服务端的版本较高(版本较高的ubuntu),则要使用V3版本的协议,例如20.04版本的ubuntu的nfs协议是v3版本,且默认TCP和UDP都是打开的,可以使用一下启动参数:

set bootargs root=/dev/nfs rw nfsroot=169.254.179.207:/home/zxz/jz2440/rootfs/mynfs,v3 ip=169.254.179.203 init=/linuxrc mem=64M console=ttySAC0,115200

 

而新版本22.04ubuntu的nfs协议默认只使用的tcp的协议,则要再加上tcp的传输模式 

set bootargs root=/dev/nfs rw nfsroot=169.254.179.207:/home/zxz/jz2440/rootfs/mynfs,tcp,v3 ip=169.254.179.203 init=/linuxrc mem=64M console=ttySAC0,115200

---------------------------------------------------------------------------------------------------------------------------------

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.30:/work/nfs_root/temp/fs_mini_mdev ip=192.168.1.20:192.168.1.30:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> /* *nfsroot对应你pc机的IP和你解压的文件系统的路径,请酌情修改 * ip指定你的开发板的IP、服务器的ip、网关、掩码,掩码后面应该是域名(可省略) * 再往后的,网卡eth0,不自动启动off */



    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/28268.html

    分享给朋友:

    “win 10 NFS挂载 windows使用nfs挂载” 的相关文章

    GIA VPS服务器:高速稳定的理想选择及价格性能分析

    GIA VPS服务器概述 在选择服务器时,GIA VPS服务器越来越受到关注。我之前在寻找合适的VPS时,了解到GIA VPS是一个非常不错的选择。它采用了CN2 GIA线路,提供了高效、稳定的网络连接。对我来说,网络的速度和稳定性是使用服务器的关键因素,而GIA VPS服务器在这两个方面表现都很优...

    Digital-VM优惠码:解锁超值VPS主机服务的最佳选择

    Digital-VM成立于2019年初,专注于为用户提供基于KVM架构的VPS主机服务。在这短短的几年中,它已经迅速崛起,成为业界的一颗新星。作为一个技术驱动的品牌,Digital-VM不断创新,以满足各种客户需求,提供高性能、灵活性和可靠性的VPS解决方案。 我觉得Digital-VM的成长路程相...

    深入了解ICMP协议及其在网络管理中的应用

    ICMP(Internet Control Message Protocol,互联网控制消息协议)是TCP/IP协议族中的一种重要网络协议。我们可以把ICMP想象成网络中的信使,它主要负责在网络中传递控制消息和错误报告。这种功能对于维护网络的正常运作至关重要,让网络管理员能够及时发现并处理问题。IC...

    Lightlayer在菲律宾的应用与优势:智能光电解决方案

    光电技术的迅速发展让我们有机会迎接许多新概念和新技术,其中Lightlayer便是一个值得关注的例子。在我第一次听到“Lightlayer”这个词时,它似乎蕴含了科技的无限可能。Lightlayer简单来说是一个光电解决方案,能够通过创新的方式来管理和优化光源。它不仅在设计上追求完美,更在功能上实现...

    使用宝塔面板配置与优化IPv6技术的全面指南

    宝塔面板简介 宝塔面板是一款非常实用的服务器管理工具,它的功能覆盖了许多方面。从LAMP、LNMP环境的快速搭建到监控、FTP、数据库及JAVA的管理,宝塔面板都能提供一键式的解决方案。通过这样一款工具,服务器的管理不再复杂,用户只需通过友好的Web界面进行操作,即可轻松实现各种任务。 我常常使用宝...

    深入了解CN2 GIA VPS:选择更快稳定的虚拟专用服务器

    在现代互联网环境中,选择合适的虚拟专用服务器(VPS)至关重要。CN2 GIA VPS,则是个不错的选择。它基于中国电信的CN2 GIA国际精品网络,这一网络是中国电信下一代承载网络的高端产品,又被称为Chinatelecom Next Carrier Network- Global Interne...