Preparando uma imagem do Linux em uma máquina virtual

2

Estou tentando configurar um sistema para preparar um sistema Linux em uma máquina virtual e depois implantá-lo em um cartão SD. O sistema de destino tem um processador Atom, portanto, não há preocupações de compatibilidade de arquitetura.

Algum dos pontos de montagem tem que estar em uma localização física especial para que isso funcione ou o GRUB pode agregar o sistema de arquivos?

Como configuro o cartão SD para inicializar este sistema usando o GRUB?

Seria melhor rsync no sistema de arquivos ou dd uma imagem do sistema de arquivos? Eu prefiro muito mais a primeira porque eu não tenho que mudar muito a minha VM quando vou para tamanhos diferentes de cartões.

EDITAR:

Eu suponho que vou ter que preparar o cartão antes da mão usando algo como o parted, então eu terei que instalar o GRUB nele, o que não é grande coisa.

A questão principal é, o GRUB encontrará o kernel se não estiver em um lugar físico garantido na partição? Em outras palavras, o GRUB é inteligente o suficiente para ler um ext2, ext3, ou partição ext4 e encontrar os pontos de montagem apropriados?

Meu disco será parecido com isto (2 partições):

[GRUB] [coisas do carregador do grub] [partição do GRUB] [partição do SO]

    
por beatgammit 01.07.2011 / 07:29

1 resposta

2

Quando o Grub inicializa, ele se carrega usando informações fornecidas pelo BIOS. Contanto que todas as partes estejam no mesmo disco, isso deve funcionar perfeitamente.

Quando o Grub carrega o Linux, ele pode encontrar o kernel no mesmo disco que o Grub ou pesquisando os discos disponíveis. Novamente, se você colocar o kernel no mesmo disco que o Grub, isso deve funcionar perfeitamente.

Quando o kernel do Linux vai montar o sistema de arquivos raiz, ele usa sua própria numeração de disco. O Grub passa um argumento de linha de comando ao kernel para que ele saiba onde encontrar o sistema de arquivos raiz; o argumento tem que ser em termos do que o kernel entende. Os números de disco (por exemplo, sda , sdb , hda , etc.) são imprevisíveis se você mudar de sistema para sistema. A maneira mais fácil de garantir que isso funcione é colocar o sistema de arquivos raiz (e qualquer outro sistema de arquivos ou espaço de troca) no LVM. No momento da inicialização (especificamente no estágio de execução initrd / initramfs), o sistema examinará todos os volumes físicos disponíveis do LVM, montará os grupos e fornecerá acesso a todos os volumes lógicos que eles contêm. Como os volumes do LVM possuem nomes e não números de disco, não importa quais são os números do disco.

O Grub precisa saber a localização física exata no disco de suas peças. Você não pode fazer um cartão SD inicializável apenas copiando arquivos para ele, você tem que fazer uma instalação de bootloader. Para lidar com dispositivos de tamanhos diferentes facilmente, uma boa maneira é criar uma partição de tamanho fixo no início do disco para o sistema operacional e usar o restante do espaço como uma partição de dados extra. Nesse tópico, consulte Clonagem um stick USB inicializável para um stick de tamanho diferente .

    
por 01.07.2011 / 09:16