hello experts
I have a laptop with opensuse 13.1 and windows 8.1 uefi.
After cloning the original disk with “macrium reflect” software, (forensic mode, sector by sector), i inserted the clone but grub dissapeared and only windows starts. The original disk does the same (after reinserting ).
Can someone please write which are the steps that i should follow for both disks?
After a research, one possile answer was “to change the mounting by UUID to the old way” how can this be done?
Another proposed solution was (the parts that i dont understund are marked with “#”):
From a usb with opensuse in resque mode as root to:
Determine new disk id. # (how can it be done?)
mkdir /mnt/new
mount /dev/sdxY /mnt/new # (is the sdxY the old grub partition? how can i find out which sd* had the old grub?)
mount -t proc none /mnt/new/proc
mount --rbind /sys /mnt/new/sys
mount --rbind /dev /mnt/new/dev
chroot /mnt/new /bin/bash
Modify /etc/fstab to reflect new disk id for home / and swap with new disk-id from above #( how?)
Modify /etc/default/grub to reflect new disk-id in the GRUB_CMDLINE_LINUX_DEFAULT entry # (how?)
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sdx (this installs grub2 to the new disk mbr) #(does “x” represent the new partition number?)
edit /etc/default/grub_installdevice and /boot/grub2/device.map (if exists) and replace old disks with new ones (# what exactly to replace?)
It is quite possible that firmware detected disk change and decided to rebuild boot menu; while it may know how to put Windows back, it probably knows nothing about openSUSE. So please, boot live Linux (make sure to boot it in EFI mode as well) and provide output of “parted -l” and “efibootmgr -v”.
As expected, no trace of openSUSE boot entries. At this point you could simply reinstall openSUSE bootloader. I assume you have single root partition and it is sda7. Adjust partition number accordingly if this is not true. Do something similar to
mount /dev/sda7 /mnt
mount /dev/sda2 /mnt/boot/efi
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /run /mnt/run
chroot /mnt
update-bootloader --reinit
If you have separate partition for /boot, mount it before mounting /boot/efi. After that post output of “efibootmgr -v” again.
Thank you again very much for the reply.
I did as you said. i didn’t seem to have a separate partition for/boot. The new output of “efibootmgr -v” is :
BootCurrent: 0000
Timeout: 0 sec
BootOorder: 0005,00004,2001,0003,2003,2002
Boot0000* EFI USB Device (SanDisc Cruzer Blede) ACPI(a0341d0,0)PCI(14,0,0)PCI(14,0)USB(0,0) HD(1,eb4,2000,7e142954)RC
Boot0001* EFI Network 0 for IPv6 (...)
Boot0002* EFI Network 0 for IPv4 (...)
Boot0003* Windows Boot Manager HD(2,200800,82000,80b8a-a246-477c-b62f-2236504d5699)File(\EFI\Microsoft\boot\Bootmgfw.efi)WINDOWS............x...B.C.D.O.B.J.E.C.T=f.9.e.a.8.6.2.c.-5.c.d.d-.4.e.7.-.a.c.c.2.-.f.3.2.b.3.4.4.s.4.7.9.5.}...yk.............
Boot0004* opensuse HD (2,200800,820000,80ba38a-a246-477c-b62f-2236504d5699)file(\EFI\opensusegrubx64.efi)
Boot0005* opensuse-secureboot HD(2,200800,82000,80b8a38a-a246-477c-b62f-2236504d5699)filee(\EFI\opensuse\shim.efi)
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
I restarted without the live usbstick and grub appeared with the opensuse secureboot and windows options. I choose opensuse and i got into my old desktop BUT there was screensaver error and promted to :
[TIME] Timed out waiting for device dev-disk-by-x22did-ata\x2dTOSHIBA_M01AB...
[DEPEND] Dependency failed for /home
[DEPEND] Dependency failed for Local File Systerms
Welcome to emergency mode! After logging in, type "journalct1 -xb" to view system logs, "systemct1 reeboot" to reboot, "systemct1 default" to try again to boot into default mode.
The system still wants to see my old toshiba hdd instead of my cloned WD. I couldnt do anything after that and rebooted again through grub to windows. What should i do next?
Look at you /etc/fstab file and see what is trying to mount you may have mixed mount methods. and it need to be adjusted. You must have all required partition references pointing to the right partitions.
Note if you clone the UUID should come also but if you have some entries as by-UUID and some as by-id the by-id entries will be different on a different drive. This mix may happen if you upgradded from long ago when by-id was moer commonly used
thank you for the reply. but i need more help on how to modify /adjust the fstab file, since i cant find out how + i have uefi.
viewing the fstab i get
unfortunatelly i did what arvidjaar suggested (mount sda7 and sda2)without knowing if it is the root sda. how can i find which is the root sdx. what should i do? i am sorry but please be more analytical because i am not keen at all with the procedure. thank you in advance
openSUSE defaults to using /dev/disk/by-id paths for disks. These paths change when hard disk is physically replaced. You need to edit /etc/fstab and replace device names with new ones.
Well it used to default to by-id in 13.2 at least it defaults to UUID but if you upgraded from older versions you may still have entries of by-ID
BTW UUID is generated when you make a new partition so if you just copy files from old installation to new partitions the UUID’s will be different but cloned data should also contain the old UUID numbers
Thank you very much for the replies, your suggestions lead to a booting disk at last!
A more analytical (as it should be for an unexperienced user) sum up follows in order for someone else to be helped:
assuming the root partition is sda7:
1.reboot using live usb/DVD with the opensuse iso
2. select rescue mode and login as root
then:
mount /dev/sda7 /mnt
mount /dev/sda2 /mnt/boot/efi
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /run /mnt/run
modify /etc/fstab replacing the label of the old disk with the ouput of the command :
ls -l /dev/disk/by-id/ata*
vi /etc/fstab
chroot /mnt
update-bootloader --reinit
exit
exit
Fir the sake of archives - in case if BIOS boot one more file to modify is /etc/default/grub_installdevice. This file contains device where bootloader is installed. It is not needed in case of EFI that you have.