[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