Isso pode exigir um pouco da pré-história da seqüência de inicialização do PC para explicar completamente. (PCs modernos com UEFI fazem as coisas de maneira diferente, mas a lógica é semelhante).
Então, vamos olhar para os anos 80, quando os PCs começaram a ter discos rígidos.
O BIOS carregaria o primeiro setor do disco rígido. Isso continha o registro mestre de inicialização (MBR), que era uma combinação de código e a tabela de partição. Havia apenas 512 bytes para armazenar tudo isso, então a codificação era pequena.
O MBR examinaria a tabela de partições e descobriria qual partição estava ativa e onde começou. Em seguida, carregaria um sistema de inicialização secundário , que estava armazenado dentro dessa partição. (Historicamente, isso significava que o carregador de inicialização secundário tinha que estar dentro dos primeiros 504 MB de disco). Este código sabia sobre o sistema de arquivos e poderia carregar o sistema operacional (normalmente IO.SYS, MSDOS.SYS, COMMAND.COM). E assim, o DOS inicializou. Um PC tipicamente novo exigiria "fdisk / mbr" para instalar este setor de inicialização primário.
O fato de ser um software no MBR tornou o processo de inicialização flexível e permitiu carregadores de inicialização alternativos. Um carregador de inicialização inicial para Linux era o LILO ("Linux Loader"). Este tinha um carregador primário, um carregador secundário. Ele sabia sobre sistemas de arquivos Linux padrão e era capaz de inicializar Linux e DOS (e Windows).
Mais tarde, o GRUB (e depois o GRUB2) apareceu. Mas todos seguem o processo de boot loader principal / secundário.
Agora, o que você está fazendo é mover o processo de inicialização secundário ao modificar a partição / boot. O boot loader primário (mudo) não sabe onde encontrar a parte inteligente. E, assim, sua VM não inicializa.
O que você precisa fazer é o equivalente moderno do antigo processo "fdisk / mbr"; você precisa dizer ao seu MBR onde encontrar o carregador secundário.
Como você faz isso depende de qual carregador de inicialização você está usando. Pode ser "grub-install" ou "grub2-install" ou "lilo". Vai depender da variante do sistema operacional (CentOS, Ubuntu, Debian, Amazon ... eles podem ser diferentes).
Isso não diz a você o que faz para consertar sua compilação, mas pelo menos, agora, você deve entender por que seu sistema operacional falha ao inicializar!