До вчерашнего дня меня устраивала моя схема разделов:
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 с Virtual Box, VDI находится где-то в /home.
Теперь я вынужден увеличить размер vdi и, хотя это возможно, я не хочу иметь файл vdi размером 100 ГБ в моем /home. Потому что я ценю идею возможности загрузки Windows изначально, и у меня есть > 100 ГБ неразмеченного пространства на моем диске, поэтому я
- создано необработанное изображение:
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
.
К сожалению, я не могу загрузить его, ни с помощью virtual box, ни grub. Для VirtualBox я создал raw disk с помощью 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, затем сжал разделы Windows с живого Linux и создал новые разделы для Arch, а затем установил Arch в них). С помощьюпересмотреть, я могу загрузиться в Windows или Arch. Из Arch я могу загрузить Windows в VirtualBox, используясырой диск.
Самыми сложными вопросами были:
Какие разделы использовать? НетtheРаздел Windows. Скорее, их 4:
- Базовый раздел данных (ntfs, 500МиБ)
- Системный раздел EFI (fat32, 100 МБ)
- Зарезервированный раздел Microsoft (?, 16МиБ)
- Базовый раздел данных (ntfs, 100GiB)
Решение: используйте все 4 (
VBoxManage internalcommands createrawvmdk -filename /whatever/you/want.vmdk -rawdisk /dev/nvme0n1 -partitions 1,2,3,4 -relative
). Я не уверен, что все они обязательны, но это работает.Virtual Box не загружается. Хотя в нем есть вся информация (все разделы, упомянутые выше): Включить режим efi (
Settings
->System
->Enable EFI (special OSes only)
).Проблемы с разрешениями: Добавьте своего пользователя в
disk
группу:sudo usermod -a -G disk $USER
.