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


9

Meu motivo para usar o LVM é que eu reinstalo, atualizo e geralmente mexo tanto com as instalações do meu sistema operacional que descobri que o LVM me oferece uma flexibilidade fantástica para mover, expandir, clonar e fazer backup das partições do meu sistema de acordo com a minha vontade, sem os riscos associados com outros métodos de particionamento. No entanto, às vezes, a inicialização múltipla de seus sistemas operacionais é um pouco complicada e imprevisível, especialmente em hardware mais recente, onde o processo ganha outro nível de complexidade.

O que estou falando são as novas placas-mãe UEFI (em oposição à BIOS), que permitem usar todo o potencial e inicializar a partir de discos rígidos de 3 TB + (quando formatados em GPT em vez de MBR). As coisas podem ficar incrivelmente complicadas e complicadas, porque cada vez que você instala um novo sistema operacional em sua máquina, ele substitui os arquivos do carregador de inicialização EFI (.efi) da instalação anterior e você acaba com uma série de entradas quebradas no EFI Lista de inicialização "BIOS" e uma carga de carregadores de inicialização grub praticamente redundantes espalhados por suas partições. Isso me ofende em muitos níveis, entre os quais esteticamente.

Respostas:


6

NOTA: Essa foi a resposta do OP. Mudei para cá como CW, para que não ficasse fechado. Se um mod vê isso, conserte a propriedade do OP como uma resposta automática.

Abaixo, detalharei como fazer com que tudo isso funcione de maneira um pouco harmoniosa e resolva a bagunça, até certo ponto.

Parte Um: Instalando.

Observe que, se você tiver o Windows 7 (ou 8?) Instalado em sua máquina, provavelmente precisará instalá-lo primeiro , de preferência em seu próprio disco rígido, e não poderá colocá-lo no seu computador. grupo de volumes lógicos. Isso ocorre porque o instalador do Windows 7 GPT / EFI é muito básico e não permite fazer o tipo de coisa que você fará 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 criada pelo Windows sempre pode ser reutilizada para as instalações do Linux, usando uma variação do método detalhado abaixo.

Primeiro , ajuda a limpar a unidade do sistema pretendida usando o gparted (ou algo semelhante) e inicializá-lo como um disco GPT, antes de fazer qualquer outra coisa. Se você está um pouco nervoso com o uso de um particionador não gráfico para configurar seu disco do zero, isso definitivamente vale a pena e é feito com facilidade a partir de um instalador de CD ou USB de desktop ao vivo padrão. Não faça isso no Windows. Não tenho certeza de que isso seja absolutamente necessário, mas foi o que fiz. Você também pode executar o particionamento básico para partições não-LVM também neste estágio, pois isso não prejudicará e fornecerá uma estrutura para a instalação adequada.

Agora grave os CDs / USBs de instalação. Se você estiver usando o ISO do Ubuntu Alternate Desktop (recomendado), grave-o em um CD, pois ele simplesmente não funcionará em um pendrive. Quando usado para uma instalação do LVM, ele pára com um erro crítico ao tentar 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 absolutamente bem a partir de um USB em todos os casos (AFAIK), mas acho que se eu quiser criar um sistema de desktop Ubuntu / Mythbuntu em cima do Server, ele apresenta todos os tipos de peculiaridades não intencionais que precisam de tempo gasto para resolver. Então fique com o Desktop, se é isso que você procura.

  • O Quantal (12.10) possui o LVM como uma opção no instalador gráfico (o que é ótimo!) E, portanto, o ISO alternativo foi eliminado. No entanto, achei a interface de particionamento manual inflexível, sem opções de LVM e simplesmente não funcionava para inicialização múltipla. Isso pode ter ocorrido devido ao problema de USB mencionado anteriormente, mas, para ser sincero, tive tantos problemas com um sistema Quantal que tentei que desisti rapidamente e voltei ao Precise (12.04.1).

  • A outra opção principal é usar o instalador do Net-boot, do qual não tenho nenhuma experiência real (exceto no meu Raspberry Pi), mas acredito que existem mini ISOs com instaladores baseados em texto e GUI (GTK), que pode ser queimado e inicializado. Eles extraem a maioria dos arquivos de instalação diretamente de um repositório e são altamente personalizáveis.

