[linux-lvm] RAID mapper device size wrong after replacing drives

Ian Puleston ian at underpressuredivers.com
Fri Dec 7 18:57:05 UTC 2007


Hi, 

I posted this question on linux-raid at vger.kernel.org and was told it might
be more appropriate here, so apologies to anyone on both lists who might be
seeing it twice.

I have a problem with my RAID array under Linux after upgrading to larger
drives. I have a machine with Windows and Linux dual-boot which had a pair
of 160GB drives in a RAID-1 mirror with 3 partitions: partiton 1 = Windows
boot partition (FAT32), partiton 2 = Linux /boot (ext3), partiton 3 =
Windows system (NTFS). The Linux /root is on a separate physical drive. The
dual boot is via Grub installed on the /boot partiton, and this was all
working fine. 

But I just upgraded the drives in the RAID pair, replacing them with 500GB
drives. I did this by replacing one of the 160s with a new 500 and letting
the RAID copy the drive, splitting the drives out of the RAID array and
increasing the size of the last partition of the 500 (which I did under
Windows since its the Windows partiton) then replacing the last 160 with the
other 500 and having the RAID controller create a new array with the two
500s, copying the drive that I'd copied from the 160. This worked great for
Windows, and that now boots and sees a 500GB RAID drive with all the data
intact. 

However, Linux has a problem and will not now boot all the way. It reports
that the RAID /dev/mapper volume failed - the partition is beyond the
boundaries of the disk. Running fdisk shows that it is seeing the larger
partiton, but still sees the size of the RAID /dev/mapper drive as 160GB.
Here is the fdisk output for one of the physical drives and for the RAID
mapper drive: 

Disk /dev/sda: 500.1 GB, 500107862016 bytes 
255 heads, 63 sectors/track, 60801 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes 

   Device Boot      Start         End      Blocks   Id  System 
/dev/sda1               1         625     5018624    b  W95 FAT32 
Partition 1 does not end on cylinder boundary. 
/dev/sda2             626         637       96390   83  Linux 
/dev/sda3   *         638       60802   483264512    7  HPFS/NTFS 


Disk /dev/mapper/isw_bcifcijdi_Raid-0: 163.9 GB, 163925983232 bytes 
255 heads, 63 sectors/track, 19929 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes 

                            Device Boot      Start         End      Blocks  
Id  System 
/dev/mapper/isw_bcifcijdi_Raid-0p1               1         625     5018624  
 b  W95 FAT32 
Partition 1 does not end on cylinder boundary. 
/dev/mapper/isw_bcifcijdi_Raid-0p2             626         637       96390  
83  Linux 
/dev/mapper/isw_bcifcijdi_Raid-0p3   *         638       60802   483264512  
 7  HPFS/NTFS 


They differ only in the drive capacity and number of cylinders. 

I started to try to run a Linux reinstall, but it reports that the partiion
table on the mapper drive is invalid, giving an option to re-initialize it
but saying that doing so will lose all the data on the drive. 

So questions: 

1. Where is the drive size information for the RAID mapper drive kept, and
is there some way to patch it? 

2. Is there some way to re-initialize the RAID mapper drive without
destroying the data on the drive? 

By the way, this is a software RAID with an Intel chipset.

Thanks, 
Ian







More information about the linux-lvm mailing list