直到昨天,我对我的分区模式还很满意:
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 的未分区空间,所以我
- 创建原始图像:
VBoxManage internalcommands converttoraw Win7.vdi win10.img
- 分析输出:
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
/dev/nvme0n1p7
使用 gparted创建了一个未格式化的分区- 从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原始磁盘。
最困难的问题是:
我应该使用什么分区?没有这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
)。我不确定是否需要全部,但它有效。虚拟盒无法启动。尽管它有所有信息(上面提到的所有分区):启用 efi 模式(
Settings
->System
->Enable EFI (special OSes only)
)。权限问题:将您的用户添加到-group
disk
:。sudo usermod -a -G disk $USER