Linux-Noob Forums
HowTo: Transfer old software RAID1 to new disks - Printable Version

+- Linux-Noob Forums (https://www.linux-noob.com/forums)
+-- Forum: Distro Noob (https://www.linux-noob.com/forums/forum-10.html)
+--- Forum: SUSE (https://www.linux-noob.com/forums/forum-98.html)
+--- Thread: HowTo: Transfer old software RAID1 to new disks (/thread-804.html)



HowTo: Transfer old software RAID1 to new disks - stefan - 2008-10-13


Hi,

my goal is to substitute two mirrored IDE disks, 160GB each, for 2x 500GB SATA drives - keeping the /dev/md0 layout for rootfs (Suse 10.1) and the Data partition /dev/md1 will just have more space.

 

I'm failing in making the new drives bootable.

(see below, end of the post:

mdadm: no devices found for /dev/md0.)

 

Here's what I did:

 

 

Connect the new disks additionally (sda und sdb)

 

## 1st is to backup the drive partition tables:

 



Code:
mkdir /raidinfo
sfdisk -d /dev/hda > /raidinfo/partitions.hda
sfdisk -d /dev/hdb > /raidinfo/partitions.hdb

# fdisk -l /dev/hda

Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1         131     1052226   82  Linux swap / Solaris
/dev/hda2   *         132        4048    31463302+  fd  Linux raid autodetect
/dev/hda3            4049       19456   123764760   fd  Linux raid autodetect

#(hdb is identical to hda)




 

## With "fdisk":

- create sda1 and sdb1 (swap)

- create sda2 and sdb2 (for / type: fd)

- create sda3 and sdb3 (/fileshares type: fd)

- set active partitions sda2 und sdb2.

 



Code:
## fdisk -l /dev/sda
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         131     1052226   82  Linux swap / Solaris
/dev/sda2   *         132        4048    31463302+  fd  Linux raid autodetect
/dev/sda3            4049       60801   455868472+  fd  Linux raid autodetect

#(sdb is identical to sda)




 

## Create both new RAID:



Code:
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3

watch cat /proc/mdstat  ## Just to check progress.

mkfs.reiserfs /dev/md2  ## Format can be started
mkfs.reiserfs /dev/md3  ##  during creation of array.

mkdir /mnt/md2
mkdir /mnt/md3




 

mcedit /etc/fstab (add md2 + md3 lines)



Code:
/dev/md0    /           reiserfs   acl,user_xattr  1 1
  /dev/md1    /fileshares reiserfs   acl,user_xattr  1 1
  /dev/md2    /mnt/md2    reiserfs   acl,user_xattr  1 1
  /dev/md3    /mnt/md3    reiserfs   acl,user_xattr  1 1
  /dev/hda1   swap        swap       defaults        0 0
  /dev/hdb1   swap        swap       defaults        0 0




 

## Mount new Arrays:



Code:
mount /dev/md2  /mnt/md2   -o acl  -o user_xattr
mount /dev/md3  /mnt/md3   -o acl  -o user_xattr




 

## rsync copies also ACLs:



Code:
rsync -v --recursive --times --perms --links --exclude "/mnt/" --exclude \
"/proc/"  --exclude "/fileshares/" --exclude "/sys/" -a  /*  /mnt/md2/

cd /mnt/md2/ %% mkdir mnt %% mkdir proc %% mkdir fileshares %% mkdir sys




 

# Copy Data partition:



Code:
rsync -v --recursive --times --perms --links  -a /fileshares/* /mnt/md3/




 

## Set new UUIDs in new mdadm.conf:



Code:
mdadm --detail --scan >> /mnt/md2/etc/mdadm.conf




 

## Install GRUB onto both new disks:



Code:
chroot /mnt/md2
grub
device (hd0) /dev/sda
root (hd0,1)           ## 0,0 = swap, 0,1 = / incl /boot
setup (hd0)
device (hd1) /dev/sdb
root (hd1,1)           ## 1,0 = swap, 1,1 = / incl /boot
setup (hd1)
quit




 

mcedit /mnt/md2/etc/fstab



Code:
/dev/md0    /           reiserfs   acl,user_xattr  1 1
  /dev/md1    /fileshares reiserfs   acl,user_xattr  1 1  
  /dev/sda1   swap        swap       defaults        0 0
  /dev/sdb1   swap        swap       defaults        0 0




 

mcedit /mnt/md2/boot/grub/device.map



Code:
(hd0)   /dev/sda
(hd1)   /dev/sdb




 

mcedit /mnt/md2/boot/grub/menu.lst



Code:
###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux 10.1
root (hd0,1)
kernel /boot/vmlinuz root=/dev/md0 vga=0x31a    resume=/dev/sda1  splash=silent showopts
initrd /boot/initrd




 

 

poweroff

 

Remove hda and hdb.

 

Boot from new hard disks:



Code:
...
Loading raid1
md: personality registered for level 1
Loading reiserfs
md: md0 stopped.
mdadm: no devices found for /dev/md0.
resume /dev/sda1 not founf (ignoring)
md: md0 stopped.
mdadm: no devices found for /dev/md0.
md: md1 stopped.
mdadm: no devices found for /dev/md1.
Waiting for device /dev/md0 to appear: ok.
rootfs: major=9 minor=0 devn=2304
/dev/md0: unknown volume type
invalid root filesystem -- exiting to /bin/sh
$_




 

Any suggestions will be appreciated!

 

One thing that might be the problem is that I swapped the SATA cables from sda and sdb by mistake:



Code:
# mdadm --detail /dev/md2
/dev/md2:
    Version : 00.90.03
Creation Time : Sat Oct  4 02:38:41 2008
Raid Level : raid1
Array Size : 31463232 (30.01 GiB 32.22 GB)
Device Size : 31463232 (30.01 GiB 32.22 GB)
  Raid Devices : 2
Total Devices : 2
Preferred Minor : 2
Persistence : Superblock is persistent

Update Time : Sun Oct 12 21:24:25 2008
      State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

       UUID : ba1944d9:4539b5bb:0fa8b8d3:3798154c
     Events : 0.1722

Number   Major   Minor   RaidDevice State
   0       8       18        0      active sync   /dev/sdb2
   1       8        2        1      active sync   /dev/sda2




 

If that's the whole problem, how can I fix it now that the users are already writing stuff on /dev/md3 (mounted on: /fileshares)?