grub-mkdevicemap kannst du dir meiner Erfahrung nach sparen. Beim Systemstart orientiert sich grub an den Dateisystem UUIDs, um die richtigen Partitionen zu finden und bei der Installation gibst du sowieso direkt das richtige Blockdevice an.
Grundsätzlich sehe ich bei deiner Vorgehensweise keinen Fehler, nur dass alle Konfigurationsdateien und auch die in grub selbst eingebettete Konfiguration noch auf das alte System, d.h. auf die UUIDs der ersten Festplatte verweisen.
Du mußt also die UUIDs in der fstab anpassen (blkid zeigt alle UUIDs und LABEL an). Wenn die erste Festplatte nicht mehr da ist, landest du außerdem beim Start im Rescue Prompt des grub, weil der seine Dateien nicht mehr finden kann.
Ist aber weiter kein Problem, du kannst grub recht einfach auf die Sprünge helfen:
zeigt dir die verfügbaren Festplatten und Partitionen samt Dateisystemen. Im folgenden Befehl sagst du grub wo alle seine Dateien liegen. Also die Platte, Partition und Verzeichnis von /boot/grub, zB
Code: Alles auswählen
set prefix=(hd1,msdos1)/boot/grub
set root=(hd1,msdos1)
wobei die 2. Zeile (root=…) nur das Finden des Linux Kernels und der initrd etwas vereinfacht. Dann noch ein
und ein abschließendes
lädt die GRUB Konfigurationsdatei und stellt das Menü zur Verfügung. Das wird aber nicht wie gewünscht funktionieren, weil auch noch die auf die alte Debianinstallation verweisende Konfigurationsdatei vorhanden ist. Deshalb wechselst du am Besten mit <c> auf die Kommandozeile und lädst Kernel und initrd manuell, wobei es egal ist ob du das root Dateisystem über die Gerätedatei, das LABEL oder die UUID angibst:
oder
Code: Alles auswählen
linux /boot/vmlinuz-[Version] root=UUID=[Dateisystem UUID] ro
oder
Code: Alles auswählen
linux /boot/vmlinuz-[Version] root=LABEL=[Dateisystemlabel] ro
und
Damit sollte das kopierte System starten und du kannst ganz ohne Probleme grub noch einmal aus dem laufenden System heraus installieren und die grub Konfiguration aktualisieren, damit wieder alle UUIDs stimmen und nicht beim nächsten Start wieder der Rescue Prompt kommt:
Das ganze ginge auch ohne das kopierte System manuell zu starten, in dem man in das kopierte System chrooted und grub installiert, aber diese Variante hat bei mir nie besonders zuverlässig funktioniert… (vermutlich weil ich immer irgendetwas vergessen habe)