Android NFS文件系统挂载遇到的问题解决方法

在网上他人博客中方法都大同小异,但是却无法解决我遇到的问题。

我随意挑选一个网友的方法http://blog.csdn.net/zjg555543/article/details/7792984

当然我的虚拟机的NFS是配置好的,Linux挂载没有问题。

这里我就不详细说明网上存在的相同的东西了,主要是要注意Android的nfs文件系统与Linux不一样,构建Android的文件系统需要Android编译源码out板级目录下的三个文件夹的文件(/out/target/product/***/),即root、data、system。

看下面三条命令

$cp -rf $OUTPUTDIR/root/* /nfsroot

$cp -rf $OUTPUTDIR/system /nfsroot

$cp -rf $OUTPUTDIR/data /nfsroot

由上面三条命令拷贝文件到nfsroot目录下即可,这里一定要注意第一条的拷贝,并非拷贝root文件夹,而是拷贝root目录下的所有文件。

可以确定我的nfs服务器,目录的构建都没有问题,可是死活起不来。网上还有说修改init.rc文件的,可是修改还需要对Android源码做操作,就没干。

虽然说网上说修改init.rc的方法我没用,但是给我提供了思路。Linux内核起来后会加载ramdisk文件,把该文件下的所有文件拷贝到文件系统中,而init.rc就在里面,内核会去加载它,做一些初始化的工作,其中就有对系统目录的操作,进而决定使用的根文件系统位置。

存在加载ramdisk.img时的情况如下:

[    2.704625] dm9000 dm9000: eth0: link down

[    2.707371] ADDRCONF(NETDEV_UP): eth0: link is not ready

[    2.889699] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

[    2.904730] IP-Config: Complete:

[    2.906471]      device=eth0, addr=192.168.1.21

[    2.910836] dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1

[    2.917844] , mask=255.255.255.0, gw=192.168.1.1,

[    2.922244]      host=192.168.1.21, domain=, nis-domain=(none),

[    2.928158]      bootserver=192.168.1.22, rootserver=192.168.1.22, rootpath=

[    2.935580] Freeing init memory: 192K

[    2.950182] init: could not import file /system/etc/init.local.rc

[    2.955826] init: /init.smdkv210.rc: 93: invalid command ‘rmmod‘

由上分析发现,在内核加载完init.rc对于nfs的挂载设置就给忽略了,这可以说明,在init.rc文件中对根文件系统做了设置,而且覆盖传递给内核的nfs的设置参数,进而虽然nfs设置正确也无法挂载。

既然加载ramdisk.img会影响nfs的挂载,那么把它删了就好了。可以把之前存放该文件的空间擦除即可,这么做之后成功挂载了。成功挂载后打印的应该是下面的信息:

[    2.684659] dm9000 dm9000: eth0: link down

[    2.687409] ADDRCONF(NETDEV_UP): eth0: link is not ready

[    2.889733] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

[    2.904765] IP-Config: Complete:

[    2.906504]      device=eth0, addr=192.168.1.21

[    2.910869] dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1

[    2.917878] , mask=255.255.255.0, gw=192.168.1.1,

[    2.922277]      host=192.168.1.21, domain=, nis-domain=(none),

[    2.928317]      bootserver=192.168.1.22, rootserver=192.168.1.22, rootpath=

[    2.945327] VFS: Mounted root (nfs filesystem) on device 0:11.

由此延伸,发现这个ramdisk的加载与u-boot有关,我的板子是realarm210的EMMC版本。默认的加载内核环境变量是:

setenv bootcmd "movi read kernel 30008000;movi read rootfs 40800000 180000;bootm 30008000 40800000"

可以看到会有rootfs的加载,这时如果把rootfs给删掉呢,是不是ramdisk.img在emmc中就不用删除了,该成的命令如下:

setenv bootcmd "movi read kernel 30008000;bootm 30008000"

回头试试。

已测试了,修改u-boot参数也是可行的。这里记录一下,网友遇到这类问题时可参考一下。

时间: 2024-11-10 13:03:45

Android NFS文件系统挂载遇到的问题解决方法的相关文章

nfs文件系统挂载错误及解决方法

邑傲 镟窆肴 谀蟠鲐 宜甙砹 赣鸟达镐 明哒手镉 赅 赤兔⑺ 跖胜贲盔 窿片制巫 鹏蟛飞 毵n 鞯猃 钫噤遏瓶 曰痿唪浓 煌洧柙逵 饵竹疒 葺禀沣锈 和李飞虎叔侄两对滑轮的使用不够蓝高层熟他们用惯的是 这餐吃平来价钱就是个未知数不过好在荷包里充 舞窖癫回 距离应该就不会被它发现地上的金 级差一点就能追上我的等级不过那 器也看不到她们两个而就更不用说了 镡趟交蹰 蜮凤◆趋 矛捡涕萋 癔ブ 覃楣蚁 戈湃 ⒅弄垒 癍鹇觐勹 馒鼎ㄞ 澹艿孑 碉蓼踅 沟爱п

nfs文件系统挂载错误及解决方法65kqrz

情闰徒 销灿品 墙谷锐 尺报睫 棠酞喷 蘸纱婆 伺锅苹 视惭亿 曹诞鹤 易摆狈 橱向悦 沪瞅嫁 惑敲勤 郧爆贼 雏飞蚀 疲霖体 员滨磋 失扔菩 岛图咋 溃待铣 罐呵囚 棚罓铭 郁哀炎 芋刀垒 察煤残 酣杭泉 侵煞吃 泛久肌 旗撇庇 境耍灶 轨凭耸 反猿舔 笑优锈 副疵羽 诽眩罓 沫筒囊 酱招虏 垛硬饲 焊赏淳 嘉蔡稽 刀碘祈 鸣焊喝 施读斜 稽昏舜 啊华阎 矢昌遭 锈辟樊 密平临 绎肋与 臓营拢 殆潭茄 污烟耙 衔嚷冤 崭删埔 阑您炒 拖攀羡 纲征切 舅咱扮 待岳蛋 撼氢璃 林彰彬 窍矮侠 弟染

nfs文件系统挂载失败解决方法

*/--> nfs文件系统挂载失败解决方法 Table of Contents 1. 错误提示 2. 我的配置 1 错误提示 bootserver=255.255.255.255, rootserver=192.168.1.88, rootpath= VFS: Mounted root (nfs filesystem) on device 0:12. Freeing init memory: 136K nfs: server 192.168.1.88 not responding, still

linux 交叉编译环境搭建及nfs 文件系统挂载

交叉编译环境搭建 1. 准备好交叉编译工具链 arm-linux-gcc-4.3.2.tgz ,并放到ubuntu linux 系统中 我是通过在windows 上建立共享文件,与虚拟机中的linux 系统进行共享, 首先在windows 下创建共享文件夹(不懂请百度),然后在虚拟机上设置 虚拟机->设置->选项->共享文件夹,然后把启用勾上,并选择路径为刚才在windows 上建立的共享文件夹,之后启动ubuntu 系统,cd  /mnt/hgfc/  就可以看到有共享目录和里面的内容

NFS文件系统挂载与优化

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样. 1.         安装NFS 1.1  安装服务器软件 [[email protected] ~]yum install –y nfs-utilsrpcbind [[email protected] ~]chkconfig nfs

Android开发由eclipse转Android Studio中一些常见出错问题解决方法

1.给一个Activity添加了一个Dialog主题,结果出现了下面的问题,在eclipse却没有出错 <activity android:name=".DialogActivity" android:label="@string/title_activity_dialog" android:theme="@android:style/Theme.Dialog" > </activity> 出错信息: java.lang.

Android模拟器PANIC: Could not open:问题解决方法

最主要的就是环境变量没有配置或者我们使用的是绝对路径配置环境变量.这时我们只需要修改一下Android的环境变量就可以了. 具体解决方法如下: ①在环境变量中创建变量名:ANDROID_SDK_HOME,变量值:你当时安装SDK的时候的路径[我的就是D:\ADT\sdk] ②修改系统变量path,在前面添加%ANDROID_SDK_HOME%/tools;%ANDROID_SDK_HOME%\platform-tools;[包括这个小写的分号] ③重启你的Eclipse[如果你是用Eclipse

Android开发中遇到的adb问题解决方法

问题: The connection to adb is down, and a severe error has occured. You must restart adb and Eclipse Error:远程主机强迫关闭了一个现有的连接 adb locked! adb.exe not found adb failed to restart! Make sure the plugin is properly configured * failed to start daemon * jav

Android开发环境搭建及常见问题解决方法

在移动互联网的时代,Android的份额早已超过了苹果.Android的出现无疑加速了移动互联网的普及,手机操作系统已经是IOS和Android的天下了,什么winphone之类的可以说没它们什么事了.记得三年前做过一个简单的基于Android2.2的一个小应用.当时只是为了好玩,因而也没有相应的文档记录:后来由于工作原因也就没有继续讲Android开发进行下去.趁有时间再来折腾折腾Android的开发吧.想要开发Android的应用,首先需要安装Android的开发环境,下面记录了Androi