resize2fs error when enlarging file system

2008-05-27
2012-11-28
  • Rob Ratcliff
    Rob Ratcliff
    2008-05-27

    Hi,

    I just moved all my data on my laptop from a 90 GB drive to a 250 GB drive. I created the new partitions on the 250 GB drive with PartitionMagick and moved the data over to the new drive mounted externally via USB with ghost. (It is a dual boot system with Windows and Fedora 6.) I got both systems to boot (after some configuring, creating a boot partition, etc.), but I found that the Linux ext3 file system didn't automatically enlarge to the size of the new ext3 partition size (Windows did resize the file system).

    Fortunately, I discovered resize2fs and ran:

    resize2fs  /dev/sda5 # so that it would automatically enlarge the file system from 20 GB to the new 70 GB size.

    It did enlarge the file system to 30 GB, but failed with this error message:

    resize2fs 1.40.8 (13-Mar-2008) (I also tried the version 1.39 bundled with Fedora 6).
    Filesystem at /dev/sda5 is mounted on /; on-line resizing required
    old desc_blocks = 2, new_desc_blocks = 5
    Performing an on-line resize of /dev/sda5 to 19456715 (4k) blocks.
    resize2fs: No space left on device While trying to add group #243

    BTW, this is the layout of my file system:

    Disk /dev/sda: 250.0 GB, 250059350016 bytes
    255 heads, 63 sectors/track, 30401 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1           6       48163+  83  Linux
    /dev/sda2               7       20403   163838902+   7  HPFS/NTFS
    /dev/sda3           20404       30401    80308935    f  W95 Ext'd (LBA)
    /dev/sda5           20404       30092    77826861   83  Linux
    /dev/sda6           30093       30354     2104483+  82  Linux swap / Solaris
    /dev/sda7           30355       30401      377496   83  Linux

    I read somewhere that you had to remove the journaling from the ext3 system to make it ext2 to be able to use resize2fs, but it doesn't look like that is necessary any more is it? I also saw something about having to change the block size to 4K from 1K for the larger file systems. If that is the case, can that be done in place without having to blow away my file system and recreate it?

    Do you have a suggestion that I can try? This seems like a typical problem people will run into as they run out of space on their laptop drive.

    Thanks!

    Rob Ratcliff
    Austin, Texas

     
    • Rob Ratcliff
      Rob Ratcliff
      2008-05-28

      I finally found a solution on-line.

      I had to drop the journal on the file system and create a larger one:

      Booting from the recovery disk without mounting the / filesystem on my /dev/sda5 device

      tune2fs -O ^has_journal /dev/sda5
      tune2fs -J size=128 /dev/sda5
      resize2fs /dev/sda5

      Also, since a journal of 128M used up too much memory, I went back and changed it to 32M after I resized the file system.

      It might be nice to add a message to the current error that tells the user that he needs to increase the journal size. Even better, tell the user what to do to fix the problem or do it for him. The current error message doesn't explicitly spell out what the actual problem is.

      Thanks!

      Rob