Em seguida , você deve inicializar seu sistema a partir de CD ou USB usando sua entrada de inicialização UEFI no "BIOS" ou no menu de inicialização (geralmente um dos botões [F8] - [F12] no teclado).

Vou deixar que você faça as preliminares do processo de instalação, mas assim que chegar à parte de particionamento, escolha Particionamento manual e crie (ou modifique se você já tiver criado alguns deles) estas partições:

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

  2. Várias partições: tamanho 256MB, EXT2, capacidade de inicialização, formato;

    • Você deve nomear / rotular cada um deles para o SO que eles representam, 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 LVM.

    • Configure o LVM no volume que você acabou de particionar, criando um grupo de volumes para todos os seus sistemas operacionais, fornecendo a ele um nome adequado e bastante espaço para todos eles. Eu recomendaria considerar pelo menos 40 GB 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 da RAM física em seu sistema, ou seja, 8 GB, nomeie "Swap", use como formato swap.

  5. Crie um volume lógico para cada um dos sistemas operacionais do grupo de volumes, dimensionando-os conforme sugerido acima e dando-lhes um nome, por exemplo, "Ubuntu_12.04" etc.

    • Formate cada um para EXT4, nomeando / rotulando as partições à medida que avança.

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

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

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

Parte 2: Fazendo backup de arquivos de inicialização UEFI.

Assim que você inicializar em seu novo sistema operacional, faça backup do seu UEFI loader para uso posterior e verifique se ele não será substituído na próxima instalação. Isso 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 copiá-lo, copiei-o pelo console, assim:

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

Definitivamente, vale a pena fazer uma cópia adicional em sua pasta pessoal ou em outro local seguro, apenas no caso de:

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

Feito isso, você pode instalar com segurança o seu próximo sistema operacional (seguindo as orientações acima), que provavelmente substituirá o arquivo e a pasta originais e também se tornará a entrada de inicialização UEFI padrão em "BIOS". Repita o processo novamente e quantas vezes for necessário, dando 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".

No terminal, digite:

sudo efibootmgr

Você deve obter alguma saída como esta:

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 auto-explicativo, realmente. Deve refletir o que você vê na sua lista de inicialização do BIOS.

Leia:

man efibootmgr

para ver o que os comandos fazem, 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

Resultado:

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

Em seguida , 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

Resultado:

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

Resultado:

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

Resultado:

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

Resultado:

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á uma sintaxe bastante estranha envolvida, especialmente nos caminhos dos arquivos, mas é bem simples se você tiver um bom guia (o que espero que seja).

Obrigado pela leitura. :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr


Obrigado, AbrahamVanHelpsing. Eu estava tentando responder a mim mesmo, mas acho que sou muito burra aqui. Vou tentar arrumar isso mais tarde; a formatação é terrível! São 1:30 da manhã aqui, então vou desistir por um momento!
Rich.T.

2

Qualquer instalador de sistema operacional que apague os arquivos do carregador de inicialização EFI de outros sistemas operacionais anteriores ou outros está danificado. O Ubuntu tinha esse problema no passado, mas era supostamente corrigido na versão 12.04. (Digo "supostamente" porque vi alguns relatórios de problemas nesse sentido que me fazem pensar que o bug ainda existe para uma minoria de sistemas.) Dito isso, faça o backup da sua Partição de sistema EFI (ESP) antes de um nova instalação do sistema operacional é uma apólice de seguro útil. Um backup em nível de arquivo deve ser suficiente, pois a EFI não depende de código esquecido nos setores de inicialização. (Ele não confiar em GUID da partição, porém, por isso, se algo exclui o ESP e cria um novo, entradas de gestor de início da EFI pode parar de funcionar.)

Em termos gerais, para o seu tipo de configuração, recomendo a criação de um ESP, quantas /bootpartições você achar necessário e uma grande partição LVM. Se você deseja instalar distribuições Linux juntamente com outros sistemas operacionais, faça três ou quatro partições LVM de tamanho variável que, em seguida, mesclará em um grupo de volumes; Dessa forma, você pode extrair uma partição (volume lógico) do seu grupo de volumes e dedicar a uma partição não-Linux. As /bootpartições não LVM oferecem a opção de usar carregadores de inicialização que não entendem o LVM (ou seja, carregadores de inicialização não GRUB2).

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


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 bios_grub de 1 MB abaixo da marca de 2 TB. Se você achar que a EFI é problemática, isso pode funcionar melhor para você.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.