Environment
Situation
SLED with SATA drive will not boot after image
SLES with SATA drive will not boot after Ghost Imaging
SLES with SATA drive will not boot after imaging
ERROR: "err:cannot find disk (SATA) drive"
Resolution
On the original machine where the image will be taken from, make sure that there is no reference to the disk by name. This is set under advanced options during the SLED installation.
Otherwise, an existing original machine where the image will be taken from can be modified in the following way in order to successfully take an image of it and have that image work on other machines with the same hardware:
1. Find out what partition the system is booting from:
Run this command to see what partition has a star next to it. This is an indication of what partition the system will be booting from.
Example:
fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 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 4173 32467365 83 Linux
/dev/sda3 * 4174 4866 5566522+ 83 Linux
/dev/sda4 4867 9729 39062047+ f W95 Ext'd (LBA)
/dev/sda5 4867 5128 2104483+ 82 Linux swap / Solaris
/dev/sda6 5129 6434 10490413+ 83 Linux
/dev/sda7 6435 9729 26467056 83 Linux
In the above example, we can see that/dev/sda3is most likely the partition that the box is booting from.
The mount command is a second indication of what partition the box is booting from.
Example:
mount
/dev/sda3 on / type reiserfs (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/sda2 on /home type reiserfs (rw,acl,user_xattr)
securityfs on /sys/kernel/security type securityfs (rw)
novfs on /var/opt/novell/nclmnt type novfs (rw)
In the above example, we can confirm that/dev/sda3is the partition that the box is booting from because/dev/sda3is mounted on /
2. Modify the/boot/grub/menu.lstfile
On the original machine that will be used to take an image of, take a backup of the existing /boot/grub/menu.lst file, then modify the existing menu.lst file to NOT have a reference to the disk by name and serial number and instead point to a simple normal Linux reference.
As an example, any reference to
/dev/disk/by-id/scsi-SATA_ST3808110AS_4LR0SXEV-part3
should be
/dev/sda3
EXAMPLE: the places that will be changed are in bold and yellow.
Menu.lst file BEFORE:
# Modified by YaST2. Last modification on Mon Mar 315:25:12 UTC2008
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate
###Don't change this comment - YaST2 identifier: Original name: linux###
title Linux
root (hd0,2)
kernel /boot/vmlinuz-2.6.16.46-0.12-default root=/dev/disk/by-id/scsi-SATA_ST3808110AS_4LR0SXEV-part3 vga=0x31a resume=/dev/sda5 splash=silent showopts
initrd /boot/initrd-2.6.16.46-0.12-default
###Don't change this comment - YaST2 identifier: Original name: Linux (/dev/sda6)###
title Linux (/dev/sda6)
kernel (hd0,5)/boot/vmlinuz-2.6.16.46-0.12-default root=/dev/disk/by-id/scsi-SATA_ST3808110AS_4LR10GKN-part6 vga=0x31a resume=/dev/sda5 splash=silent showopts
initrd (hd0,5)/boot/initrd-2.6.16.46-0.12-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe
root (hd0,2)
kernel /boot/vmlinuz-2.6.16.46-0.12-default root=/dev/disk/by-id/scsi-SATA_ST3808110AS_4LR0SXEV-part3 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
initrd /boot/initrd-2.6.16.46-0.12-default
===========================================
Menu.lst file AFTER:
# Modified by YaST2. Last modification on Mon Mar 315:25:12 UTC2008
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate
###Don't change this comment - YaST2 identifier: Original name: linux###
title Linux
root (hd0,2)
kernel /boot/vmlinuz-2.6.16.46-0.12-default root=/dev/sda3
vga=0x31a resume=/dev/sda5 splash=silent showopts
initrd /boot/initrd-2.6.16.46-0.12-default
###Don't change this comment - YaST2 identifier: Original name: Linux (/dev/sda6)###
title Linux (/dev/sda6)
kernel (hd0,5)/boot/vmlinuz-2.6.16.46-0.12-default root=/dev/disk/by-id/scsi-SATA_ST3808110AS_4LR10GKN-part6 vga=0x31a resume=/dev/sda5 splash=silent showopts
initrd (hd0,5)/boot/initrd-2.6.16.46-0.12-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe
root (hd0,2)
kernel /boot/vmlinuz-2.6.16.46-0.12-default root=/dev/sda3 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
initrd /boot/initrd-2.6.16.46-0.12-default
3. Modify the /etc/fstab file.
On the machine that will be used to take an image, take a backup of the existing /etc/fstab file, then modify the existing /etc/fstab file to NOT have a reference to the disk by name and serial number and instead point to a simple normal linux reference.
As an example, any reference to
/dev/disk/by-id/scsi-SATA_ST3808110AS_4LR0SXEV-part3
should be
/dev/sda3
See these related TIDs: