Não é possível inicializar a partição do Windows dd'ed

Não é possível inicializar a partição do Windows dd'ed

Até ontem, eu estava satisfeito com meu esquema de partição:

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

Eu também uso o Windows 10 com caixa virtual, o vdi está em algum lugar em/home.

Agora sou forçado a ampliar o tamanho do vdi e, embora possível, não quero ter um arquivo vdi de 100 GB em meu/home. Porque aprecio a ideia de poder inicializar o Windows nativamente e tenho mais de 100 GB de espaço não particionado em meu disco, então

  1. imagem bruta criada:VBoxManage internalcommands converttoraw Win7.vdi win10.img
  2. saída analisada: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. criou uma partição não formatada /dev/nvme0n1p7usando o gparted
  2. copiou a segunda partição de win10.img:sudo dd if=.local/win10.img of=/dev/nvme0n1p7 skip=105906176 count=53917018624 iflag=skip_bytes,count_bytes

Agora, se eu montá-lo com sudo mount /dev/nvme0n1p7 /media/x, ele reclama que o Windows não foi desligado corretamente e que devo montá-lo. Eu consertei isso usando ntfsfix. Parece que há uma instalação sólida do Windows /dev/nvme0n1p7.

Infelizmente, não consigo inicializá-lo, nem usando a caixa virtual nem o grub. Para o VirtualBox, criei um disco bruto usando VBoxManage internalcommands createrawvmdk -filename win10.vmdk -rawdisk /dev/nvme0n1 -partitions 7. Após iniciar o vbox aparece uma tela preta e pronto. Para o grub, editei /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
}

então eu corro sudo update-grub. Ele exibe error: not a valid root device.

Eu li que o grub não pode iniciar o Windows diretamente, mas apenas inicia um bootloader dedicado do Windows (chainloader). Acho que meu problema é que não tenho isso.

Minhas perguntas: Como posso obter e instalar esse bootloader do Windows? Como posso inicializar a partição com vbox?

Responder1

Eu não resolvi o problema, mas reinstalei todo o sistema (instale o Windows 10 primeiro, depois reduza as partições do Windows de um Linux ativo e crie novas partições para o Arch, depois instale o Arch nelas). UsandorEFInd, posso inicializar no Windows ou no Arch. No Arch, posso inicializar o Windows no VirtualBox usandodisco bruto.

As questões mais difíceis foram:

  1. Quais partições devo usar? Não háopartição do Windows. Em vez disso, existem 4:

    • Partição de dados básica (ntfs, 500MiB)
    • Partição do sistema EFI (fat32, 100MiB)
    • Partição reservada da Microsoft (?, 16MiB)
    • Partição de dados básica (ntfs, 100GiB)

    Solução: use todos os 4 ( VBoxManage internalcommands createrawvmdk -filename /whatever/you/want.vmdk -rawdisk /dev/nvme0n1 -partitions 1,2,3,4 -relative). Não tenho certeza se todos são necessários, mas funciona.

  2. O Virtual Box não inicializa. Mesmo que tenha todas as informações (todas as partições mencionadas acima): Habilite o modo efi ( Settings-> System-> Enable EFI (special OSes only)).

  3. Problemas de permissão: Adicione seu usuário ao disk-group: sudo usermod -a -G disk $USER.

informação relacionada