Bug 114431

Summary: mke2fs fails creation of 1k blocks when not on cylinder boundry
Product: Red Hat Enterprise Linux 2.1 Reporter: Mike Cooling <cooling>
Component: kernelAssignee: Jim Paradis <jparadis>
Status: CLOSED WONTFIX QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.1CC: ckloiber, peterm
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-12-05 20:17:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mike Cooling 2004-01-28 01:08:47 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4)
Gecko/20030624 Netscape/7.1 (ax)

Description of problem:
This problem goes back to bugzilla 59492 in RH 7.1, but now I have
more info.

Using the standard installation dialog for RH AS 2.1, I created
partitions on my hard disk with relative sizes I have been using on
other systems. I have an application which created millions of very
small files, and therefore I need to create 1k blocks rather than 4k
blocks on a filesystem rather than the default 4k blocks.

I received the following error:
# mke2fs -b 1024 /dev/sda6 
mke2fs 1.26 (3-Feb-2002) 
Filesystem label= 
OS type: Linux 
Block size=1024 (log=0) 
Fragment size=1024 (log=0) 
1702912 inodes, 13617670 blocks 
680883 blocks (5.00%) reserved for the super user 
First data block=1 
1663 block groups 
8192 blocks per group, 8192 fragments per group 
1024 inodes per group 
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
        1024001, 1990657, 2809857, 5120001, 5971969 
 
mke2fs: Attempt to write block from filesystem resulted in short write
zeroing 
block 13617664 at end of filesystem

Here was my partition map:
Disk /dev/sda: 254 heads, 63 sectors, 2221 cylinders 
Units = cylinders of 16002 * 512 bytes 
 
   Device Boot    Start       End    Blocks   Id  System 
/dev/sda1   *         8       327   2560320   83  Linux 
/dev/sda2           328       455   1024128   82  Linux swap 
/dev/sda3           456      2221  14129766    5  Extended 
/dev/sda4             1         7     55975+  fe  LANstep 
/dev/sda5           456       519    512032+  83  Linux 
/dev/sda6           520      2221  13617670+  83  Linux

Redhat Support suggested this might work if the partition was on a
cylinder boundry. I found a similar system, but with 9gig disks rather
than 18gig disks. It also could not build a 1k block file system on
partition /dev/sda7. I redid the partitions as follows:

Disk /dev/sda: 255 heads, 63 sectors, 1106 cylinders 
Units = cylinders of 16065 * 512 bytes 
 
   Device Boot    Start       End    Blocks   Id  System 
/dev/sda1   *         1       256   2056288+  83  Linux 
/dev/sda2           257      1106   6827625    5  Extended 
/dev/sda5           257       342    690763+  82  Linux swap 
/dev/sda6           343       573   1855476   83  Linux 
/dev/sda7           574      1106   4281291   83  Linux 

Now mke2fs works:

[root@webct98 root]# mke2fs -b 1024 -i 2048 /dev/sda7 
mke2fs 1.27 (8-Mar-2002) 
Filesystem label= 
OS type: Linux 
Block size=1024 (log=0) 
Fragment size=1024 (log=0) 
2142208 inodes, 4281291 blocks 
214064 blocks (5.00%) reserved for the super user 
First data block=1 
523 block groups 
8192 blocks per group, 8192 fragments per group 
4096 inodes per group 
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553, 
        1024001, 1990657, 2809857 
 
Writing inode tables: done 
Writing superblocks and filesystem accounting information: done 
 
This filesystem will be automatically checked every 23 mounts or 
180 days, whichever comes first.  Use tune2fs -c or -i to override. 


Version-Release number of selected component (if applicable):
e2fsprogs-1.26-1.72

How reproducible:
Always

Steps to Reproduce:
1. create a partition not on a cylinder boundry
2. run mke2fs with parameters shown above
3.
    

Additional info:

See Redhat Support service request 280194. Also see bugzilla 59492.

Comment 1 Chris Kloiber 2004-01-30 00:39:31 UTC
I noticed that the "short write" occurs several sectors (more than 1k,
I could have accepted it if it was less than 1k, say a disk with an
odd number of sectors) prior to the end of the disk, so I was thinking
that perhaps the partition table may believe the disk is slightly
larger than it is. Making the partition end on the cylinder prior to
the end of the disk seems to work and supports my theory, but that's
all it is at this point. The customer has a workaround for the error
(manually creating the last partition), but we'd both like to see this
get fixed. Thanks.



Comment 2 Thomas Woerner 2004-10-08 11:10:31 UTC
The partition and disk information is coming from the kernel.
Assigning to kernel.

Comment 3 Jim Paradis 2005-12-05 20:17:37 UTC
This issue is outside the scope of the current support status for RHEL2.1.  No
fix is planned.