안녕하세요.
보드에서 nfs를 이용해 서버에 있는 디렉토리를 mount 하고 싶습니다.
보드로 부팅할때 rootfs를 마운트하는데는 문제가 없습니다.
하지만 같은 커널로 flash에 있는 rootfs를 마운트 하고나서 서버의 폴더를 mount 하려 하니 안되네요.
아무런 에러 메시지도 나오지 않고 그냥 가만히 있네요.
그다음 ctrl-C를 누르면 빠져나오구요.
부팅시 mount가 되므로 서버쪽은 문제가 아닌듯 하고,
보드에서 cat /proc/filesystems를 해보니
nodev nfs
nodev nfs v4
도 나오는 것을 보니 nfs를 지원하는듯 합니다.
옵션은 부팅시 mount하는 것과 동일합니다.
-----------------------------
추가 : 혹시나 해서 strace 해 보니
/[email protected]:~# strace mount -t nfs 192.168.0.1:/home/sykim/work/rootfs ./
execve("/bin/mount", ["mount", "-t", "nfs", "192.168.0.1:/home/sykim/work/roo"..., "./nfs"], [/* 12 vars */]) = 0
svr4_syscall() = -1 ERRNO_4045 (Unknown error 4045)
uname({sys="Linux", node="192.168.0.129", ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aac6000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libblkid.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64(0x7fddc158, 0x7fddc188) = -1 ENOENT (No such file or directory)
open("/lib/libblkid.so.1", O_RDONLY) = 3
read(3, "177ELF121 3 10 1 30"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=33996, ...}) = 0
old_mmap(NULL, 96960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2aad7000
mprotect(0x2aadf000, 61440, PROT_NONE) = 0
old_mmap(0x2aaee000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x2aaee000
close(3) = 0
open("/lib/libuuid.so.1", O_RDONLY) = 3
read(3, "177ELF121 3 10 1 n"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=13636, ...}) = 0
old_mmap(NULL, 76464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2aaef000
mprotect(0x2aaf2000, 61440, PROT_NONE) = 0
old_mmap(0x2ab01000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x2ab01000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "177ELF121 3 10 1 1aT"..., 512) = 512
lseek(3, 692, SEEK_SET) = 692
read(3, " 4 20 1GNU 2 6"..., 32) = 32
fstat64(3, {st_mode=S_IFREG|0755, st_size=1324748, ...}) = 0
old_mmap(NULL, 1395664, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2ab02000
mprotect(0x2ac3b000, 65536, PROT_NONE) = 0
old_mmap(0x2ac4b000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x139000) = 0x2ac4b000
old_mmap(0x2ac54000, 11216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ac54000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aac7000
SYS_4283() = -2066562824
mprotect(0x2ac4b000, 28672, PROT_READ) = 0
mprotect(0x2aad5000, 4096, PROT_READ) = 0
brk(0) = 0x427000
brk(0x448000) = 0x448000
umask(022) = 022
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
close(3) = 0
getuid() = 0
geteuid() = 0
getgid() = 0
getegid() = 0
prctl(0x3, 0, 0, 0, 0) = 1
open("/etc/blkid.tab", O_RDONLY) = -1 ENOENT (No such file or directory)
getuid() = 0
geteuid() = 0
lstat64("/etc/mtab", {st_mode=S_IFLNK|0777, st_size=12, ...}) = 0
getcwd("/root", 4095) = 6
readlink("/root/192.168.0.1:", 0x7fddac30, 4096) = -1 ENOENT (No such file or directory)
stat64(0x7fddc9ec, 0x7fddca68) = -1 ENOENT (No such file or directory)
uname({sys="Linux", node="192.168.0.129", ...}) = 0
time(NULL) = 946685075
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
bind(3, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("192.168.0.1")}, 16 <unfinished ...>
여기서 멈추네요.
connect가 안될 이유가... 있을까요? (포트번호등등?)
클라이언트 같은데 소켓열고 bind를 하고 connect를 하네요.
bind가 필요 없는것 같기도 하고...
혹시 아시면 답변 부탁드립니다.
우선, mount -t nfs -o nolock,tcp 옵션을 주시고 마운트 해보시기 바랍니다. 보통은 portmap 데몬이 없으면, 이 방법으로 마운트가 가능합니다.