ubuntu1204 nfs搭建
2015-01-29 13:34
267 查看
I.MX6
NFS
开发环境
host:
ubuntu 12.04
host ip addr--192.168.1.100
develop board:
mars board i.mx6
ip addr--192.168.1.102
一.安装nfs
1.服务器端:sudo apt-get install portmap
2.服务器端:sudo apt-get install nfs-kernel-server
3.客户端:sudo apt-get install nfs-common
4.创建nfs服务器工作目录
$sudo mkdir /home/nfsroot
5.服务器端配置:sudo gedit /etc/exports
添加:/home/nfsroot 192.168.1.*(rw,sync,no_root_squash)
(共享目录) (允许IP)
(rw权限是可擦写,还有ro只读,sync代表数据会同步写入到内存与硬盘中,
async则代表数据会先暂存于内存当中,而非直接写入硬盘,开放客户端使
用root身份来操作服务器的文件系统,那么开no_root_squash才行,
root_squash不允许)
6.启动服务器端:sudo /etc/init.d/portmap restart
7.启动服务器端:sudo /etc/init.d/nfs-kernel-server restart
8.host挂接开发板文件系统到nfs服务器目录
解压rootfs.ext2.gz
$ gunzip rootfs.ext2.gz
挂接解压出的rootfs.ext2到nfs服务器目录
$ mount -o loop -t ext2 rootfs.ext2 /home/nfsroot
二.tftp及其相关设置
1.安装tftp
$sudo apt-get install tftp-hpa tftpd-hpa
2.创建tftp服务器目录
$sudo mkdir /home/tools/tftpboot
递归设置nfs和tftp目录为777权限
$cd /home/tools/rootfs
$sudo chmode -R 777 *
3.配置tftp服务器
$sudo gedit /etc/default/tftpd-hpa
修改如下:
TFTP_DIRECTORY="/home/tools/tftpboot"
TFTP_OPTIONS="-l -c -s"
TFTP_DIRECTORY为tftp服务器目录。
TFTP_OPTIONS为访问权限等选项。
4.重启tftp服务器
sudo service tftpd-hpa restart
5.拷贝编译好的develop board linux uImage拷贝到tftp服务器主目录
这里tftp服务器主目录为/home/tools/tftpboot
三.修改u-boot源文件且编译烧录:
当你用路由器将开发板和host相连时(甚至用交叉线直接和host相连时),必须修正u-boot中的dhcp 路由解析问题
(或直接把路由中的dhcp禁止掉,这个我没试)
diff --git a/common/cmd_net.c b/common/cmd_net.c
index 65f32bc..9b1e650 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -221,6 +221,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
case 3: load_addr = simple_strtoul(argv[1], NULL, 16);
copy_filename (BootFile, argv[2], sizeof(BootFile));
+ setenv ("bootfile", BootFile);
break;
diff --git a/net/bootp.c b/net/bootp.c
index 9e32476..df9f5eb 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -116,7 +116,8 @@ static void BootpCopyNetParams(Bootp_t *bp)
memcpy (NetServerEther, ((Ethernet_t *)NetRxPacket)->et_src, 6);
#endif
if (strlen(bp->bp_file) > 0)
- copy_filename (BootFile, bp->bp_file, sizeof(BootFile));
+ if (!getenv("bootfile"))
+ copy_filename (BootFile, bp->bp_file, sizeof(BootFile));
debug("Bootfile: %s\n", BootFile);
四.重启开发板,进入u-boot命令行
先ping host
u-boot>ping 192.168.1.100
如果不通,检查网络连接,且不要用1G的网关(或路由),也不要将开发板和主机的千兆网卡通过交叉线直接相连。
u-boot对1G网络无法支持.
五.设置环境变量
u-boot>setenv serverip 192.168.1.100
u-boot>setenv nfsroot /home/yanghua/nfsroot
六.再次检查host的tftp服务是否启动---重新启动之
$sudo service tftpd-hpa restart
七.tftp download uImage:
u-boot>dhcp 192.168.1.100:uImage
这一步可以省略,直接到运行第八步
八.以nfs为根文件系统启动内核:
u-boot>run bootcmd_net
等开发板正常启动进入linux后,可以在host的nfsroot中新建文件,可以看到开发板相应的目录也发生改变
----检查nfs
等开发板正常启动进入linux后,检查其文件系统:
$mkdir /mnt/nfs
nfs挂接到/mnt/nfs目录下:
$mount -t nfs -o nolock 192.168.1.100:/home/nfsroot /mnt/nfs
mount -t nfs -o nolock 192.168.1.100:/home/tools/rootfs /mnt/nfs
注意要有-o nolock 选项,否则失败
进入nfs目录,可以看到主机上的文件(注意,必须重新进入该目录)
NFS
开发环境
host:
ubuntu 12.04
host ip addr--192.168.1.100
develop board:
mars board i.mx6
ip addr--192.168.1.102
一.安装nfs
1.服务器端:sudo apt-get install portmap
2.服务器端:sudo apt-get install nfs-kernel-server
3.客户端:sudo apt-get install nfs-common
4.创建nfs服务器工作目录
$sudo mkdir /home/nfsroot
5.服务器端配置:sudo gedit /etc/exports
添加:/home/nfsroot 192.168.1.*(rw,sync,no_root_squash)
(共享目录) (允许IP)
(rw权限是可擦写,还有ro只读,sync代表数据会同步写入到内存与硬盘中,
async则代表数据会先暂存于内存当中,而非直接写入硬盘,开放客户端使
用root身份来操作服务器的文件系统,那么开no_root_squash才行,
root_squash不允许)
6.启动服务器端:sudo /etc/init.d/portmap restart
7.启动服务器端:sudo /etc/init.d/nfs-kernel-server restart
8.host挂接开发板文件系统到nfs服务器目录
解压rootfs.ext2.gz
$ gunzip rootfs.ext2.gz
挂接解压出的rootfs.ext2到nfs服务器目录
$ mount -o loop -t ext2 rootfs.ext2 /home/nfsroot
二.tftp及其相关设置
1.安装tftp
$sudo apt-get install tftp-hpa tftpd-hpa
2.创建tftp服务器目录
$sudo mkdir /home/tools/tftpboot
递归设置nfs和tftp目录为777权限
$cd /home/tools/rootfs
$sudo chmode -R 777 *
3.配置tftp服务器
$sudo gedit /etc/default/tftpd-hpa
修改如下:
TFTP_DIRECTORY="/home/tools/tftpboot"
TFTP_OPTIONS="-l -c -s"
TFTP_DIRECTORY为tftp服务器目录。
TFTP_OPTIONS为访问权限等选项。
4.重启tftp服务器
sudo service tftpd-hpa restart
5.拷贝编译好的develop board linux uImage拷贝到tftp服务器主目录
这里tftp服务器主目录为/home/tools/tftpboot
三.修改u-boot源文件且编译烧录:
当你用路由器将开发板和host相连时(甚至用交叉线直接和host相连时),必须修正u-boot中的dhcp 路由解析问题
(或直接把路由中的dhcp禁止掉,这个我没试)
diff --git a/common/cmd_net.c b/common/cmd_net.c
index 65f32bc..9b1e650 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -221,6 +221,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
case 3: load_addr = simple_strtoul(argv[1], NULL, 16);
copy_filename (BootFile, argv[2], sizeof(BootFile));
+ setenv ("bootfile", BootFile);
break;
diff --git a/net/bootp.c b/net/bootp.c
index 9e32476..df9f5eb 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -116,7 +116,8 @@ static void BootpCopyNetParams(Bootp_t *bp)
memcpy (NetServerEther, ((Ethernet_t *)NetRxPacket)->et_src, 6);
#endif
if (strlen(bp->bp_file) > 0)
- copy_filename (BootFile, bp->bp_file, sizeof(BootFile));
+ if (!getenv("bootfile"))
+ copy_filename (BootFile, bp->bp_file, sizeof(BootFile));
debug("Bootfile: %s\n", BootFile);
四.重启开发板,进入u-boot命令行
先ping host
u-boot>ping 192.168.1.100
如果不通,检查网络连接,且不要用1G的网关(或路由),也不要将开发板和主机的千兆网卡通过交叉线直接相连。
u-boot对1G网络无法支持.
五.设置环境变量
u-boot>setenv serverip 192.168.1.100
u-boot>setenv nfsroot /home/yanghua/nfsroot
六.再次检查host的tftp服务是否启动---重新启动之
$sudo service tftpd-hpa restart
七.tftp download uImage:
u-boot>dhcp 192.168.1.100:uImage
这一步可以省略,直接到运行第八步
八.以nfs为根文件系统启动内核:
u-boot>run bootcmd_net
等开发板正常启动进入linux后,可以在host的nfsroot中新建文件,可以看到开发板相应的目录也发生改变
----检查nfs
等开发板正常启动进入linux后,检查其文件系统:
$mkdir /mnt/nfs
nfs挂接到/mnt/nfs目录下:
$mount -t nfs -o nolock 192.168.1.100:/home/nfsroot /mnt/nfs
mount -t nfs -o nolock 192.168.1.100:/home/tools/rootfs /mnt/nfs
注意要有-o nolock 选项,否则失败
进入nfs目录,可以看到主机上的文件(注意,必须重新进入该目录)
相关文章推荐
- ubuntu1204 nfs搭建
- imx6 ubuntu1204 nfs环境搭建
- ubuntu 9.04 nfs搭建
- ubuntu 9.10搭建NFS
- ubuntu搭建nfs服务器
- ubuntu NFS环境的搭建
- ubuntu 下 搭建 tftp nfs 服务器
- ubuntu8.10 mini2440 nfs 搭建
- ubuntu 11.04 搭建 NFS
- 5.Ubuntu下交叉环境搭建(NFS设置)
- redhat,ubuntu,Fedora搭建NFS
- ubuntu下NFS环境的搭建
- 搭建nfs(ubuntu)
- 在ubuntu10.04下搭建tftp服务器和nfs服务器
- ubuntu8.10 mini2440 nfs 搭建 - mini(2440 GUI) (转载)
- ubuntu搭建nfs服务器
- ubuntu server 10.04 搭建NFS
- ubuntu 10.04下的tftp/nfs服务器搭建
- 工作2:搭建集群之Ubuntu Server下安装NFS
- ubuntu10.04 nfs搭建