NFS起根文件系统的制作
1,修改已经配置好的内核的.config文件中的CMDLINE(命令行启动参数):gedit .config
- 327 # CONFIG_CMDLINE="root=/dev/mtdblock2 init=/linuxrc console=ttySAC0 rw"//屏蔽此行
-
328 CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.16:/nfsroot/rootfs,nfsvers=3 ip=192.168.0.100 rw console=ttySAC0 mem=64M"
root=/dev/nfs 这个是告诉内核用的是NFS设备
console=ttySAC0 这个是控制台
nfsroot=192.168.0.16:/nfsroot/rootfs 这个是根文件系统在主机上的路径和主机的IP
ip=192.168.0.100 开发板IP
2,要使内核支持NFS起根文件系统,内核必须选上如下配置:
File Systems-->Network File System-->
│ │ --- Network File Systems │ │
│ │ <*> NFS client support │ │
│ │ [*] NFS client support for NFS version 3 │ │
│ │ [*] NFS client support for the NFSv3 ACL protocol extension│ │
│ │ [ ] NFS client support for NFS version 4 (EXPERIMENTAL) │ │
│ │ [*] Root file system on NFS
3,制作根文件系统,方法可以参考国嵌的实验手册4-3-2.4,从tftp下载内核,然后再用bootm命令启动内核,如下:- [MY2440]# tftp 0x30000000 uImage.img
-
dm9000 i/o: 0x19000300, id: 0x90000a46
-
DM9000: running in 16 bit mode
-
MAC: 08:00:3e:26:0a:5b
-
operating at unknown: 0 mode
-
Using dm9000 device
-
TFTP from server 192.168.0.16; our IP address is 192.168.0.100
-
Filename 'uImage.img'.
-
Load address: 0x30000000
-
Loading: ###########################################################
-
###########################################################
-
######
-
done
-
Bytes transferred = 1985468 (1e4bbc hex)
[MY2440]# bootm 0x30000000
4,启动成功后如下图:- Advanced Linux Sound Architecture Driver Version 1.0.20.
-
ALSA device list:
-
No soundcards found.
-
TCP cubic registered
-
NET: Registered protocol family 17
-
RPC: Registered udp transport module.
-
RPC: Registered tcp transport module.
-
s3c2410-rtc s3c2410-rtc: hctosys: invalid date/time
-
s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
-
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
-
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
-
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
-
s3c2440-sdi s3c2440-sdi: powered down.
-
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
-
IP-Config: Guessing netmask 255.255.255.0
-
IP-Config: Complete:
-
device=eth0, addr=192.168.0.100, mask=255.255.255.0, gw=255.25,
-
host=192.168.0.100, domain=, nis-domain=(none),
-
bootserver=255.255.255.255, rootserver=192.168.0.16, rootpath=
-
Looking up port of RPC 100003/3 on 192.168.0.16
-
Looking up port of RPC 100005/3 on 192.168.0.16
-
VFS: Mounted root (nfs filesystem) on device 0:12.
-
Freeing init memory: 128K
-
-
Processing /etc/profile... Done
-
-
#
NFS服务器配置说明
首先,NFS服务器能否正确配置直接关系到NFS起根文件系统是否成功。
所以,这个在我的博客里有一篇详细讲过。
可是今天再次制作NFS起根文件系统的时候,却又犯起了老错误,导致为了这个搞了一天。今天犯的错误描述如下:
问题的原因是:/etc/exports这个文件。它是NFS修改挂载目录和权限的。
比如我要将将我的home目录中的/home/zp/share目录让192.168.2.*的IP共享,
则在该文件末尾添加下列语句:
/home/zp/share
192.168.0.*(rw,sync,no_root_squash)//我的ubuntu系统这里要改为:/home/zp/share *(rw,sync,no_root_squash)
现在回想起来,如果开发板的内核支持了NFS服务,那么可以在开发板进入系统后,直接mount mount
192.168.0.1:/home/zp/share /mnt是可以成功的。
而我的开发板在服务器的/etc/exports设置成这样的时候:
- /home/zp/share 192.168.2.*(rw,sync,no_root_squash)
是不能mount成功的,会出现如下错误:- NFS mount failed, reason given by server: Permission denied
针对我的服务器,解决方法就是修改/etc/exports文件为:
/home/zp/share *(rw,sync,no_root_squash)
阅读(5387) | 评论(0) | 转发(0) |