[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: "mount -o bind ..." returns invalid argument
From:       Christian =?iso-8859-1?Q?P=F6ssinger?= <poessinger () mixed-mode ! de>
Date:       2008-11-26 9:50:21
Message-ID: 58667.80.246.32.33.1227693021.squirrel () intern ! netexpress ! de
[Download RAW message or body]

On Di, 25.11.2008, 23:39, Denys Vlasenko sagte:
>
> Does util-linux mount work? If yes, try to add strace to your initramfs
> and run

No it doesn't work, too.

> strace -ologfile mount -o bind /dev/log /tmp/log
>
> for both busibox's and util-linux's mounts, and post logfiles to the list.
> There ought to be some difference which will be visible under strace.

Here is the output from busybox 1.12.2

===== strace busybox mount initramfs =====
execve("/bin/busybox", ["busybox", "mount", "-o", "bind", "/dev", "/foo"],
[/* 11 vars */]) = 0
brk(0)                                  = 0x80b4000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/var/run/ld.so.cache", O_RDONLY)  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2208, ...}) = 0
mmap2(NULL, 2208, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f3a000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0205\0"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=141152, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7f39000
mmap2(NULL, 143520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7f15000
mmap2(0xb7f37000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21) = 0xb7f37000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0fb\1\000"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1040272, ...}) = 0
mmap2(NULL, 1044872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7e15000
mmap2(0xb7f0f000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xfa) = 0xb7f0f000
mmap2(0xb7f12000, 8584, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f12000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7e14000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e146c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7f0f000, 4096, PROT_READ)   = 0
munmap(0xb7f3a000, 2208)                = 0
getpid()                                = 652
getuid32()                              = 0
brk(0)                                  = 0x80b4000
brk(0x80d5000)                          = 0x80d5000
getuid32()                              = 0
geteuid32()                             = 0
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
mount("/dev", "/foo", 0, MS_BIND|MS_VERBOSE, 0) = -1 EINVAL (Invalid
argument)
vfork()                                 = 653
--- SIGCHLD (Child exited) @ 0 (0) ---
write(2, "mount: mounting /dev on /foo fai"..., 54) = 54
exit_group(-1)                          = ?
==========================================

===== strace util-linux mount initramfs =====
execve("/bin/mount.util-linux", ["mount.util-linux", "-o", "bind", "/dev",
"/foo"], [/* 12 vars */]) = 0
brk(0)                                  = 0x8057000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/var/run/ld.so.cache", O_RDONLY)  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=6618, ...}) = 0
mmap2(NULL, 6618, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fe1000
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\210\26"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=167270, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7fe0000
mmap2(NULL, 39412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7fd6000
mmap2(0xb7fdf000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7fdf000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0fb\1\000"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1040272, ...}) = 0
mmap2(NULL, 1044872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7ed6000
mmap2(0xb7fd0000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xfa) = 0xb7fd0000
mmap2(0xb7fd3000, 8584, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fd3000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7ed5000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7ed56c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7fd0000, 4096, PROT_READ)   = 0
munmap(0xb7fe1000, 6618)                = 0
umask(022)                              = 022
open("/dev/null", O_RDWR|O_LARGEFILE)   = 3
close(3)                                = 0
brk(0)                                  = 0x8057000
brk(0x8078000)                          = 0x8078000
getuid32()                              = 0
geteuid32()                             = 0
lstat64("/etc/mtab", {st_mode=S_IFLNK|0777, st_size=12, ...}) = 0
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0
mount("/dev", "/foo", 0x80528ff, MS_MGC_VAL|MS_BIND, 0x8057140) = -1
EINVAL (Invalid argument)
rt_sigprocmask(SIG_UNBLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0
write(2, "mount: wrong fs type, bad option"..., 97) = 97
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
write(2, "       In some cases useful info"..., 86) = 86
exit_group(32)                          = ?
=============================================

===== strace busybox mount hard drive =====
execve("/bin/busybox", ["busybox", "mount", "-o", "bind", "/dev", "/foo"],
[/* 11 vars */]) = 0
brk(0)                                  = 0x80b4000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/var/run/ld.so.cache", O_RDONLY)  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=6618, ...}) = 0
mmap2(NULL, 6618, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f14000
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0205\0"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=141152, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7f13000
mmap2(NULL, 143520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7eef000
mmap2(0xb7f11000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21) = 0xb7f11000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0fb\1\000"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1040272, ...}) = 0
mmap2(NULL, 1044872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7def000
mmap2(0xb7ee9000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xfa) = 0xb7ee9000
mmap2(0xb7eec000, 8584, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7eec000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7dee000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7dee6c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7ee9000, 4096, PROT_READ)   = 0
munmap(0xb7f14000, 6618)                = 0
getpid()                                = 1203
getuid32()                              = 0
brk(0)                                  = 0x80b4000
brk(0x80d5000)                          = 0x80d5000
getuid32()                              = 0
geteuid32()                             = 0
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=2980, ...}) = 0
mount("/dev", "/foo", 0, MS_BIND|MS_VERBOSE, 0) = 0
exit_group(0)                           = ?
===========================================

===== strace util-linux mount hard drive =====
execve("/bin/mount.util-linux", ["mount.util-linux", "-o", "bind", "/dev",
"/foo"], [/* 11 vars */]) = 0
brk(0)                                  = 0x8057000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/var/run/ld.so.cache", O_RDONLY)  = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=6618, ...}) = 0
mmap2(NULL, 6618, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f5e000
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\210\26"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=167270, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7f5d000
mmap2(NULL, 39412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb7f53000
mmap2(0xb7f5c000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7f5c000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0fb\1\000"..., 512)
= 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1040272, ...}) = 0
mmap2(NULL, 1044872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xb7e53000
mmap2(0xb7f4d000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xfa) = 0xb7f4d000
mmap2(0xb7f50000, 8584, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f50000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0xb7e52000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e526c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7f4d000, 4096, PROT_READ)   = 0
munmap(0xb7f5e000, 6618)                = 0
umask(022)                              = 022
open("/dev/null", O_RDWR|O_LARGEFILE)   = 3
close(3)                                = 0
brk(0)                                  = 0x8057000
brk(0x8078000)                          = 0x8078000
getuid32()                              = 0
geteuid32()                             = 0
lstat64("/etc/mtab", {st_mode=S_IFLNK|0777, st_size=12, ...}) = 0
stat64("/dev", {st_mode=S_IFDIR|0755, st_size=2980, ...}) = 0
rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0
mount("/dev", "/foo", 0x80528ff, MS_MGC_VAL|MS_BIND, 0x8057128) = 0
readlink("/dev", 0xbfe0f75b, 4096)      = -1 EINVAL (Invalid argument)
readlink("/foo", 0xbfe0f75b, 4096)      = -1 EINVAL (Invalid argument)
rt_sigprocmask(SIG_UNBLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0
exit_group(0)                           = ?
==============================================

Best regards,
Christian


_______________________________________________
busybox mailing list
busybox@busybox.net
http://busybox.net/cgi-bin/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic