无法启动已添加的 Windows 分区

无法启动已添加的 Windows 分区

直到昨天,我对我的分区模式还很满意:

Device         Boot   mounted at    
/dev/nvme0n1p1 *      /boot/efi
/dev/nvme0n1p2        swap
/dev/nvme0n1p3        /             ext4
/dev/nvme0n1p6        /media/Volume ext4
/dev/nvme0n1p5        /home         ext4

我也使用带有虚拟盒的 Windows 10,vdi 位于 /home 的某个位置。

现在我不得不扩大 vdi 的大小,尽管这是可能的,但我不希望我的 /home 中有一个 100GB 的 vdi 文件。因为我很欣赏能够本地启动 Windows 的想法,而且我的磁盘上有 > 100GB 的未分区空间,所以我

  1. 创建原始图像:VBoxManage internalcommands converttoraw Win7.vdi win10.img
  2. 分析输出:parted win10.img unit B print

Number Start End Size Type File system Flags 1 1048576B 105906175B 104857600B primary ntfs boot 2 105906176B 54022924799B 53917018624B primary ntfs 3 54023684096B 54522806271B 499122176B primary ntfs diag

  1. /dev/nvme0n1p7使用 gparted创建了一个未格式化的分区
  2. 从win10.img复制第二个分区:sudo dd if=.local/win10.img of=/dev/nvme0n1p7 skip=105906176 count=53917018624 iflag=skip_bytes,count_bytes

现在,如果我使用 来安装它sudo mount /dev/nvme0n1p7 /media/x,它会抱怨 windows 未正确关闭,并且我应该将其安装到 ro。我使用 修复了这个问题ntfsfix。看起来 上的 windows 安装很稳定/dev/nvme0n1p7

不幸的是,我无法启动它,无论是使用虚拟盒还是 grub。对于 VirtualBox,我使用 创建了一个原始磁盘VBoxManage internalcommands createrawvmdk -filename win10.vmdk -rawdisk /dev/nvme0n1 -partitions 7。启动 vbox 后,出现黑屏,就是这样。对于 grub,我编辑了/etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Windows 10 (loader) (on /dev/nvme0n1p7)" {
 insmod part_msdos
 insmod ntfs
 set root='(hd0,msdos7)'
 chainloader +1
}

然后我运行sudo update-grub。它显示error: not a valid root device

我读到 grub 不能直接启动 Windows,而只能启动专用的 Windows 引导加载程序 (chainloader)。我想我的问题是我没有它。

我的问题:如何获取并安装 Windows 引导加载程序?如何使用 vbox 引导分区?

答案1

我没有解决问题,而是重新安装了整个系统(首先安装 Windows 10,然后从实时 Linux 缩小 Windows 分区并为 Arch 创建新分区,然后将 Arch 安装到其中)。使用重新索引,我可以启动 Windows 或 Arch。从 Arch,我可以使用以下方式在 VirtualBox 中启动 Windows原始磁盘

最困难的问题是:

  1. 我应该使用什么分区?没有windows 分区。实际上有 4 个:

    • 基本数据分区 (ntfs, 500MiB)
    • EFI 系统分区(fat32,100MiB)
    • Microsoft 保留分区(?,16MiB)
    • 基本数据分区(ntfs,100GiB)

    解决方案:使用全部 4 个 ( VBoxManage internalcommands createrawvmdk -filename /whatever/you/want.vmdk -rawdisk /dev/nvme0n1 -partitions 1,2,3,4 -relative)。我不确定是否需要全部,但它有效。

  2. 虚拟盒无法启动。尽管它有所有信息(上面提到的所有分区):启用 efi 模式(Settings-> System-> Enable EFI (special OSes only))。

  3. 权限问题:将您的用户添加到-group disk:。sudo usermod -a -G disk $USER

相关内容