* Mounting block device fails.
[not found] <fe291c8c0910080003m470520adsd4a7e37bf676458b@mail.gmail.com>
@ 2009-10-08 7:10 ` Prasad Joshi
[not found] ` <fe291c8c0910080008g22da5bb0n3f106d644da0fbe8@mail.gmail.com>
1 sibling, 0 replies; 6+ messages in thread
From: Prasad Joshi @ 2009-10-08 7:10 UTC (permalink / raw)
To: linux-newbie
Hi,
I am working on translation layer for flash. For the purpose testing I
am using a disk file to simulate the flash behavior. So every read and
write on the block device finally goes to a disk file, something
similar to loop device, but in addition maintaining the flash
property.
I am able to create the file system on the device (/dev/ftl) but when
I try to mount the device it fails with error "Invalid Argument".
I thought it is failing to read the super block of the file systems,
but it seems like it did not fail in superblock read
# strace -o out mount -t ext2 /dev/ftl /mntpt/
[ 175.192033] Opening the device.
[ 175.193599] IftlIoRead: offset=0x400 Length=0x400
[ 175.193875] OffsetWithinPage: 400
[ 175.195104] Read pos=1002535424, length=8192
[ 175.195474] 0000 0001 0000 0004 3333 0000 eea5 0003 fff5 0000 0000
0000 0002 0000 0002 0000 8000 0000 8000 0000 2000 0000 0000 0000 8a9e
4acd 0000 0020 ef53 0001 0001 0000 8a9e 4acd 4e00 00ed 0000 0000 0001
0000 0000 0000 000b 0000 0100 0000 0038 0000 0002 0000 0003 0000 a037
8e0c d6b3 de11 abb8 0635 bff9 2b36 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 003f 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 a037 8f0c d6b3 de11 abb8
0635 bff9 2b36 0001 0000 0000 0000 0000 0000 8a9e 4acd 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 001c 0001 0000 0000
0000 0000 0000 0000 0000 0000 0000 [ 175.215929] Closing the device.
mount: mounting /dev/ftl on /mntpt/ failed: Invalid argument
I tried printing the data in hex format just to make sure proper ext2
magic code in present in the superblock read from the flash device.
"ef53" is the magic code of ext2 superblock, ftl device is correctly
reading the magic code
# cat out
execve("/bin/mount", ["mount", "-t", "ext2", "/dev/ftl", "/mntpt/"],
[/* 4 vars */]) = 0
uname({sys="Linux", node="(none)", ...}) = 0
brk(0) = 0x72f000
brk(0x72ff40) = 0x72ff40
arch_prctl(ARCH_SET_FS, 0x72f880) = 0
open("/dev/urandom", O_RDONLY) = -1 ENOENT (No such file or directory)
brk(0x750f40) = 0x750f40
brk(0x751000) = 0x751000
getuid() = 0
getuid() = 0
geteuid() = 0
stat("/dev/ftl", {st_mode=S_IFBLK|0644, st_rdev=makedev(254, 0), ...}) = 0
mount("/dev/ftl", "/mntpt/", "ext2", MS_SILENT, "") = -1 EINVAL
(Invalid argument)
vfork() = 869
--- SIGCHLD (Child exited) @ 0 (0) ---
write(2, "mount: mounting /dev/ftl on /mntp"..., 61) = 61
exit_group(-1) = ?
What could be the reason of failure of mount?
Thanks and Regards,
Prasad
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Mounting block device fails.
[not found] ` <fe291c8c0910080008g22da5bb0n3f106d644da0fbe8@mail.gmail.com>
@ 2009-10-08 13:11 ` Manish Katiyar
2009-10-09 5:46 ` Prasad Joshi
0 siblings, 1 reply; 6+ messages in thread
From: Manish Katiyar @ 2009-10-08 13:11 UTC (permalink / raw)
To: Prasad Joshi; +Cc: linux-newbie, Kernelnewbies
On Thu, Oct 8, 2009 at 12:38 PM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
> Hi,
>
> I am working on translation layer for flash. For the purpose testing I am
> using a disk file to simulate the flash behavior. So every read and write on
> the block device finally goes to a disk file, something similar to loop
> device, but in addition maintaining the flash property.
>
> I am able to create the file system on the device (/dev/ftl) but when I try
> to mount the device it fails with error "Invalid Argument".
From the code I can see -EINVAL can be returned at lot of places. You
need to see dmesg to see the message which can help tracing.
>
> I thought it is failing to read the super block of the file systems, but it
> seems like it did not fail in superblock read
>
> # strace -o out mount -t ext2 /dev/ftl /mntpt/
> [ 175.192033] Opening the device.
> [ 175.193599] IftlIoRead: offset=0x400 Length=0x400
> [ 175.193875] OffsetWithinPage: 400
> [ 175.195104] Read pos=1002535424, length=8192
> [ 175.195474] 0000 0001 0000 0004 3333 0000 eea5 0003 fff5 0000 0000 0000
> 0002 0000 0002 0000 8000 0000 8000 0000 2000 0000 0000 0000 8a9e 4acd 0000
> 0020 ef53 0001 0001 0000 8a9e 4acd 4e00 00ed 0000 0000 0001 0000 0000 0000
> 000b 0000 0100 0000 0038 0000 0002 0000 0003 0000 a037 8e0c d6b3 de11 abb8
> 0635 bff9 2b36 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
> 0000 003f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
> 0000 a037 8f0c d6b3 de11 abb8 0635 bff9 2b36 0001 0000 0000 0000 0000 0000
> 8a9e 4acd 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 001c 0001
> 0000 0000 0000 0000 0000 0000 0000 0000 0000 [ 175.215929] Closing the
> device.
> mount: mounting /dev/ftl on /mntpt/ failed: Invalid argument
>
> I tried printing the data in hex format just to make sure proper ext2 magic
> code in present in the superblock read from the flash device. "ef53" is the
> magic code of ext2 superblock, ftl device is correctly reading the magic
> code
>
> # cat out
> execve("/bin/mount", ["mount", "-t", "ext2", "/dev/ftl", "/mntpt/"], [/* 4
> vars */]) = 0
> uname({sys="Linux", node="(none)", ...}) = 0
> brk(0) = 0x72f000
> brk(0x72ff40) = 0x72ff40
> arch_prctl(ARCH_SET_FS, 0x72f880) = 0
> open("/dev/urandom", O_RDONLY) = -1 ENOENT (No such file or
> directory)
> brk(0x750f40) = 0x750f40
> brk(0x751000) = 0x751000
> getuid() = 0
> getuid() = 0
> geteuid() = 0
> stat("/dev/ftl", {st_mode=S_IFBLK|0644, st_rdev=makedev(254, 0), ...}) = 0
> mount("/dev/ftl", "/mntpt/", "ext2", MS_SILENT, "") = -1 EINVAL (Invalid
> argument)
> vfork() = 869
> --- SIGCHLD (Child exited) @ 0 (0) ---
> write(2, "mount: mounting /dev/ftl on /mntp"..., 61) = 61
> exit_group(-1) = ?
>
> What could be the reason of failure of mount?
>
> Thanks and Regards,
> Prasad
>
>
--
Thanks -
Manish
==================================
[$\*.^ -- I miss being one of them
==================================
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Mounting block device fails.
2009-10-08 13:11 ` Manish Katiyar
@ 2009-10-09 5:46 ` Prasad Joshi
2009-10-09 5:58 ` Manish Katiyar
0 siblings, 1 reply; 6+ messages in thread
From: Prasad Joshi @ 2009-10-09 5:46 UTC (permalink / raw)
To: Manish Katiyar; +Cc: linux-newbie, Kernelnewbies
Thanks Manish,
The issue was with filesystem creation. It was not getting created
properly. I used dumpe2fs command to verify the file system. Actually
Superblock was written correctly but, few other fields like free block
and free inode list etc were incorrect
It seems to be working properly now
# dumpe2fs /dev/ftl
...
...
Group 0: (Blocks 0-65527)
Primary superblock at 0, Group descriptors at 1-1
Reserved GDT blocks at 2-8
Block bitmap at 9 (+9), Inode bitmap at 10 (+10)
Inode table at 11-1034 (+11)
64489 free blocks, 32757 free inodes, 2 directories
Free blocks: 1039-65527
Free inodes: 12-32768
Group 1: (Blocks 65528-131055)
Backup superblock at 65528, Group descriptors at 65529-65529
Reserved GDT blocks at 65530-65536
Block bitmap at 65537 (+9), Inode bitmap at 65538 (+10)
Inode table at 65539-66562 (+11)
64493 free blocks, 32768 free inodes, 0 directories
Free blocks: 66563-131055
Free inodes: 32769-65536
# mount
...
...
/dev/ftl on /mntpt type ext2 (rw,relatime,errors=continue)
The other problem which I am facing is with the blocksize.
mkfs allows ext2 file system be created with blocksize=8192,
overriding the default 4096. But, when I try to mount the file system
it fails
# mkfs -t ext2 -b 8192 /dev/ftl
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.41.4 (27-Jan-2009)
mkfs.ext2: 8192-byte blocks too big for system (max 4096)
Proceed anyway? (y,n) y
Warning: 8192-byte blocks too big for system (max 4096), forced to continue
warning: 16 blocks unused.
Filesystem label=
OS type: Linux
Block size=8192 (log=3)
Fragment size=8192 (log=3)
65536 inodes, 131056 blocks
....
....
# mount -t ext2 /dev/ftl /mntpt
[54658.092031] EXT2-fs: blocksize too small for device.
mount: mounting /dev/ftl on /mntpt failed: Invalid argument
I tried specifying blocksize with the mount command, but it also fails
# mount -t ext2 /dev/ftl /mntpt -o blocksize=8192
mount: mounting /dev/ftl on /mntpt failed: Invalid argument
The above command fails in parsing the options passed to the command
The section "Mount options for ext2" of mount manpage does not mention
blocksize option.
Is there anyway I can create ext2 filesystem with blocksize 8192?
Thanks and Regards,
Prasad
On Thu, Oct 8, 2009 at 6:41 PM, Manish Katiyar <mkatiyar@gmail.com> wrote:
> On Thu, Oct 8, 2009 at 12:38 PM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
>> Hi,
>>
>> I am working on translation layer for flash. For the purpose testing I am
>> using a disk file to simulate the flash behavior. So every read and write on
>> the block device finally goes to a disk file, something similar to loop
>> device, but in addition maintaining the flash property.
>>
>> I am able to create the file system on the device (/dev/ftl) but when I try
>> to mount the device it fails with error "Invalid Argument".
>
> From the code I can see -EINVAL can be returned at lot of places. You
> need to see dmesg to see the message which can help tracing.
>
>>
>> I thought it is failing to read the super block of the file systems, but it
>> seems like it did not fail in superblock read
>>
>> # strace -o out mount -t ext2 /dev/ftl /mntpt/
>> [ 175.192033] Opening the device.
>> [ 175.193599] IftlIoRead: offset=0x400 Length=0x400
>> [ 175.193875] OffsetWithinPage: 400
>> [ 175.195104] Read pos=1002535424, length=8192
>> [ 175.195474] 0000 0001 0000 0004 3333 0000 eea5 0003 fff5 0000 0000 0000
>> 0002 0000 0002 0000 8000 0000 8000 0000 2000 0000 0000 0000 8a9e 4acd 0000
>> 0020 ef53 0001 0001 0000 8a9e 4acd 4e00 00ed 0000 0000 0001 0000 0000 0000
>> 000b 0000 0100 0000 0038 0000 0002 0000 0003 0000 a037 8e0c d6b3 de11 abb8
>> 0635 bff9 2b36 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>> 0000 003f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>> 0000 a037 8f0c d6b3 de11 abb8 0635 bff9 2b36 0001 0000 0000 0000 0000 0000
>> 8a9e 4acd 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 001c 0001
>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 [ 175.215929] Closing the
>> device.
>> mount: mounting /dev/ftl on /mntpt/ failed: Invalid argument
>>
>> I tried printing the data in hex format just to make sure proper ext2 magic
>> code in present in the superblock read from the flash device. "ef53" is the
>> magic code of ext2 superblock, ftl device is correctly reading the magic
>> code
>>
>> # cat out
>> execve("/bin/mount", ["mount", "-t", "ext2", "/dev/ftl", "/mntpt/"], [/* 4
>> vars */]) = 0
>> uname({sys="Linux", node="(none)", ...}) = 0
>> brk(0) = 0x72f000
>> brk(0x72ff40) = 0x72ff40
>> arch_prctl(ARCH_SET_FS, 0x72f880) = 0
>> open("/dev/urandom", O_RDONLY) = -1 ENOENT (No such file or
>> directory)
>> brk(0x750f40) = 0x750f40
>> brk(0x751000) = 0x751000
>> getuid() = 0
>> getuid() = 0
>> geteuid() = 0
>> stat("/dev/ftl", {st_mode=S_IFBLK|0644, st_rdev=makedev(254, 0), ...}) = 0
>> mount("/dev/ftl", "/mntpt/", "ext2", MS_SILENT, "") = -1 EINVAL (Invalid
>> argument)
>> vfork() = 869
>> --- SIGCHLD (Child exited) @ 0 (0) ---
>> write(2, "mount: mounting /dev/ftl on /mntp"..., 61) = 61
>> exit_group(-1) = ?
>>
>> What could be the reason of failure of mount?
>>
>> Thanks and Regards,
>> Prasad
>>
>>
>
>
>
> --
> Thanks -
> Manish
> ==================================
> [$\*.^ -- I miss being one of them
> ==================================
>
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Mounting block device fails.
2009-10-09 5:46 ` Prasad Joshi
@ 2009-10-09 5:58 ` Manish Katiyar
2009-10-09 6:04 ` Manish Katiyar
0 siblings, 1 reply; 6+ messages in thread
From: Manish Katiyar @ 2009-10-09 5:58 UTC (permalink / raw)
To: Prasad Joshi; +Cc: linux-newbie, Kernelnewbies
On Fri, Oct 9, 2009 at 11:16 AM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
> Thanks Manish,
>
> The issue was with filesystem creation. It was not getting created
> properly. I used dumpe2fs command to verify the file system. Actually
> Superblock was written correctly but, few other fields like free block
> and free inode list etc were incorrect
>
> It seems to be working properly now
> # dumpe2fs /dev/ftl
> ...
> ...
> Group 0: (Blocks 0-65527)
> Primary superblock at 0, Group descriptors at 1-1
> Reserved GDT blocks at 2-8
> Block bitmap at 9 (+9), Inode bitmap at 10 (+10)
> Inode table at 11-1034 (+11)
> 64489 free blocks, 32757 free inodes, 2 directories
> Free blocks: 1039-65527
> Free inodes: 12-32768
> Group 1: (Blocks 65528-131055)
> Backup superblock at 65528, Group descriptors at 65529-65529
> Reserved GDT blocks at 65530-65536
> Block bitmap at 65537 (+9), Inode bitmap at 65538 (+10)
> Inode table at 65539-66562 (+11)
> 64493 free blocks, 32768 free inodes, 0 directories
> Free blocks: 66563-131055
> Free inodes: 32769-65536
>
> # mount
> ...
> ...
> /dev/ftl on /mntpt type ext2 (rw,relatime,errors=continue)
>
>
> The other problem which I am facing is with the blocksize.
>
> mkfs allows ext2 file system be created with blocksize=8192,
> overriding the default 4096. But, when I try to mount the file system
> it fails
>
> # mkfs -t ext2 -b 8192 /dev/ftl
> Warning: blocksize 8192 not usable on most systems.
> mke2fs 1.41.4 (27-Jan-2009)
> mkfs.ext2: 8192-byte blocks too big for system (max 4096)
> Proceed anyway? (y,n) y
> Warning: 8192-byte blocks too big for system (max 4096), forced to continue
> warning: 16 blocks unused.
>
> Filesystem label=
> OS type: Linux
> Block size=8192 (log=3)
> Fragment size=8192 (log=3)
> 65536 inodes, 131056 blocks
> ....
> ....
>
> # mount -t ext2 /dev/ftl /mntpt
> [54658.092031] EXT2-fs: blocksize too small for device.
> mount: mounting /dev/ftl on /mntpt failed: Invalid argument
>
> I tried specifying blocksize with the mount command, but it also fails
>
> # mount -t ext2 /dev/ftl /mntpt -o blocksize=8192
> mount: mounting /dev/ftl on /mntpt failed: Invalid argument
>
> The above command fails in parsing the options passed to the command
>
> The section "Mount options for ext2" of mount manpage does not mention
> blocksize option.
Yes, there is no "blocksize" option in ext2. For a list of valid
options see "tokens" table in ext2/super.c
>
> Is there anyway I can create ext2 filesystem with blocksize 8192?
No ... as far as I know.
Man page of mke2fs says :
-b block-size
Specify the size of blocks in bytes. Valid block-size
values are 1024, 2048 and 4096 bytes per block.
And the kernel code says :
int sb_set_blocksize(struct super_block *sb, int size)
{
if (set_blocksize(sb->s_bdev, size))
return 0;
/* If we get here, we know size is power of two
* and it's value is between 512 and PAGE_SIZE */
sb->s_blocksize = size;
sb->s_blocksize_bits = blksize_bits(size);
return sb->s_blocksize;
}
and the PAGE_SIZE is 4096.
Reiserfs supports blocksizes of 8192 , but its man page says :-
-b | --block-size N
N is block size in bytes. It may only be set to a power
of 2 within the 512-8192 interval. Note
that current versions of the kernel ( 2.6.19 ) do NOT
support any size other than 4096.
But is there any specific reason you want to use block sizes of 8192 ?
>
> Thanks and Regards,
> Prasad
>
> On Thu, Oct 8, 2009 at 6:41 PM, Manish Katiyar <mkatiyar@gmail.com> wrote:
>> On Thu, Oct 8, 2009 at 12:38 PM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
>>> Hi,
>>>
>>> I am working on translation layer for flash. For the purpose testing I am
>>> using a disk file to simulate the flash behavior. So every read and write on
>>> the block device finally goes to a disk file, something similar to loop
>>> device, but in addition maintaining the flash property.
>>>
>>> I am able to create the file system on the device (/dev/ftl) but when I try
>>> to mount the device it fails with error "Invalid Argument".
>>
>> From the code I can see -EINVAL can be returned at lot of places. You
>> need to see dmesg to see the message which can help tracing.
>>
>>>
>>> I thought it is failing to read the super block of the file systems, but it
>>> seems like it did not fail in superblock read
>>>
>>> # strace -o out mount -t ext2 /dev/ftl /mntpt/
>>> [ 175.192033] Opening the device.
>>> [ 175.193599] IftlIoRead: offset=0x400 Length=0x400
>>> [ 175.193875] OffsetWithinPage: 400
>>> [ 175.195104] Read pos=1002535424, length=8192
>>> [ 175.195474] 0000 0001 0000 0004 3333 0000 eea5 0003 fff5 0000 0000 0000
>>> 0002 0000 0002 0000 8000 0000 8000 0000 2000 0000 0000 0000 8a9e 4acd 0000
>>> 0020 ef53 0001 0001 0000 8a9e 4acd 4e00 00ed 0000 0000 0001 0000 0000 0000
>>> 000b 0000 0100 0000 0038 0000 0002 0000 0003 0000 a037 8e0c d6b3 de11 abb8
>>> 0635 bff9 2b36 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>> 0000 003f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>> 0000 a037 8f0c d6b3 de11 abb8 0635 bff9 2b36 0001 0000 0000 0000 0000 0000
>>> 8a9e 4acd 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 001c 0001
>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 [ 175.215929] Closing the
>>> device.
>>> mount: mounting /dev/ftl on /mntpt/ failed: Invalid argument
>>>
>>> I tried printing the data in hex format just to make sure proper ext2 magic
>>> code in present in the superblock read from the flash device. "ef53" is the
>>> magic code of ext2 superblock, ftl device is correctly reading the magic
>>> code
>>>
>>> # cat out
>>> execve("/bin/mount", ["mount", "-t", "ext2", "/dev/ftl", "/mntpt/"], [/* 4
>>> vars */]) = 0
>>> uname({sys="Linux", node="(none)", ...}) = 0
>>> brk(0) = 0x72f000
>>> brk(0x72ff40) = 0x72ff40
>>> arch_prctl(ARCH_SET_FS, 0x72f880) = 0
>>> open("/dev/urandom", O_RDONLY) = -1 ENOENT (No such file or
>>> directory)
>>> brk(0x750f40) = 0x750f40
>>> brk(0x751000) = 0x751000
>>> getuid() = 0
>>> getuid() = 0
>>> geteuid() = 0
>>> stat("/dev/ftl", {st_mode=S_IFBLK|0644, st_rdev=makedev(254, 0), ...}) = 0
>>> mount("/dev/ftl", "/mntpt/", "ext2", MS_SILENT, "") = -1 EINVAL (Invalid
>>> argument)
>>> vfork() = 869
>>> --- SIGCHLD (Child exited) @ 0 (0) ---
>>> write(2, "mount: mounting /dev/ftl on /mntp"..., 61) = 61
>>> exit_group(-1) = ?
>>>
>>> What could be the reason of failure of mount?
>>>
>>> Thanks and Regards,
>>> Prasad
>>>
>>>
>>
>>
>>
>> --
>> Thanks -
>> Manish
>> ==================================
>> [$\*.^ -- I miss being one of them
>> ==================================
>>
>
--
Thanks -
Manish
==================================
[$\*.^ -- I miss being one of them
==================================
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Mounting block device fails.
2009-10-09 5:58 ` Manish Katiyar
@ 2009-10-09 6:04 ` Manish Katiyar
2009-10-09 7:10 ` Prasad Joshi
0 siblings, 1 reply; 6+ messages in thread
From: Manish Katiyar @ 2009-10-09 6:04 UTC (permalink / raw)
To: Prasad Joshi; +Cc: linux-newbie, Kernelnewbies
On Fri, Oct 9, 2009 at 11:28 AM, Manish Katiyar <mkatiyar@gmail.com> wrote:
> On Fri, Oct 9, 2009 at 11:16 AM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
>> Thanks Manish,
>>
>> The issue was with filesystem creation. It was not getting created
>> properly. I used dumpe2fs command to verify the file system. Actually
>> Superblock was written correctly but, few other fields like free block
>> and free inode list etc were incorrect
>>
>> It seems to be working properly now
>> # dumpe2fs /dev/ftl
>> ...
>> ...
>> Group 0: (Blocks 0-65527)
>> Primary superblock at 0, Group descriptors at 1-1
>> Reserved GDT blocks at 2-8
>> Block bitmap at 9 (+9), Inode bitmap at 10 (+10)
>> Inode table at 11-1034 (+11)
>> 64489 free blocks, 32757 free inodes, 2 directories
>> Free blocks: 1039-65527
>> Free inodes: 12-32768
>> Group 1: (Blocks 65528-131055)
>> Backup superblock at 65528, Group descriptors at 65529-65529
>> Reserved GDT blocks at 65530-65536
>> Block bitmap at 65537 (+9), Inode bitmap at 65538 (+10)
>> Inode table at 65539-66562 (+11)
>> 64493 free blocks, 32768 free inodes, 0 directories
>> Free blocks: 66563-131055
>> Free inodes: 32769-65536
>>
>> # mount
>> ...
>> ...
>> /dev/ftl on /mntpt type ext2 (rw,relatime,errors=continue)
>>
>>
>> The other problem which I am facing is with the blocksize.
>>
>> mkfs allows ext2 file system be created with blocksize=8192,
>> overriding the default 4096. But, when I try to mount the file system
>> it fails
>>
>> # mkfs -t ext2 -b 8192 /dev/ftl
>> Warning: blocksize 8192 not usable on most systems.
>> mke2fs 1.41.4 (27-Jan-2009)
>> mkfs.ext2: 8192-byte blocks too big for system (max 4096)
>> Proceed anyway? (y,n) y
>> Warning: 8192-byte blocks too big for system (max 4096), forced to continue
>> warning: 16 blocks unused.
>>
>> Filesystem label=
>> OS type: Linux
>> Block size=8192 (log=3)
>> Fragment size=8192 (log=3)
>> 65536 inodes, 131056 blocks
>> ....
>> ....
>>
>> # mount -t ext2 /dev/ftl /mntpt
>> [54658.092031] EXT2-fs: blocksize too small for device.
>> mount: mounting /dev/ftl on /mntpt failed: Invalid argument
>>
>> I tried specifying blocksize with the mount command, but it also fails
Have a look at these patches
http://lkml.indiana.edu/hypermail/linux/kernel/0708.3/1847.html
>>
>> # mount -t ext2 /dev/ftl /mntpt -o blocksize=8192
>> mount: mounting /dev/ftl on /mntpt failed: Invalid argument
>>
>> The above command fails in parsing the options passed to the command
>>
>> The section "Mount options for ext2" of mount manpage does not mention
>> blocksize option.
>
> Yes, there is no "blocksize" option in ext2. For a list of valid
> options see "tokens" table in ext2/super.c
>
>
>>
>> Is there anyway I can create ext2 filesystem with blocksize 8192?
>
> No ... as far as I know.
>
> Man page of mke2fs says :
>
> -b block-size
> Specify the size of blocks in bytes. Valid block-size
> values are 1024, 2048 and 4096 bytes per block.
>
> And the kernel code says :
>
> int sb_set_blocksize(struct super_block *sb, int size)
> {
> if (set_blocksize(sb->s_bdev, size))
> return 0;
> /* If we get here, we know size is power of two
> * and it's value is between 512 and PAGE_SIZE */
> sb->s_blocksize = size;
> sb->s_blocksize_bits = blksize_bits(size);
> return sb->s_blocksize;
> }
>
> and the PAGE_SIZE is 4096.
>
> Reiserfs supports blocksizes of 8192 , but its man page says :-
>
> -b | --block-size N
> N is block size in bytes. It may only be set to a power
> of 2 within the 512-8192 interval. Note
> that current versions of the kernel ( 2.6.19 ) do NOT
> support any size other than 4096.
>
>
> But is there any specific reason you want to use block sizes of 8192 ?
>
>>
>> Thanks and Regards,
>> Prasad
>>
>> On Thu, Oct 8, 2009 at 6:41 PM, Manish Katiyar <mkatiyar@gmail.com> wrote:
>>> On Thu, Oct 8, 2009 at 12:38 PM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
>>>> Hi,
>>>>
>>>> I am working on translation layer for flash. For the purpose testing I am
>>>> using a disk file to simulate the flash behavior. So every read and write on
>>>> the block device finally goes to a disk file, something similar to loop
>>>> device, but in addition maintaining the flash property.
>>>>
>>>> I am able to create the file system on the device (/dev/ftl) but when I try
>>>> to mount the device it fails with error "Invalid Argument".
>>>
>>> From the code I can see -EINVAL can be returned at lot of places. You
>>> need to see dmesg to see the message which can help tracing.
>>>
>>>>
>>>> I thought it is failing to read the super block of the file systems, but it
>>>> seems like it did not fail in superblock read
>>>>
>>>> # strace -o out mount -t ext2 /dev/ftl /mntpt/
>>>> [ 175.192033] Opening the device.
>>>> [ 175.193599] IftlIoRead: offset=0x400 Length=0x400
>>>> [ 175.193875] OffsetWithinPage: 400
>>>> [ 175.195104] Read pos=1002535424, length=8192
>>>> [ 175.195474] 0000 0001 0000 0004 3333 0000 eea5 0003 fff5 0000 0000 0000
>>>> 0002 0000 0002 0000 8000 0000 8000 0000 2000 0000 0000 0000 8a9e 4acd 0000
>>>> 0020 ef53 0001 0001 0000 8a9e 4acd 4e00 00ed 0000 0000 0001 0000 0000 0000
>>>> 000b 0000 0100 0000 0038 0000 0002 0000 0003 0000 a037 8e0c d6b3 de11 abb8
>>>> 0635 bff9 2b36 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>> 0000 003f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>> 0000 a037 8f0c d6b3 de11 abb8 0635 bff9 2b36 0001 0000 0000 0000 0000 0000
>>>> 8a9e 4acd 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 001c 0001
>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 [ 175.215929] Closing the
>>>> device.
>>>> mount: mounting /dev/ftl on /mntpt/ failed: Invalid argument
>>>>
>>>> I tried printing the data in hex format just to make sure proper ext2 magic
>>>> code in present in the superblock read from the flash device. "ef53" is the
>>>> magic code of ext2 superblock, ftl device is correctly reading the magic
>>>> code
>>>>
>>>> # cat out
>>>> execve("/bin/mount", ["mount", "-t", "ext2", "/dev/ftl", "/mntpt/"], [/* 4
>>>> vars */]) = 0
>>>> uname({sys="Linux", node="(none)", ...}) = 0
>>>> brk(0) = 0x72f000
>>>> brk(0x72ff40) = 0x72ff40
>>>> arch_prctl(ARCH_SET_FS, 0x72f880) = 0
>>>> open("/dev/urandom", O_RDONLY) = -1 ENOENT (No such file or
>>>> directory)
>>>> brk(0x750f40) = 0x750f40
>>>> brk(0x751000) = 0x751000
>>>> getuid() = 0
>>>> getuid() = 0
>>>> geteuid() = 0
>>>> stat("/dev/ftl", {st_mode=S_IFBLK|0644, st_rdev=makedev(254, 0), ...}) = 0
>>>> mount("/dev/ftl", "/mntpt/", "ext2", MS_SILENT, "") = -1 EINVAL (Invalid
>>>> argument)
>>>> vfork() = 869
>>>> --- SIGCHLD (Child exited) @ 0 (0) ---
>>>> write(2, "mount: mounting /dev/ftl on /mntp"..., 61) = 61
>>>> exit_group(-1) = ?
>>>>
>>>> What could be the reason of failure of mount?
>>>>
>>>> Thanks and Regards,
>>>> Prasad
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks -
>>> Manish
>>> ==================================
>>> [$\*.^ -- I miss being one of them
>>> ==================================
>>>
>>
>
>
>
> --
> Thanks -
> Manish
> ==================================
> [$\*.^ -- I miss being one of them
> ==================================
>
--
Thanks -
Manish
==================================
[$\*.^ -- I miss being one of them
==================================
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Mounting block device fails.
2009-10-09 6:04 ` Manish Katiyar
@ 2009-10-09 7:10 ` Prasad Joshi
0 siblings, 0 replies; 6+ messages in thread
From: Prasad Joshi @ 2009-10-09 7:10 UTC (permalink / raw)
To: Manish Katiyar; +Cc: linux-newbie, Kernelnewbies
On Fri, Oct 9, 2009 at 11:34 AM, Manish Katiyar <mkatiyar@gmail.com> wrote:
> On Fri, Oct 9, 2009 at 11:28 AM, Manish Katiyar <mkatiyar@gmail.com> wrote:
>> On Fri, Oct 9, 2009 at 11:16 AM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
>>> Thanks Manish,
>>>
>>> The issue was with filesystem creation. It was not getting created
>>> properly. I used dumpe2fs command to verify the file system. Actually
>>> Superblock was written correctly but, few other fields like free block
>>> and free inode list etc were incorrect
>>>
>>> It seems to be working properly now
>>> # dumpe2fs /dev/ftl
>>> ...
>>> ...
>>> Group 0: (Blocks 0-65527)
>>> Primary superblock at 0, Group descriptors at 1-1
>>> Reserved GDT blocks at 2-8
>>> Block bitmap at 9 (+9), Inode bitmap at 10 (+10)
>>> Inode table at 11-1034 (+11)
>>> 64489 free blocks, 32757 free inodes, 2 directories
>>> Free blocks: 1039-65527
>>> Free inodes: 12-32768
>>> Group 1: (Blocks 65528-131055)
>>> Backup superblock at 65528, Group descriptors at 65529-65529
>>> Reserved GDT blocks at 65530-65536
>>> Block bitmap at 65537 (+9), Inode bitmap at 65538 (+10)
>>> Inode table at 65539-66562 (+11)
>>> 64493 free blocks, 32768 free inodes, 0 directories
>>> Free blocks: 66563-131055
>>> Free inodes: 32769-65536
>>>
>>> # mount
>>> ...
>>> ...
>>> /dev/ftl on /mntpt type ext2 (rw,relatime,errors=continue)
>>>
>>>
>>> The other problem which I am facing is with the blocksize.
>>>
>>> mkfs allows ext2 file system be created with blocksize=8192,
>>> overriding the default 4096. But, when I try to mount the file system
>>> it fails
>>>
>>> # mkfs -t ext2 -b 8192 /dev/ftl
>>> Warning: blocksize 8192 not usable on most systems.
>>> mke2fs 1.41.4 (27-Jan-2009)
>>> mkfs.ext2: 8192-byte blocks too big for system (max 4096)
>>> Proceed anyway? (y,n) y
>>> Warning: 8192-byte blocks too big for system (max 4096), forced to continue
>>> warning: 16 blocks unused.
>>>
>>> Filesystem label=
>>> OS type: Linux
>>> Block size=8192 (log=3)
>>> Fragment size=8192 (log=3)
>>> 65536 inodes, 131056 blocks
>>> ....
>>> ....
>>>
>>> # mount -t ext2 /dev/ftl /mntpt
>>> [54658.092031] EXT2-fs: blocksize too small for device.
>>> mount: mounting /dev/ftl on /mntpt failed: Invalid argument
>>>
>>> I tried specifying blocksize with the mount command, but it also fails
>
> Have a look at these patches
>
> http://lkml.indiana.edu/hypermail/linux/kernel/0708.3/1847.html
>
>
>>>
>>> # mount -t ext2 /dev/ftl /mntpt -o blocksize=8192
>>> mount: mounting /dev/ftl on /mntpt failed: Invalid argument
>>>
>>> The above command fails in parsing the options passed to the command
>>>
>>> The section "Mount options for ext2" of mount manpage does not mention
>>> blocksize option.
>>
>> Yes, there is no "blocksize" option in ext2. For a list of valid
>> options see "tokens" table in ext2/super.c
>>
>>
>>>
>>> Is there anyway I can create ext2 filesystem with blocksize 8192?
>>
>> No ... as far as I know.
>>
>> Man page of mke2fs says :
>>
>> -b block-size
>> Specify the size of blocks in bytes. Valid block-size
>> values are 1024, 2048 and 4096 bytes per block.
>>
>> And the kernel code says :
>>
>> int sb_set_blocksize(struct super_block *sb, int size)
>> {
>> if (set_blocksize(sb->s_bdev, size))
>> return 0;
>> /* If we get here, we know size is power of two
>> * and it's value is between 512 and PAGE_SIZE */
>> sb->s_blocksize = size;
>> sb->s_blocksize_bits = blksize_bits(size);
>> return sb->s_blocksize;
>> }
>>
>> and the PAGE_SIZE is 4096.
Ya, I see thanks.
>>
>> Reiserfs supports blocksizes of 8192 , but its man page says :-
>>
>> -b | --block-size N
>> N is block size in bytes. It may only be set to a power
>> of 2 within the 512-8192 interval. Note
>> that current versions of the kernel ( 2.6.19 ) do NOT
>> support any size other than 4096.
>>
>>
>> But is there any specific reason you want to use block sizes of 8192 ?
It is hardware's recommendation. The flash hardware uses 8192
blocksize for IOs. Using smaller block size will result in more IOs on
flash device.
Thanks and Regards,
Prasad
>>
>>>
>>> Thanks and Regards,
>>> Prasad
>>>
>>> On Thu, Oct 8, 2009 at 6:41 PM, Manish Katiyar <mkatiyar@gmail.com> wrote:
>>>> On Thu, Oct 8, 2009 at 12:38 PM, Prasad Joshi <prasadjoshi124@gmail.com> wrote:
>>>>> Hi,
>>>>>
>>>>> I am working on translation layer for flash. For the purpose testing I am
>>>>> using a disk file to simulate the flash behavior. So every read and write on
>>>>> the block device finally goes to a disk file, something similar to loop
>>>>> device, but in addition maintaining the flash property.
>>>>>
>>>>> I am able to create the file system on the device (/dev/ftl) but when I try
>>>>> to mount the device it fails with error "Invalid Argument".
>>>>
>>>> From the code I can see -EINVAL can be returned at lot of places. You
>>>> need to see dmesg to see the message which can help tracing.
>>>>
>>>>>
>>>>> I thought it is failing to read the super block of the file systems, but it
>>>>> seems like it did not fail in superblock read
>>>>>
>>>>> # strace -o out mount -t ext2 /dev/ftl /mntpt/
>>>>> [ 175.192033] Opening the device.
>>>>> [ 175.193599] IftlIoRead: offset=0x400 Length=0x400
>>>>> [ 175.193875] OffsetWithinPage: 400
>>>>> [ 175.195104] Read pos=1002535424, length=8192
>>>>> [ 175.195474] 0000 0001 0000 0004 3333 0000 eea5 0003 fff5 0000 0000 0000
>>>>> 0002 0000 0002 0000 8000 0000 8000 0000 2000 0000 0000 0000 8a9e 4acd 0000
>>>>> 0020 ef53 0001 0001 0000 8a9e 4acd 4e00 00ed 0000 0000 0001 0000 0000 0000
>>>>> 000b 0000 0100 0000 0038 0000 0002 0000 0003 0000 a037 8e0c d6b3 de11 abb8
>>>>> 0635 bff9 2b36 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>>> 0000 003f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>>> 0000 a037 8f0c d6b3 de11 abb8 0635 bff9 2b36 0001 0000 0000 0000 0000 0000
>>>>> 8a9e 4acd 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
>>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 001c 001c 0001
>>>>> 0000 0000 0000 0000 0000 0000 0000 0000 0000 [ 175.215929] Closing the
>>>>> device.
>>>>> mount: mounting /dev/ftl on /mntpt/ failed: Invalid argument
>>>>>
>>>>> I tried printing the data in hex format just to make sure proper ext2 magic
>>>>> code in present in the superblock read from the flash device. "ef53" is the
>>>>> magic code of ext2 superblock, ftl device is correctly reading the magic
>>>>> code
>>>>>
>>>>> # cat out
>>>>> execve("/bin/mount", ["mount", "-t", "ext2", "/dev/ftl", "/mntpt/"], [/* 4
>>>>> vars */]) = 0
>>>>> uname({sys="Linux", node="(none)", ...}) = 0
>>>>> brk(0) = 0x72f000
>>>>> brk(0x72ff40) = 0x72ff40
>>>>> arch_prctl(ARCH_SET_FS, 0x72f880) = 0
>>>>> open("/dev/urandom", O_RDONLY) = -1 ENOENT (No such file or
>>>>> directory)
>>>>> brk(0x750f40) = 0x750f40
>>>>> brk(0x751000) = 0x751000
>>>>> getuid() = 0
>>>>> getuid() = 0
>>>>> geteuid() = 0
>>>>> stat("/dev/ftl", {st_mode=S_IFBLK|0644, st_rdev=makedev(254, 0), ...}) = 0
>>>>> mount("/dev/ftl", "/mntpt/", "ext2", MS_SILENT, "") = -1 EINVAL (Invalid
>>>>> argument)
>>>>> vfork() = 869
>>>>> --- SIGCHLD (Child exited) @ 0 (0) ---
>>>>> write(2, "mount: mounting /dev/ftl on /mntp"..., 61) = 61
>>>>> exit_group(-1) = ?
>>>>>
>>>>> What could be the reason of failure of mount?
>>>>>
>>>>> Thanks and Regards,
>>>>> Prasad
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Thanks -
>>>> Manish
>>>> ==================================
>>>> [$\*.^ -- I miss being one of them
>>>> ==================================
>>>>
>>>
>>
>>
>>
>> --
>> Thanks -
>> Manish
>> ==================================
>> [$\*.^ -- I miss being one of them
>> ==================================
>>
>
>
>
> --
> Thanks -
> Manish
> ==================================
> [$\*.^ -- I miss being one of them
> ==================================
>
--
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-10-09 7:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <fe291c8c0910080003m470520adsd4a7e37bf676458b@mail.gmail.com>
2009-10-08 7:10 ` Mounting block device fails Prasad Joshi
[not found] ` <fe291c8c0910080008g22da5bb0n3f106d644da0fbe8@mail.gmail.com>
2009-10-08 13:11 ` Manish Katiyar
2009-10-09 5:46 ` Prasad Joshi
2009-10-09 5:58 ` Manish Katiyar
2009-10-09 6:04 ` Manish Katiyar
2009-10-09 7:10 ` Prasad Joshi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox