N.B.: architecture of original system and rescue system must be the same (64bit - 64bit resp. 32bit - 32bit)

1. Format the new drive and partition as wanted for root file system (/) and swap and more partitions

2. Boot from a rescue system (USB-stick with comfortable live system or OpenSUSE install media in rescue mode)

3. Mount old and new disk

4. Copy the content of the old disks partitions to the new partitions (cp -avf /mnt/old_disk/* /mnt/new_disk)

5. Disconnect old drive, reboot with the Rescue system as above (openSUSE).

6. Determine new disk id (/dev/disk/by-id)

7. mkdir /mnt/new

8. mount /dev/sdxY /mnt/new # where /sdxY is the / for the new disk

9. mount -t proc none /mnt/new/proc

10. mount –rbind /sys /mnt/new/sys

11. mount –rbind /dev /mnt/new/dev

12. chroot /mnt/new /bin/bash

…root should now be the new disk root

11. Modify /etc/fstab to reflect new disk id for / and swap and the other copied partitions with the new disk-id from above

12. Modify /etc/default/grub to reflect new disk-id in the GRUB_CMDLINE_LINUX_DEFAULT entry (if /etc/grub exists)

13. Modify /etc/default/grub_installdevice to reflect new disk-id

14. Modify /boot/grub2/device.map to reflect new disk-id

15. grub2-mkconfig -o /boot/grub2/grub.cfg

16. grub2-install /dev/sdx (this installs grub2 to the new disk mbr)

17. exit

18. reboot

….in BIOS, set boot to the new drive if necessary

You should get to the Grub boot menu now and the options should work as before.