System crash during mke2fs

Jordi Prats jordi.prats at gmail.com
Fri Oct 24 06:47:31 UTC 2008


I don't know how this can hang your system, but instead of doing this:

losetup -o $((512 * 63)) /dev/loop1 /dev/loop0

You could use kpartx:

kpartx -a /dev/loop0

You are going to find in /dev/mapper your loop0p1:

Here you can find an example:

[root at shuVak ~]# dd if=/dev/zero of=caca bs=1024k count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.656977 seconds, 160 MB/s
[root at shuVak ~]# losetup /dev/loop0 caca
[root at shuVak ~]# fdisk /dev/loop0
Device contains neither a valid DOS partition table, nor Sun, SGI or
OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/loop0: 104 MB, 104857600 bytes
255 heads, 63 sectors/track, 12 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

      Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-12, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-12, default 12):
Using default value 12

Command (m for help): p

Disk /dev/loop0: 104 MB, 104857600 bytes
255 heads, 63 sectors/track, 12 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1               1          12       96358+  83  Linux

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root at shuVak ~]# ls /dev/loop*
loop0  loop1  loop2  loop3  loop4  loop5  loop6  loop7
[root at shuVak ~]# kpartx -a /dev/loop0
[root at shuVak ~]# ls /dev/mapper/loop0p1
/dev/mapper/loop0p1


regards,
Jordi



On Fri, Oct 24, 2008 at 3:16 AM, Carlo Wood <carlo at alinoe.com> wrote:
> Hiya, don't know where else to report this. Please
> correct me if this isn't the right place.
>
> I just ran into a serious bug :((
>
> We were trying to create a virtual filesystem
> in an image (file) of around 238 GB.
>
> Let the files name be foo.img, then we did:
>
> losetup /dev/loop0 foo.img
>
> and then used fdisk /dev/loop0 to create this partition
> table:
>
> uxley:~>fdisk -lu /dev/loop0
>
> Disk /dev/loop0: 238.3 GB, 238370684928 bytes
> 255 heads, 63 sectors/track, 28980 cylinders, total 465567744 sectors
> Units = sectors of 1 * 512 = 512 bytes
>
>      Device Boot      Start         End      Blocks   Id  System
> /dev/loop0p1   *          63      401624      200781   83  Linux
> /dev/loop0p2          401625    16048934     7823655   83  Linux
> /dev/loop0p3        16048935    21928724     2939895   82  Linux swap / Solaris
> /dev/loop0p4        21928725   465563699   221817487+   5  Extended
> /dev/loop0p5        21928788    27808514     2939863+  83  Linux
> /dev/loop0p6        27808578    47359619     9775521   83  Linux
> /dev/loop0p7        47359683    57143204     4891761   83  Linux
> /dev/loop0p8        57143268   465563699   204210216   83  Linux
>
> Next we did:
>
> losetup -o $((512 * 63)) /dev/loop1 /dev/loop0
>
> which should make the first partition available under /dev/loop1
> (this certainly works if that partition already contains a fs,
> we then can mount it).
>
> Finally, I wanted to create a filesystem and ran the following
> command:
>
> uxley:~>mke2fs -j -L "/boot" /dev/loop1
> mke2fs 1.40-WIP (14-Nov-2006)
> Filesystem label=/boot
> OS type: Linux
> Block size=4096 (log=2)
> Fragment size=4096 (log=2)
> 29097984 inodes, 58195960 blocks
> 2909798 blocks (5.00%) reserved for the super user
> First data block=0
> Maximum filesystem blocks=0
> 1776 block groups
> 32768 blocks per group, 32768 fragments per group
> 16384 inodes per group
> Superblock backups stored on blocks:
>        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
>        4096000, 7962624, 11239424, 20480000, 23887872
>
> Writing inode tables:  306/1776
>
>
> Here the machine completely halted/crashed. I don't know what
> happened, because it's a remote machine.
>
> The writing of the inode table started very fast, but it was
> already slowing down the last few - and completely stopped
> at 306, which was 12 minutes ago (my ssh connection to the
> machine still didn't time out, weird enough).
>
> I can still ping the machine I see.
>
> Note that mke2fs says: 29097984 inodes, 58195960 blocks
> That is 58195960 * 4096 = 238370652160 the full size of
> the image file?!?
>
> This partition is only 200MB though!
>
> Did I do something very stupid, or is this a bug in mke2fs ?
>
> --
> Carlo Wood <carlo at alinoe.com>
>
> _______________________________________________
> Ext3-users mailing list
> Ext3-users at redhat.com
> https://www.redhat.com/mailman/listinfo/ext3-users
>



-- 
Jordi




More information about the Ext3-users mailing list