关于启动ubuntu中的nfs启动问题

本文详细介绍了如何在Ubuntu系统中安装并配置NFS服务,以便通过NFS挂载内核和文件系统进行调试。解决了一个关于NFS挂载参数设置导致的u-boot启动错误问题,最终通过开启portmap服务得以正常挂载。

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

嵌入式开发,如果使用nfs挂载来启动内核和文件系统,这样便于调试文件系统和驱动,则首先要保证ubuntu开启nfs服务,

执行以下命令安装nfs服务,安装后自动运行

sudo apt-get install nfs-kernel-server

配置其配置文件

sudo vi /etc/exports 在里面增加想要挂载的文件路径

#
11 /work/nfs_root *(rw,sync,no_root_squash)
12 /work/nfs_root/first_fs *(rw,sync,no_root_squash)
13 /work/kernel *(rw,sync,no_root_squash)
14 /work/nfs_root/fs_qtopia *(rw,sync,no_root_squash)
15 /work/system/u-bootbin *(rw,sync,no_root_squash)
16 / *

 其中"*"表示所有客户机都可以访问(只要能通过网络访问到你)

      rw当然表示有读写权限(不要担心)

      no_root_squash表示客户机对此目录有root操作权限

这样就可以通过nfs服务来挂载nfs_root,kernel等目录下的所有文件;

 配置完毕,可以重启NFS服务

       sudo /etc/init.d/portmap restart      //nfs is a RPC service, portmap maps its port

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

   

       查看NFS目录可以使用  ”showmount -e“ 命令

测试NFS服务是否开启成功

      在本机ubuntu(10.13.60.120)上挂载nfs目录到/mnt,(挂载未在/etc/exports里面添加的目录是无效的)

      sudo mount -t nfs 10.13.60.120:/home

      可以看到/mnt下已经有/home的内容了 ,卸载使用 umount /mnt命令即可

 

通常,为了能够正常使用NFS,还需要一些相关的服务来协同工作:
nfs:启动相应RPC服务进程来服务对于NFS文件系统的请求。
nfslock:一个可选的服务,用于启动相应的RPC进程,允许NFS客户端在服务器上对文件加锁。
portmap:Linux的RPC服务,它响应RPC服务的请求和与请求的RPC服务建立连接。

 

问题:当我把u-boot中关于nfs挂载参数设置好后,一直出现如下错误:

Booting Linux ...
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
File transfer via NFS from server 10.13.62.120; our IP address is 10.13.62.100
Filename '/work/kernel/uImage'.
Load address: 0x30007fc0
Loading: Timeout
## Booting image at 30007fc0 ...
Bad Magic Number

 

问题是这样解决的:因为我的ubuntu没有开启portmap功能

sudo /etc/init.d/portmap restart 

开启后再重新启动nfs系统就可以正常挂载ubuntu中的内核

 

转载于:https://www.cnblogs.com/xingbaohao/p/5237386.html

### 配置和使用 NFS 网络文件系统 #### 安装 NFS 服务器 为了在 Ubuntu 中配置 NFS 网络文件系统,首先需要安装 NFS 服务器软件包。这可以通过执行以下命令来完成: ```bash sudo apt-get update sudo apt-get install nfs-kernel-server ``` 此操作会下载并安装必要的组件以支持 NFS 功能[^2]。 #### 启动 NFS 服务 一旦安装完毕,可以利用 `systemctl` 来启动 NFS 服务: ```bash sudo systemctl start nfs-kernel-server ``` 该指令用于激活 NFS 内核服务以便能够接收来自客户端的连接请求[^1]。 #### 设置共享目录 为了让其他机器访问本地资源,在 `/etc/exports` 文件中定义哪些路径应该被共享以及它们可由谁访问。编辑这个文件添加如下行作为例子说明如何分享 `/home/user/shared_folder` 给特定 IP 地址范围内的主机,并允许读写权限: ```plaintext /home/user/shared_folder 192.168.1.0/24(rw,sync,no_subtree_check) ``` 保存更改之后,通过运行下面这条命令使新的设置生效: ```bash sudo exportfs -a ``` #### 测试挂载功能 最后一步是在同一台计算机上测试是否能成功挂载远程共享。假设已经按照上述步骤设置了共享,则可以用下列方式验证其工作状态: ```bash mkdir -p /mnt/nfs_test mount -t nfs localhost:/home/user/shared_folder /mnt/nfs_test/ ls /mnt/nfs_test/ ``` 如果一切正常的话,应当能看到所指定的共享文件夹中的内容显示出来[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值