Como eu crio um ambiente de inicialização múltipla usando o LVM para seus sistemas operacionais * buntu em uma unidade do sistema formatada pela GPT, em um sistema baseado em UEFI?

8

Minha razão para usar o LVM é que eu reinstalo, atualizo e geralmente bagunço as instalações do sistema operacional, e descobri que o LVM me dá uma flexibilidade fantástica em mover, expandir, clonar e fazer backup de minhas partições do sistema operacional sem o meu desejo. os riscos associados a outros métodos de particionamento. Isso, no entanto, torna a inicialização múltipla dos sistemas operacionais um pouco complicada e imprevisível às vezes, especialmente no hardware mais novo, em que o processo ganha outro nível de complexidade.

O que eu estou falando são as novas placas-mãe UEFI (em oposição a BIOS), que permitem que você use todo o potencial e inicialize a partir de discos rígidos de 3TB + (quando formatados em GPT em oposição a MBR). As coisas podem ficar incrivelmente complicadas e bagunçadas, porque cada vez que você instala um novo sistema operacional em sua máquina, ele sobrescreve os arquivos EFI bootloader (.efi) de sua instalação anterior e você terminará com uma série de entradas quebradas em sua EFI. "BIOS" bootlist e uma carga de bootloaders grub muito redundantes espalhados sobre suas partições. Isso me ofende em muitos níveis, não menos do que esteticamente.

    
por Rich.T. 09.12.2012 / 01:48

3 respostas

5

NOTA: Esta foi a resposta do OP. Eu mudei para cá como CW para que não ficasse fechado. Se um mod vê isso, por favor, conserte a posse do OP como resposta automática.

Abaixo, detalharei como fazer tudo isso funcionar de forma harmoniosa e resolver a bagunça, até certo ponto.

Parte Um: Instalando.

Por favor, note que se você vai ter o Windows 7 (ou 8?) instalado em sua máquina, você provavelmente terá que instalá-lo primeiro , de preferência em seu próprio disco rígido e você não poderá colocá-lo em seu grupo de volumes lógicos. Isso ocorre porque o instalador do Windows 7 GPT / EFI é muito básico e não permite que você faça o tipo de coisas que estará fazendo aqui. Após a instalação do Windows, você pode redimensionar e reparticionar, adicionando as partições necessárias para uma instalação de inicialização múltipla. A partição do sistema EFI que o Windows cria sempre pode ser reutilizada para as instalações do Linux, usando uma variação do método detalhado abaixo.

Em primeiro lugar , ajuda a limpar a unidade pretendida do sistema usando o gparted (ou algo parecido) e inicializá-la como um disco GPT, antes de fazer qualquer outra coisa. Se você está um pouco nervoso sobre o uso de um particionador não-gráfico para configurar seu disco a partir do zero, então isso definitivamente vale a pena e é feito facilmente a partir de um instalador USB ou CD de desktop ao vivo padrão. Não faça isso no Windows. Não tenho certeza se isso é absolutamente necessário, mas é o que eu fiz. Você também pode realizar o particionamento básico para as partições não-LVM neste estágio também, pois isso não prejudicaria e fornece uma estrutura para a instalação apropriada.

Agora grave seus CDs / USBs de instalação. Se você estiver usando o ISO alternativo do Ubuntu Desktop (recomendado), então você deve gravá-lo em um CD, pois ele simplesmente não funcionará com um pendrive. Quando usado para uma instalação do LVM, ele pára com um erro crítico quando tenta iniciar o carregamento e a instalação do software com o aptitude / tasksel, portanto, use um CD se souber o que é bom para você!

  • O Ubuntu Server instala-se absolutamente bem a partir de um USB em todos os casos (AFAIK), mas acho que se eu quiser construir um sistema desktop Ubuntu / Mythbuntu no topo do Server, ele introduz todos os tipos de peculiaridades não intencionais precisa de tempo gasto resolvendo. Então fique com o Desktop, se é isso que você está procurando.

  • O Quantal (12.10) tem o LVM como uma opção no instalador gráfico (o que é ótimo!) e assim o ISO Alternativo foi eliminado. No entanto, achei a interface de particionamento manual inflexível, carente de opções de LVM e simplesmente não funcionava para multi-boot. Isso pode ter sido devido ao problema USB mencionado anteriormente, mas, para ser honesto, eu tive tantos problemas com um sistema Quantal que experimentei, que desisti rapidamente e voltei ao Precise (12.04.1).

  • A outra opção principal é usar o instalador Net-boot, que eu não tenho experiência real (exceto no meu Raspberry Pi), mas acredito que existam mini ISOs com base em texto e Instaladores GUI (GTK), que podem ser gravados e inicializados a partir de. Eles puxam a maioria dos arquivos de instalação diretamente de um repositório e são altamente personalizáveis.

