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

  • 相关阅读:
    记录------敬畏生活
    不错的博客分享
    Python学习笔记(一) 字符串和编码
    OSPF(二)基础实验 ASBR--- 在OSPF中引入自治系统外部路由--- LSA4和LSA5
    OSPF(一)基本概念和基础实验
    LAMP--PHP实验(四)使用包含文件提高代码效率
    LAMP--PHP实验(三)在页面之间传送变量 及遇到问题解决
    LAMP--PHP实验(二)常量和变量
    LAMP--PHP实验(一)第一个PHP程序
    随机获取图片的API
  • 原文地址:https://www.cnblogs.com/-glb/p/7153538.html
Copyright © 2011-2022 走看看