这个问题已经解决了,但没有任何解决方案有效。我时不时更换笔记本电脑。我甚至有一个 Clonezilla 映像,我会将其恢复到新映像。到目前为止,这种方法运行良好。
我以非常优惠的价格买到了一台翻新的 Latitude 5480。它有一个我甚至都没用过的机械驱动器。我把它换成了运行良好的 SSD 驱动器。
映像(因此是磁盘)具有双启动功能。从配置了 GRUB 的 Ubuntu 启动,以启动 Ubuntu 或 Linux。分区表是 GPT。
第一个分区安装了 Ubuntu,接下来是 Linux 交换分区,然后是可启动的 Windows 分区。没有“保留的 Microsoft 分区”很多人问我为什么这样安装,因为最常见的是先安装 Windows。答案很简单:Windows 占用硬盘空间,而 Ubuntu 不占用硬盘空间。事实上,我安装了一个新版本的 Delphi,需要 20 GB。如果分区设置反了,Delphi 就装不下了。
因此,我买了一个新的 M.2 NVME 磁盘并将整个磁盘克隆到它。两个操作系统都无法启动。出现 GRUB 菜单。Ubuntu 一段时间后进入“恐慌”模式,Windows 只是挂起,有时会抱怨无法访问启动设备。笔记本电脑配置为 UEFI,安全启动已关闭(据我所知,安全启动意味着 UEFI,但 UEFI 并不一定意味着安全启动)
我的猜测是,由于两个操作系统都是在 preNVMe 时安装的,因此都没有所需的驱动程序或配置。
我不想从头开始安装(特别是 Windows),但我被困在这里。据我所知,UEFI 需要在 OS 安装时创建一些文件。
我如何将此非 UEFI 磁盘迁移到新磁盘?
我检查了这些答案,但没有人解决过
将 Windows 10 从 SSD(UEFI/GPT)移至 m.2 NVMe PCH PCIE(或 PCH SATA)
将窗口从 SATA SSD 移至 NvMe SSD
答案1
由于两个操作系统都安装在 SATA 磁盘上,因此均未配置为加载 NVMe 驱动程序在正确的时间– 引导加载程序能够使用 BIOS 功能加载操作系统内核,但操作系统无法本地检测 NVMe 磁盘(当然也无法以常规方式加载驱动程序然而因为根分区无法访问)。
对于 Windows,“StorNvme”驱动程序必须标记为“启动启动” - 据称只需在安全模式下启动 Windows 就可以自动执行此操作,但我必须sc
在克隆之前手动执行此操作:
- 从 SATA SSD 启动 Windows,
- 跑步
sc config stornvme start= boot
, - 关闭并将 SATA SSD 的 Windows 分区克隆到 NVMe。
- (确保 SATA SSD断开连接至少在您第一次启动 NVMe Windows 时。)
对于 Linux,初始化内存文件系统需要重建档案以包含所需的模块。
- 从 SATA SSD 启动 Ubuntu,
- 添加
nvme
至 /etc/initramfs-tools/modules, - 跑步
update-initramfs -u -k all
, - 关闭并将所有 Linux 分区从 SATA SSD 克隆到 NVMe,
- 此时不再需要 /etc/initramfs-tools 条目(一旦您从 NVMe 启动,update-initramfs 就会知道它需要包含“nvme”模块)。
据我所知,UEFI 需要在安装操作系统时创建一些文件。
它们都可以在以后创建。手动创建一个“EFI 系统分区”(在两个操作系统之间共享),克隆其旁边的各个 Windows 和 Linux 分区,然后使用bcdboot
Windows 和grub-install
Linux 重建引导加载程序。