Re: Mounting block device fails.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 9, 2009 at 11:28 AM, Manish Katiyar <mkatiyar@xxxxxxxxx> wrote:
> On Fri, Oct 9, 2009 at 11:16 AM, Prasad Joshi <prasadjoshi124@xxxxxxxxx> 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@xxxxxxxxx> wrote:
>>> On Thu, Oct 8, 2009 at 12:38 PM, Prasad Joshi <prasadjoshi124@xxxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

[Index of Archives]     [Audio]     [Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux