Search: For:
Browsing Single Category

ORACLE RAC/ASM: fdisk failed with error 22: Invalid argument

Topic ID: 3277
Created By: 2008-JUL-10 19:06:50 [Vitaliy]
Updated By: 2008-JUL-10 19:07:28 [Vitaliy]
Status: Open
Severity: Normal
Read Only: No
9334
2008-JUL-10 19:06:50
Moderator
 
 
Registered On: Mar 2006
Total Posts: 194
Issue
You've created shared LUNs for ORACLE ASM and you are trying to create a 
logical partition on the new LUN using FDISK -- it gives you the following 
message:

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
Example
   [root@qarac1 ~]# fdisk /dev/mapper/2000b080002002235
   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.


   The number of cylinders for this disk is set to 19074.
   There is nothing wrong with that, but this is larger than 1024,
   and could in certain setups cause problems with:
   1) software that runs at boot time (e.g., old versions of LILO)
   2) booting and partitioning software from other OSs
      (e.g., DOS FDISK, OS/2 FDISK)
   Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

   Command (m for help): p

   Disk /dev/mapper/2000b080002002235: 156.8 GB, 156892397568 bytes
   255 heads, 63 sectors/track, 19074 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-19074, default 1):
   Using default value 1
   Last cylinder or +size or +sizeM or +sizeK (1-19074, default 19074):
   Using default value 19074

   Command (m for help): p

   Disk /dev/mapper/2000b080002002235: 156.8 GB, 156892397568 bytes
   255 heads, 63 sectors/track, 19074 cylinders
   Units = cylinders of 16065 * 512 = 8225280 bytes

                            Device Boot      Start         End      Blocks   Id  System
   /dev/mapper/2000b080002002235p1               1       19074   153211873+  83  Linux

   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@qarac1 ~]#
Solution
Run "kpartx -a" after FDISK is completed to add all partition mappings on the 
newly-created multipath device -- EXAMPLE:

/sbin/kpartx -a /dev/mapper/2000b080002002235
/sbin/kpartx -l /dev/mapper/2000b080002002235
2000b080002002235p1 : 0 306423747 /dev/mapper/2000b080002002235 63

[root@qarac1 linux]# ls -l /dev/mapper/2000b080002002235*
brw-rw----  1 root disk 253,  8 Jun 19 19:33 /dev/mapper/2000b080002002235
brw-rw----  1 root disk 253, 13 Jul 10 16:19 /dev/mapper/2000b080002002235p1

NOTE: you must re-run "kpartx -a" on all nodes of the cluster for them to be
able to see the newly created partition /dev/mapper/2000b080002002235p1
[edited by: Vitaliy at 19:07 (CST) on Jul. 10, 2008]