zoukankan      html  css  js  c++  java
  • 构建根文件系统之根文件系统(三)

    每修改一次文件系统,就要烧写一次。那么有没有一种方法,不用烧写呢?
    用网络文件系统NFS,文件系统是放在服务器上的,内核启动后,识别出服务器上的这个目录,把它当作根文件系统,
    自然就不需要烧写了。
    打开开发板,ifconfig 查看一下
    ifconfig eth0 up
    ifconfig eth0 192.168.1.20(只要与服务器处于同一网段就可以)
    然后ping一下,能否ping通。假设ping通的话,进行后续的操作:
    挂接NFS需要满足的条件:
    服务器允许那个目录被别人挂接(试试自己能不能被自己挂接:sudo mount -t nfs 192.168.1.5:/work/nfs_root/first_fs /mnt);
    NFS服务,在etc/exports这个配置文件中定义这个目录就可以了。
    单板去挂接
    mkdir /mnt
    mount -t nfs -o nolock 192.168.1.5:/work/nfs_root/first_fs /mnt
    此时在单板上mnt中看到的东西与在服务器中这个目录/work/nfs_root/first_fs看到的东西是一样的。
    此时在服务器/work/nfs_root/first_fs中创建一个test.txt文件,在单板上就会看见该文件。这种挂接方法对应着a
    a、手工挂接:从flash上启动根文件系统,再用命令挂接NFS。该方法比较繁琐,每次启动后,都需要重新挂接
    b、直接从NFS启动,需要修改命令行参数。
    如何修改:
    NFS启动参数需要设置什么东西?
    1、服务器ip,目录
    2、设自己的ip
    set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.5:/work/nfs_root/first_fs ip=192.168.1.17:192.168.1.5:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200
    参数的具体含义在linux-2.6.22.6Documentation fsroot.txt中。
    然后save,重新启动单板
    现在来进行测试一下:
    在服务器中编写,hello.c程序
    #include<stdio.h>
    int main()
    {
    printf("hello world ");
    return 0;
    }
    在服务器中编译,生成hello。然后再开发板上可以直接运行。
    # ls
    bin etc hello.c linuxrc sbin test.txt
    dev hello lib proc sys usr
    # ./hello
    hello world

  • 相关阅读:
    MyEclipse2014中SVN的使用方法
    使用Navicat V8.0创建数据库,外键出现错误ERROR 1005: Can’t create table (errno: 121)
    个人简历
    Android Studio集成SVN报错:can't use subversion command line client : svn
    面向对象原型的七种方法详解(前)
    js中return的用法
    面试题总结
    Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?以及 HTTP状态码
    css3实现的3中loading动画效果
    CSS3绘制弹球动画效果
  • 原文地址:https://www.cnblogs.com/-glb/p/7153538.html
Copyright © 2011-2022 走看看