Ubuntu: 搭建tftp,nfs服务器

时间:2020-12-26 21:50:16

Ubuntu12.04搭建tftp&nfs服务器 http://blog.163.com/thinki_cao/blog/static/83944875201411610467306/

硬件环境:HP CQ45 308
操作系统:KUbuntu12.04 LTS 32bit

以下tftp与nfs配置方法经本人实测,均切实可行!

tftp服务器

1 安装相关的软件包:

sudo apt-get install tftpd-hpa tftp-hpa

2 修改配置
配置文件在 /etc/default/tftpd-hpa,内容如下:
 
# /etc/default/tftpd-hpa
 
TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/tftpboot”
TFTP_ADDRESS=”0.0.0.0:69″
TFTP_OPTIONS=”-l -c -s”
 
/tftpboot为tftp服务的目录,如果事先不存在的话我们需要创建它

sudo mkdir /tftpboot

3重新启动TFTP服务:

sudo service tftpd-hpa restart

4 测试
$ cd /tftpboot
$ echo “hello tftp service”>>a.txt
$ tftp localhost
tftp> get a.txt
如果这一步执行成功的话说明从tftp服务器下载东西已经成功!
注意:tftp-hpa有一个问题,就是每次开机使用之前都需要重启一下服务
nfs服务器
1、安装Ubuntu nfs
Ubuntu上默认是没有安装Ubuntu nfs服务器的,因此我们首先安装Ubuntu nfs服务器端:

$sudo apt-get install nfs-kernel-server

2、配置/etc/exports
Ubuntu nfs允许挂载的目录及权限在文件/etc/exports中进行了定义例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:
/rootfs *(rw,sync,no_root_squash)
 
其中:/rootfs是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限,sync是资料同步写入内存和硬盘,no_root_squash是Ubuntu nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限
 
本人的配置如下:
/rootfs *(rw,sync,no_subtree_check)
 
注意:在使用之前请将挂载的目录权限全部设置成777即执行sudo chmod 777 /rootfs。另外请把/rootfs替换成你希望挂载的目录
 
PS:rw sync等之间是不能有空格的,否则报exportfs: /etc/exports:1: syntax error: bad option list
 
3、Ubuntu nfs重启服务
$sudo service portmap restart
$sudo service nfs-kernel-server restart
如果出现如下错误:
mount: wrong fs type, bad option, bad superblock on xxxxxx,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount. helper program)
In some cases useful info is found in syslog – try
dmesg | tail or so
 
解决方法:

sudo apt-get install nfs-common

 
4、测试Ubuntu nfs
此时可以运行以下命令来显示一下共享出来的目录:

$showmount -e

或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:

$ sudo mount -t nfs localhost:/rootfs /mnt

可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:

$ sudo umount /mnt