raid-1 on ubuntu 12.04

Discussion in 'HOWTO-Related Questions' started by pligor, Dec 7, 2012.

  1. pligor

    pligor New Member

    I was following this tutorial:

    and I tried to recreate it for ubuntu 12.04 since a lot of things have changed.

    Don't be scared with the length of this thread. It is really only the first two pages of the tutorial in a nutshell. It is the procedure I followed while I was trying to create a raid-1 on a running system that now has two identical disk drives.

    Please try to follow it to see what is wrong because the tutorial of raid-1 for ubuntu 12.04 would be very useful and now is missing!

    This is the procedure (not working yet):
    just to see which disks are detected
    	cat /proc/diskstats
    	sudo lshw -c storage -c disk
    Typically is sdb
    Format your drive using the disk utility
        In Disk Utily use default Master Boot Record
    Take all the partition configuration from sda and put it in sdb. We want an exact copy so this is the first step
    	sudo sfdisk -d /dev/sda | sfdisk --force /dev/sdb
    To format the drive
      sudo fdisk /dev/sdb
    for all partitions (sdb1 and sdb5) do the following:
    		Type 't' to change the partition's system id
    		Choose partition number
    		Type 'L' to list all codes
    		choose the code "fd" for Linux raid auto
    		finally on the main menu type 'w' to write (save) all the changes and quit
    install mdadm
    	sudo apt-get install mdadm
    To make sure that there are no remains from previous RAID installations on /dev/sdb, we run the following commands:
    	sudo mdadm --zero-superblock /dev/sdb1
    	sudo mdadm --zero-superblock /dev/sdb5
    create raid-array
    	//sudo mdadm --create --verbose --auto=yes /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb	
    	sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
    	sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5
    to verify execute this:
    	cat /proc/mdstat
    	should now show that you have two degraded RAID arrays ([_U] or [U_] means that an array is degraded while [UU] means that the array is ok)
    Create filesystems on raid arrays
    	//sudo mkfs.ext4 /dev/md0
    	sudo mkfs.ext2 /dev/md0
    	sudo mkswap /dev/md1
    Set new mdadm configuration by first backing up the original
    	sudo cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
    execute the line below to save to a temporary file
    	sudo mdadm --examine --scan > temporary.txt
    	copy and paste at the end(append) of this file:
    		sudo nano /etc/mdadm/mdadm.conf
    		sudo gedit /etc/mdadm/mdadm.conf
    	and of course delete temporary file
    		sudo rm temporary.txt
    Next we modify /etc/fstab. Comment out the current /, /boot, and swap partitions and
    add new lines for them where you replace the UUIDs with /dev/md0 (for the / partition) and /dev/md5 (for the swap partition), AGAIN don't know for third one
    	sudo nano /etc/fstab
    	sudo gedit /etc/fstab
    Next replace /dev/sda1 with /dev/md0 in /etc/mtab:
    	sudo nano /etc/mtab
    	sudo gedit /etc/mtab
    Now up to the GRUB2 boot loader. Create the file /etc/grub.d/09_swraid1_setup as follows
    	sudo cp /etc/grub.d/40_custom /etc/grub.d/09_swraid1_setup
    	sudo nano /etc/grub.d/09_swraid1_setup
    	sudo gedit /etc/grub.d/09_swraid1_setup
    	Copy paste this inside:
    		menuentry 'Ubuntu, with Linux 3.2' --class ubuntu --class gnu-linux --class gnu --class os {
    				    insmod raid
    				    insmod mdraid
    				    insmod part_msdos
    				    insmod ext2
    				    set root='(md/0)'
    				    echo    'Loading Linux 3.2.0-34-generic ...'
    				    linux   /vmlinuz-3.2.0-34-generic root=/dev/md0 ro  quiet
    				    echo    'Loading initial ramdisk ...'
    				    initrd  /initrd.img-3.2.0-34-generic
    	Make sure you use the correct kernel version in the menuentry stanza (in the linux and initrd lines). You can find it out by running
    		uname -r
    Because we don't use UUIDs for our block devices, open /etc/default/grub...
    	sudo nano /etc/default/grub
    	sudo gedit /etc/default/grub
    ...and uncomment the line GRUB_DISABLE_LINUX_UUID=true
    set BOOT_DEGRADED to true so that the system can boot from a degraded array without asking 
    	sudo nano /etc/initramfs-tools/conf.d/mdadm
    	sudo gedit /etc/initramfs-tools/conf.d/mdadm
    Now run
    	sudo update-grub
    Next we adjust our ramdisk to the new situation:
    	sudo update-initramfs -u
    Now let's mount /dev/md0 (we don't need to mount the swap array /dev/md5):
    	sudo mkdir /mnt/md0
    	sudo mount /dev/md0 /mnt/md0
    Next we change the partition type of /dev/sda5 to Linux raid autodetect and add /dev/sda5 to the /dev/md1 array:
    	sudo fdisk /dev/sda
    SUGGESTION HERE IS TO CREATE A Linux raid autodetect ONLY FOR THE SWAP PARTITION! Does this makes sense or should we do it for the main partition as well??
    But even if we try the first attemtp to add the device to the array:
    	sudo mdadm --add /dev/md1 /dev/sda5
    does NOT succeeed !
    Now we copy the contents of /dev/sda1 to /dev/md0	
    Attempt to Copy 1:
    	cd /boot
    	sudo cp -dpRx . /mnt/md0
    Attempt to Copy 2:
    	sudo cp -dpRx / /mnt/md0
    You should now the md0 array in the output of:
    Afterwards we must make sure that the GRUB2 bootloader is installed on both hard drives, /dev/sda and /dev/sdb:
    	sudo grub-install /dev/sda
    	sudo grub-install /dev/sdb
  2. pligor

    pligor New Member

    adding main device into raid-array not working

    This command is successful:
    mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1

    However when I am trying to add the main device with this command:
    mdadm --add /dev/md0 /dev/sda1
    I get an error message that the device is busy.

    Should I execute the whole tutorial from a live cd ?? But then all the configurations would happen on the system of the live cd not the installed one...

    Any tip would be greatly appreciated!

Share This Page