Próximo , você deve inicializar seu sistema a partir de CD ou USB usando a entrada de inicialização UEFI de dentro de "BIOS" ou o menu de inicialização (normalmente um de [F8] - [F12] no teclado ).

Deixarei que você passe pelas preliminares do processo de instalação, mas, assim que chegar à parte de particionamento, escolha o Particionamento manual e, em seguida, crie (ou modifique, se já criou algumas delas) essas partições:

  1. Uma única partição de tamanho 200MB, FAT32, partição de sistema EFI, nomeada / rotulada "EFI", capaz de inicialização, formato.

  2. Várias partições: Tamanho de 256MB, EXT2, Boot-able, Format;

    • Você deve nomear / rotular cada um deles para o SO que eles representarão, ou seja, "OS_01_Boot" ... "OS_03_Boot" ... etc.

    • Comece montando o primeiro deles como "/ boot" e todos os outros como "não use".

    • Crie uma partição para cada sistema operacional que você pretende instalar.

  3. Uma partição, ocupando o restante do espaço da unidade, como um volume para o LVM.

    • Configure o LVM no volume que você acabou de particionar, criando um grupo de volumes para todos os seus sistemas operacionais, fornecendo um nome adequado e muito espaço para todos eles. Eu recomendo fatorar em pelo menos 40GB para cada um, dependendo do tipo de instalação que você está planejando para cada um.
  4. Crie um volume lógico do mesmo tamanho que a RAM física em seu sistema, ou seja, 8 GB, nomeie-o como "Trocar", use como swap, formato.

  5. Crie um volume lógico para cada um dos sistemas operacionais dentro do grupo de volume, dimensionando-os conforme sugerido acima e atribuindo a cada um um nome, ou seja, "Ubuntu_12.04", etc.

    • Formate cada um para EXT4, nomeando / rotulando as partições conforme você for.

    • Comece montando o primeiro deles como "/" (root) e todos os outros como "não use".

É isso! Agora você tem uma partição swap, "/ boot" e "/" (root) para o seu sistema e peças de reposição para suas instalações subseqüentes. Agora você pode confirmar as alterações na tabela de partições e continuar com o restante da instalação.

Quando se trata de instalar o seu próximo sistema operacional, apenas certifique-se de montar a próxima partição "/ boot" e "/" (root), respectivamente. Por favor, certifique-se de marcar todos os outros como "não usar", incluindo os que você usou da última vez.

Parte Dois: Fazendo Backup dos Arquivos de Inicialização UEFI.

Assim que inicializar o seu novo sistema operacional, você deve fazer backup do carregador de inicialização UEFI para uso posterior e garantir que ele não seja sobrescrito na próxima instalação. Isto pode ser encontrado em "/ boot / efi / EFI", dentro de sua própria pasta, geralmente chamada "ubuntu". O arquivo em questão terá um nome semelhante ao "grubx64.efi", dependendo da arquitetura do seu PC; então "/boot/efi/EFI/ubuntu/grubx64.efi", para minha máquina.

No meu caso, para fazer o backup, copiei-o pelo console:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

Com certeza valeria a pena fazer uma cópia adicional em sua pasta pessoal ou em outro lugar seguro, apenas no caso de:

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

Uma vez feito isso, você pode instalar com segurança o seu próximo sistema operacional (seguindo as instruções acima), o que provavelmente substituirá o arquivo e a pasta originais e também se tornará a entrada de inicialização padrão do UEFI em "BIOS". Repita o processo novamente e quantas vezes forem necessárias, atribuindo a cada pasta um nome diferente, mas representativo:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Parte Três: Modificando as Entradas UEFI no seu UEFI "BIOS".

