嵌入式开发,如果使用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中的内核
在ubuntu中添加widows启动项的简单方法
打开终端执行: sudo vim /boot/grub/grub.cfg 或者 sudo gedit /boot/grub/grub.cfg 打开文件grub.cfg. 在文件中添加:添加的时候注意和 ...
tomcat在ubuntu中设置开机启动
#!/bin/bash export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_72 WEBROOT_PATH=/home/zhengze/workspace WEBSERVER ...
Ubuntu中MySql的启动与关闭
安装mysql sudo apt-get install mysql-server sudo apt install mysql-client sudo apt install libmysqlcli ...
在Ubuntu中使用uwsgi 启动 Django ,但是静态文件映射出错
错误 : 找不到/static/下面的静态文件 解决方法: 在uswgi.ini 文件中配置参数 static-map=/static=/home/wb/Desktop/test_django/st ...
把Linux目录挂载到开发板、设置开发板从NFS启动、取消开发板从NFS启动
声明:文中"PC虚拟机Linux"是指在PC上安装了虚拟机,然后在虚拟机中装的Linux. 关于NFS的详细介绍可参考:http://www.cnblogs.com/nufangr ...
使用ramdisk启动ubuntu文件系统
环境 Qemu 4.1 vexpress-ca9 概述 为了减小linux内核的大小,可以把一些外设驱动编译成内核模块,但是在启动ubuntu的时候,需要读取flash,但是此时flash的驱动模块存 ...
Android启动过程中背景图片显示
转自:http://blog.csdn.net/zhangzhikaixinya/article/details/17001321 大部分Android App启动过程中,都会设置一个背景图片,直到A ...
Ubuntu中MongoDB安装
在Ubuntu中MongoDB有时候启动不起来,可以参考以下方法从新安装: 1.导入包管理系统使用的公钥 Ubuntu 的软件包管理工具(即dpkg和APT)要求软件包的发布者通过GPG密钥签名来确保 ...
Ubuntu中如何使得程序在后台运行
Ubuntu中如何使得程序在后台运行 一.前言 在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这 ...
随机推荐
Fedora 24中的日志管理
Introduction Log files are files that contain messages about the system, including the kernel, servi ...
linux I/O stack cache 强制刷新
linux 存储子系统作为最为复杂的子系统之一,拥有很深的模块栈(如图),其中很多模块又有自己的缓存功能(如下图).实际应用中,用户下发的数据停留在哪个缓存中,是否已经写入磁盘,这些操作对用户来说是个 ...
用.NET MVC实现长轮询,与jQuery.AJAX即时双向通信
两周前用长轮询做了一个Chat,并移植到了Azure,还写了篇博客http://www.cnblogs.com/indream/p/3187540.html,让大家帮忙测试. 首先感谢300位注册用户 ...
apache的80端口分发
打开 conf 文件夹,找到下面的 httpd.conf 更改Listen 后面的端口号为:80:默认就是80端口 去掉下面的相关注释: #LoadModule proxy_module module ...
【练习】sqlnet.ora
在SQLNET.ora文件中设置以下参数可以实现IP访问限制: $ pwd/u01/app/oracle/product/10.2.0/db_1/network/admin$ vi sqlnet.or ...
Rectangles hdu2461容斥定理
Rectangles Time Limit: 5000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
linux(ubuntu) 安装composer(PHP用来管理依赖关系的工具 ) 和安装中国全量镜像
https://www.phpcomposer.com/ composer中文网 1:进入安装目录 cd /usr/local/bin 2:下载并安装 sudo curl -s http ...
SQLite的文件锁、并发与pager---(SQLite学习手册(锁和并发控制))
一.概述: 在SQLite中,锁和并发控制机制都是由pager_module模块负责处理的,如ACID(Atomic, Consistent, Isolated, and Durable).在含有数据 ...
Objective-C weak深入理解
1.weak是弱引用,所引用的对象计数不会加1. 2.weak变量在其引用的对象被销毁之后,会被置为nil. 3.weak通常用于block, delegate, NSTimer,以解决循环引用带来的 ...
Thread.Sleep(0)妙用
Thread.Sleep(0)妙用 我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 ...