As discussed with Ben, this is blatantly a kernel bug. Strace output attached. The mount() syscall never returns. Debugging further now.
-- Steve McIntyre, Cambridge, UK. st...@einval.com "Every time you use Tcl, God kills a kitten." -- Malcolm Ray
2322 execve("/bin/mount", ["mount", "/dev/sda2", "/mnt"], [/* 13 vars */]) = 0 2322 brk(0) = 0xba6000 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2691368000 2322 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) 2322 open("/etc/ld.so.cache", O_RDONLY) = 3 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=12586, ...}) = 0 2322 mmap(NULL, 12586, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2691364000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libblkid.so.1", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0Pn\0\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=159856, ...}) = 0 2322 mmap(NULL, 2255016, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2690f24000 2322 mprotect(0x7f2690f47000, 2097152, PROT_NONE) = 0 2322 mmap(0x7f2691147000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x7f2691147000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libselinux.so.1", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260f\0\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=126232, ...}) = 0 2322 mmap(NULL, 2226160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2690d04000 2322 mprotect(0x7f2690d22000, 2093056, PROT_NONE) = 0 2322 mmap(0x7f2690f21000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d000) = 0x7f2690f21000 2322 mmap(0x7f2690f23000, 2032, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2690f23000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libsepol.so.1", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320F\0\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=261184, ...}) = 0 2322 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2691363000 2322 mmap(NULL, 2358112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2690ac4000 2322 mprotect(0x7f2690b03000, 2093056, PROT_NONE) = 0 2322 mmap(0x7f2690d02000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3e000) = 0x7f2690d02000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libmount.so.1", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300x\0\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=163840, ...}) = 0 2322 mmap(NULL, 2258960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f269089c000 2322 mprotect(0x7f26908c2000, 2097152, PROT_NONE) = 0 2322 mmap(0x7f2690ac2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f2690ac2000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\357\1\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0755, st_size=1583120, ...}) = 0 2322 mmap(NULL, 3696728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2690515000 2322 mprotect(0x7f2690692000, 2097152, PROT_NONE) = 0 2322 mmap(0x7f2690892000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17d000) = 0x7f2690892000 2322 mmap(0x7f2690897000, 18520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2690897000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libuuid.so.1", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\31\0\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=18896, ...}) = 0 2322 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2691362000 2322 mmap(NULL, 2113968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2690310000 2322 mprotect(0x7f2690314000, 2093056, PROT_NONE) = 0 2322 mmap(0x7f2690513000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f2690513000 2322 close(3) = 0 2322 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) 2322 open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY) = 3 2322 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\0\0\0\0\0\0"..., 832) = 832 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=14768, ...}) = 0 2322 mmap(NULL, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f269010c000 2322 mprotect(0x7f269010e000, 2097152, PROT_NONE) = 0 2322 mmap(0x7f269030e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f269030e000 2322 close(3) = 0 2322 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2691361000 2322 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f269135f000 2322 arch_prctl(ARCH_SET_FS, 0x7f269135f7e0) = 0 2322 mprotect(0x7f269030e000, 4096, PROT_READ) = 0 2322 mprotect(0x7f2690513000, 4096, PROT_READ) = 0 2322 mprotect(0x7f2690892000, 16384, PROT_READ) = 0 2322 mprotect(0x7f2690ac2000, 4096, PROT_READ) = 0 2322 mprotect(0x7f2690d02000, 4096, PROT_READ) = 0 2322 mprotect(0x7f2690f21000, 4096, PROT_READ) = 0 2322 mprotect(0x7f2691147000, 12288, PROT_READ) = 0 2322 mprotect(0x615000, 4096, PROT_READ) = 0 2322 mprotect(0x7f269136a000, 4096, PROT_READ) = 0 2322 munmap(0x7f2691364000, 12586) = 0 2322 statfs("/sys/fs/selinux", 0x7fffbeb119f0) = -1 ENOENT (No such file or directory) 2322 statfs("/selinux", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=1991879, f_bfree=1763843, f_bavail=1663927, f_files=499712, f_ffree=470800, f_fsid={-1680675606, 1402910486}, f_namelen=255, f_frsize=4096}) = 0 2322 brk(0) = 0xba6000 2322 brk(0xbc7000) = 0xbc7000 2322 open("/proc/filesystems", O_RDONLY) = 3 2322 fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 2322 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2691367000 2322 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 310 2322 read(3, "", 1024) = 0 2322 close(3) = 0 2322 munmap(0x7f2691367000, 4096) = 0 2322 open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 2322 fstat(3, {st_mode=S_IFREG|0644, st_size=1534656, ...}) = 0 2322 mmap(NULL, 1534656, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f26911e8000 2322 close(3) = 0 2322 umask(022) = 022 2322 open("/dev/null", O_RDWR) = 3 2322 close(3) = 0 2322 getuid() = 0 2322 geteuid() = 0 2322 stat("/dev/sda2", {st_mode=S_IFBLK|S_ISVTX|0660, st_rdev=makedev(8, 2), ...}) = 0 2322 readlink("/dev", 0x7fffbeb0f890, 4096) = -1 EINVAL (Invalid argument) 2322 readlink("/dev/sda2", 0x7fffbeb0f890, 4096) = -1 EINVAL (Invalid argument) 2322 stat("/dev/sda2", {st_mode=S_IFBLK|S_ISVTX|0660, st_rdev=makedev(8, 2), ...}) = 0 2322 rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0 2322 open("/dev/sda2", O_RDONLY) = 3 2322 fadvise64(3, 0, 0, POSIX_FADV_RANDOM) = 0 2322 fstat(3, {st_mode=S_IFBLK|S_ISVTX|0660, st_rdev=makedev(8, 2), ...}) = 0 2322 uname({sys="Linux", node="debian", ...}) = 0 2322 ioctl(3, BLKGETSIZE64, 0xba7250) = 0 2322 ioctl(3, CDROM_GET_CAPABILITY, 0) = -1 ENOTTY (Inappropriate ioctl for device) 2322 close(3) = 0 2322 open("/etc/filesystems", O_RDONLY) = -1 ENOENT (No such file or directory) 2322 open("/proc/filesystems", O_RDONLY) = 3 2322 fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 2322 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2691367000 2322 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 310 2322 stat("/sbin/mount.ext4", 0x7fffbeb11540) = -1 ENOENT (No such file or directory) 2322 stat("/sbin/fs.d/mount.ext4", 0x7fffbeb11540) = -1 ENOENT (No such file or directory) 2322 stat("/sbin/fs/mount.ext4", 0x7fffbeb11540) = -1 ENOENT (No such file or directory) 2322 readlink("/dev", 0x7fffbeb0f610, 4096) = -1 EINVAL (Invalid argument) 2322 readlink("/dev/sda2", 0x7fffbeb0f610, 4096) = -1 EINVAL (Invalid argument) 2322 readlink("/mnt", 0x7fffbeb0f610, 4096) = -1 EINVAL (Invalid argument) 2322 getuid() = 0 2322 geteuid() = 0 2322 getgid() = 0 2322 getegid() = 0 2322 prctl(PR_GET_DUMPABLE) = 1 2322 lstat("/etc/mtab", {st_mode=S_IFLNK|0777, st_size=12, ...}) = 0 2322 getuid() = 0 2322 geteuid() = 0 2322 getgid() = 0 2322 getegid() = 0 2322 prctl(PR_GET_DUMPABLE) = 1 2322 stat("/run", {st_mode=S_IFDIR|0755, st_size=600, ...}) = 0 2322 lstat("/run/mount/utab", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 2322 open("/run/mount/utab", O_RDWR|O_CREAT, 0644) = 4 2322 close(4) = 0 2322 mount("/dev/sda2", "/mnt", "ext4", MS_MGC_VAL, NULL