gparted 复制后启动修复 NVMe 驱动器

gparted 复制后启动修复 NVMe 驱动器

我正在尝试迁移到我的新 NVMe Samsung 950 pro。

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

过程:

  • 通过 Gparted 复制/粘贴(最新的 gparted live-cd)
  • 运行启动修复(使用 15.10 ubuntu 桌面)
  • 失败update-grub

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

旧驱动器有:

  • sda1 fat32 EFI
  • sda2 ntfs
  • 未分配(必须为新驱动器缩小少量空间)
  • sda3 ext4
  • sda4 linux-交换

我的第一个猜测是我不再使用sd,而是使用nvm带前缀的设备。

任何想法/帮助都将受到赞赏。

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)

更新 11/14/15

这是最新的尝试:

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 

结果:

Installation finished. No error reported.

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

当我看进去/boot/grub不是有一个device.map。我读到我不需要 grub2,但我生成了一个,运行后update-grub遇到了与上述相同的消息。

我还是尝试重启,但我的 EFI 只显示一个Windows Boot Manager可启动项,然后进入 Windows 恢复屏幕。Ubuntu 分区未在 EFI 中列为可启动驱动器。

答案1

sudo fdisk -l

然后,查看安装了 ubuntu 的分区(ext4 文件类型)然后:

sudo mount -t ext4 /dev/sda6 /mnt 

(承认 sda6 是我的 ubuntu 分区)

进而

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

这将重新安装 grub 并查看您拥有的所有其他操作系统并将它们全部组织起来。

答案2

这绝对有效。

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

在这里我看不到 EFI 分区和单独的启动分区。

将 EFI 目录复制到根目录不起作用。您需要一个 fat32 类型的单独分区,大约 100MB 来保存 EFI 目录。

因此,我的建议是从右侧缩小 /dev/nvme0n1p2 以便为 efi 分区创建空间。

然后启动 Ubuntu Live Media。

挂载根分区

sudo mount /dev/nvme0n1pX /mnt/

挂载 efi 分区

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

; 代替X使用实际的设备 ID

Chroot 并重新安装 Grub

sudo chroot /mnt
grub-install

答案3

感谢大家的帮助。我最终选择了这条路,因为 Clonezilla 无法nvme正确识别。我努力尝试让所有这些工作,但所有尝试都失败了。最后,我求助于使用dd来获取我的克隆,最终成功了dd if=/dev/sdX of=/dev/sdY bs=512 count=1 conv=noerror,sync。我真的不想走这条路,但最终成功了。

相关内容