Boot-Reparatur des NVMe-Laufwerks nach Gparted-Kopie

Boot-Reparatur des NVMe-Laufwerks nach Gparted-Kopie

Ich versuche, auf mein neues NVMe Samsung 950 Pro zu migrieren.

chroot /mnt/boot-sav/nvme0n1p3 update-grub
grub-probe: error: cannot find a GRUB drive for /dev/sda1.  Check your device.map.

Verfahren:

  • Kopiert/eingefügt über Gparted (neueste Gparted-Live-CD)
  • Boot-Reparatur ausgeführt (mit Ubuntu-Desktop 15.10)
  • gescheitert amupdate-grub

http://paste.ubuntu.com/13244403/

Das alte Laufwerk hatte:

  • sda1 fat32 EFI
  • sda2 ntfs
  • nicht zugeordnet (musste für neues Laufwerk etwas verkleinern)
  • sda3 ext4
  • sda4 linux-swap

sdMeine erste Vermutung ist, dass ich kein , sondern ein voreingestelltes Gerät mehr verwende nvm.

Alle Gedanken/Hilfe sind willkommen.

sudo fdisk -l

Device             Start       End   Sectors   Size Type
/dev/nvme0n1p1      2048    206847    204800   100M Microsoft basic data
/dev/nvme0n1p2    206848 487878655 487671808 232.6G Microsoft basic data
/dev/nvme0n1p3 487878656 864057343 376178688 179.4G Linux filesystem
/dev/nvme0n1p4 864057344 897484799  33427456    16G Linux swap

Device     Boot   Start     End Sectors  Size Id Type
/dev/sda1  *          0 2301535 2301536  1.1G  0 Empty
/dev/sda2       2279532 2284075    4544  2.2M  c W95 FAT32 (LBA)

Aktualisierung 14.11.15

Dies ist der neuste Versuch:

sudo mount /dev/nvme0n1p3 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

sudo cp --remove-destination /etc/resolv.conf /mnt/etc/resolv.conf

sudo chroot /mnt
grub-install --efi-directory=/boot/efi --target=x86_64-efi --uefi-secure-boot 

Ergebnisse:

Installation finished. No error reported.

$ update-grub
grub-probe: error: cannot find a GRUB drive for /dev/sda1.  Check your device.map.

Wenn ich hineinschaue /boot/grub,NICHThabe ein device.map. Ich habe gelesen, dass ich für Grub2 keins brauche, aber ich habe eins generiert, ausgeführt update-grubund dieselbe Meldung wie oben erhalten.

Ich versuche trotzdem, neu zu starten, und mein EFI zeigt nur ein Windows Boot Managerbootfähiges Element an, woraufhin es auf einem Windows-Wiederherstellungsbildschirm landet. Die Ubuntu-Partition wird in EFI nicht als bootfähiges Laufwerk aufgeführt.

Antwort1

sudo fdisk -l

Sehen Sie dann nach, auf welcher Partition Sie Ubuntu installiert haben (Dateityp ext4). Dann:

sudo mount -t ext4 /dev/sda6 /mnt 

(zugeben, dass sda6 meine Ubuntu-Partition ist)

und dann

sudo grub-install --root-directory=/mnt /dev/sda

Dadurch wird Grub neu installiert, alle anderen Betriebssysteme, die Sie haben, werden angezeigt und alle werden organisiert.

Antwort2

Das sollte auf jeden Fall funktionieren.

Device             Start       End   Sectors   Size Type
/dev/nvme0n1p1      2048    206847    204800   100M Microsoft basic data
/dev/nvme0n1p2    206848 487878655 487671808 232.6G Microsoft basic data
/dev/nvme0n1p3 487878656 864057343 376178688 179.4G Linux filesystem
/dev/nvme0n1p4 864057344 897484799  33427456    16G Linux swap

Hier kann ich weder eine EFI-Partition noch eine separate Boot-Partition sehen.

Das Kopieren des EFI-Verzeichnisses ins Stammverzeichnis funktioniert nicht. Sie benötigen eine separate Partition vom Typ FAT32 mit etwa 100 MB, um das EFI-Verzeichnis aufzunehmen.

Daher rate ich Ihnen, /dev/nvme0n1p2 von rechts zu verkleinern, um Platz für die EFI-Partition zu schaffen.

Booten Sie dann in ein Ubuntu Live Media.

Mounten Sie die Root-Partition

sudo mount /dev/nvme0n1pX /mnt/

EFI-Partition mounten

sudo mount /dev/nvme0n1pX /mnt/boot/efi

; ersetzenXmit der tatsächlichen Geräte-ID

Chroot und Grub neu installieren

sudo chroot /mnt
grub-install

Antwort3

Vielen Dank an alle für die Hilfe. Ich bin auf diesen Weg gekommen, weil Clonezilla das nicht nvmerichtig erkannt hat. Ich habe fleißig versucht, das alles zum Laufen zu bringen, aber keiner der Versuche hat funktioniert. Am Ende habe ich auf die Verwendung zurückgegriffen, ddum meinen Klon zu erhalten, und am Ende hat es funktioniert dd if=/dev/sdX of=/dev/sdY bs=512 count=1 conv=noerror,sync. Ich wollte diesen Weg wirklich nicht einschlagen, aber am Ende hat es funktioniert.

verwandte Informationen