Do terminal, digite:

sudo efibootmgr

Você deve obter uma saída assim:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

É bem autoexplicativo, na verdade. Ele deve espelhar o que você vê na sua lista de inicialização do BIOS.

Faça uma leitura de:

man efibootmgr

para ver o que os comandos fazem, em seguida, modifique os comandos de exemplo abaixo para adicionar e remover entradas de inicialização.

Primeiro , remova a linha "Boot0000 * ubuntu" com:

sudo efibootmgr -b 0000 -B

Saída:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Então adicionaremos algumas entradas para três sistemas operacionais.

OS # 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \EFI\Ubuntu_12.04.1\grubx64.efi

Saída:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

OS # 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \EFI\Server_12.04.1\grubx64.efi

Saída:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

OS # 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \EFI\Mythbuntu_12.04.1\grubx64.efi

Saída:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

Para alterar a ordem de inicialização:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Saída:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Feito!

Há alguma sintaxe bastante estranha envolvida, especialmente em torno dos caminhos de arquivo, mas é bastante simples se você tiver um bom guia (o que eu espero que seja).

Obrigado pela leitura. :)

link

    
por Call me V 09.12.2012 / 12:48
2

Qualquer instalador do sistema operacional que apague arquivos do carregador de inicialização EFI anteriores ou de outros sistemas operacionais está danificado. O Ubuntu teve esse problema no passado, mas supostamente foi corrigido com a versão 12.04. (Eu digo "supostamente" porque eu vi alguns relatos de problemas ao longo destas linhas que me fazem pensar que o bug ainda pode existir para uma minoria de sistemas.) Dito isso, fazer o backup de sua partição de sistema EFI (ESP) antes de um A nova instalação do SO é uma apólice de seguro útil. Um backup em nível de arquivo deve ser suficiente, uma vez que a EFI não depende de um código esquecido em setores de inicialização. (Ele confia no GUID da partição, portanto, se algo excluir o ESP e criar um novo, as entradas do carregador de inicialização da EFI poderão parar de funcionar.)

De um modo geral, para o seu tipo de configuração, recomendo criar um ESP, quantas /boot partições, como você acha que pode precisar, e uma grande partição LVM. Se você espera instalar distribuições Linux ao lado de outros sistemas operacionais, crie três ou quatro partições LVM de tamanho variável que serão mescladas em um grupo de volumes; Dessa forma, você pode extrair uma partição (volume lógico) do seu grupo de volumes e dedicá-la a um SO não-Linux. As partições de /boot que não são do LVM oferecem a opção de usar carregadores de inicialização que não entendem o LVM (ou seja, carregadores de inicialização que não são do GRUB2).

Quando você instala um novo sistema operacional, ele provavelmente instalará seu próprio gerenciador de inicialização como padrão. Em uma configuração complexa como a sua, essa é provavelmente a coisa errada na maioria das vezes. Para corrigir, é útil ter uma unidade flash USB ou CD-R com o seu gerenciador de inicialização preferido instalado. Algo que pode detectar automaticamente outros gerenciadores de inicialização, como rEFIt ou seus derivados rEFInd, provavelmente funcionará bem neste contexto. (Observe que os binários no site do rEFIt funcionam somente em Macs; o rEFInd é uma opção mais segura para PCs baseados em UEFI.) Alternativamente ou além disso, uma maneira de iniciar um shell EFI pode ser útil, já que você pode mover arquivos, ajustar as opções de inicialização e corrigir vários problemas de um shell EFI. Muitos gerenciadores de inicialização e gerenciadores de inicialização EFI podem iniciar shells EFI. (Veja este wiki do Arch Linux para obter links de download para alguns shells EFI.) As imagens de CD rEFIt e rEFInd incluir shells EFI.

    
por Rod Smith 09.12.2012 / 02:08
2

Você não precisa usar o EFI para inicializar um disco de 2 + TB; você só precisa usar o GPT e criar uma partição de 1 MB bios_grub abaixo da marca de 2Tb. Se você achar que a EFI é problemática, isso pode funcionar melhor para você.

    
por psusi 09.12.2012 / 04:19