Compartilhar / partição de boot entre distros

4

Eu executei a instalação padrão do CEntOS 6.5 em minha máquina alguns meses atrás e desde então adicionei programas e arquivos dos quais não quero me livrar. Eu gostaria de dual boot Ubuntu 14.xe estou querendo saber o que fazer com a partição / boot. O disco rígido está atualmente particionado da seguinte forma:

sda: SSD de 256 GB

  • sda1: / boot 500 MB
  • sda2: / volume físico de LVM ~ 237 GB
    • / root
    • / home
    • troca

Minha pergunta é: está tudo bem em compartilhar a partição / boot entre distros? ou eu preciso ter uma partição separada / boot para o Ubuntu? Em caso afirmativo, é necessário colocar a partição / boot no início da unidade?

    
por onlyanegg 24.11.2014 / 09:51

3 respostas

1

Você pode, mas não é uma ótima ideia.

No GRUB, o que você faria é especificar um kernel diferente e arquivos initrd para cada distribuição instalada no sistema.

No entanto, a configuração de inicialização para uma distro pode entrar em conflito com a configuração da (s) outra (s) distro (s), dependendo de como cada distribuição define sua configuração de inicialização e nomeia seus arquivos em /boot . Isso pode levar a uma configuração confusa e potencialmente deixar uma ou mais distros não inicializáveis. Cuidado especial deve ser tomado ao atualizar o kernel ou alterar as configurações de inicialização em qualquer uma das distros. Se não houver conflitos, no entanto, você poderá inicializar ambos os sistemas operacionais sem problemas.

    
por 25.11.2014 / 21:45
1

Eu percebo que isso é um pouco tarde para a festa, mas eu levei isso para manter três instalações simultâneas e uma partição /boot :

  • arch linux
  • ubuntu 14.04
  • ubuntu 16.04

Eu usei arch por anos, mas não estava familiarizado com o ubuntu e não tinha certeza de como impedi-lo de instalar um gerenciador de inicialização, então deixei. Para o arco, eu tenho usado syslinux , não grub , então estou muito mais familiarizado com isso. Embora isso seja um pouco no início da minha experiência, aqui está o meu procedimento:

  • identifica os arquivos potencialmente conflitantes. Depois de observar as convenções de nomenclatura do ubuntu vs. arch, isso ficou com 14.04 e 16.04 vmlinuz e ininrd.img , que são nomeadas da mesma forma (talvez além do número da versão, se elas forem atualizadas em momentos diferentes). Pelo que sei, são compatíveis, mas optei por tratá-los como não.
  • configuração syslinux como de costume, criando entradas para cada distro (mostradas abaixo)
  • após a atualização de qualquer uma das distros potencialmente conflitantes, implemente uma estratégia de nomenclatura para evitar problemas
  • tem um plano de backup

Se o ubuntu atualiza o kernel, eu recebo dois arquivos chave:

  • /boot/initrd.img-x.x.x-xx-generic
  • /boot/vmlinuz-x.x.x-xx-generic

Para cada um dos itens acima, basta anexar _distro ao final, além de substituir uma variante nomeada estaticamente para não alterar minha syslinux.cfg de cada atualização (mais mostrada abaixo). O processo ficaria assim, usando 14.04 / Trusty como exemplo e mostrando apenas os arquivos de interesse.

$ cd /boot
$ sudo mv ./initrd.img-4.4.0-62-generic ./initrd.img-4.4.0-62-generic_trusty
$ sudo cp ./initrd.img-4.4.0-62-generic_trusty ./initrd-trusty.img
$ sudo mv ./vmlinuz-4.4.0-62-generic ./vmlinuz-4.4.0-62-generic_trusty
$ sudo cp ./vmlinuz-4.4.0-62-generic_trusty vmlinuz-trusty

Como a convenção de nomenclatura do arch nunca entra em conflito, isso significa que eu acabei com dois arquivos initrd e vmlinuz de backup / com precisão, além de dois que posso usar para não alterar meu syslinux.cfg o tempo todo. Os arquivos chave são assim (com comentários adicionados):

$ ls /boot/

initramfs-linux.img                 ## arch main initramfs
initramfs-linux-fallback.img        ## arch fallback initramfs
initrd.img-4.4.0-62-generic_trusty  ## named recent 14.04 initrd
initrd.img-4.4.0-62-generic_xenial  ## same for xenial (16.04)
initrd-trusty.img                   ## statically named initrd
initrd-xenial.img
vmlinuz-4.4.0-62-generic_trusty     ## named vmlinuz
vmlinuz-4.4.0-62-generic_xenial
vmlinuz-linux                       ## arch's vmlinuz
vmlinuz-trusty                      ## statically named vmlinuz
vmlinuz-xenial

Para a inicialização, veja minhas syslinux entradas:

LABEL arch
  MENU LABEL arch
  LINUX ../vmlinuz-linux
  APPEND luks-options-here rootflags=compress=lzo,discard,ssd,subvol=arch rw
  INITRD ../intel-ucode.img,../initramfs-linux.img

LABEL xenial
  MENU LABEL xenial
  LINUX ../vmlinuz-xenial
  APPEND luks-options-here ro rootflags=compress=lzo,discard,ssd,subvol=xenial quiet splash $vt_handoff
  INITRD ../initrd-xenial.img

LABEL trusty
  MENU LABEL trusty
  LINUX ../vmlinuz-trusty
  APPEND luks-options-here ro rootflags=compress=lzo,discard,ssd,subvol=trusty quiet $vt_handoff
  INITRD ../initrd-trusty.img

Até agora eu deixei grub no ubuntus e ele reclama a cada atualização, mas nada deu errado. Meu plano de backup era copiar mbr.bin para /boot/ (normalmente ele reside em /usr/lib/syslinux... no arquivo) para que, se grub decidir substituir meu gerenciador de inicialização, eu possa pelo menos dd o syslinux bootloader de volta. Estou 95% + confiante de que a minha instalação em arco nunca será executada (pelo menos para inicializar), então eu quase sempre serei capaz de inicializar isso e consertar o ubuntus se eu copiei / nomeei algo incorretamente. É provável que eu mantenha uma versão anterior de cada initrd/vmlinuz para que eu possa alterar qual delas é carregada na inicialização, caso algo dê errado com o processo initramfs .

Espero que esteja relativamente claro o que está acontecendo. Eu provavelmente poderia usar links, algum tipo de script pós-atualização, etc. para automatizar, mas ainda não cheguei lá.

A resposta aceita revela que as coisas podem dar errado, mas desde que eu pesquisei por exemplos de outros fazendo isso, e só encontrei respostas como esta (basicamente, "possível, mas não") eu imaginei adicionar um exemplo tangível de como um poderia definir algo assim.

Pessoalmente, estou muito animado com isso. Eu tenho uma partição de inicialização e, como você deve ter notado, três distribuições lado-a-lado em uma partição btrfs . Não há necessidade de pré-alocar tamanhos, não se preocupe em não gostar de uma configuração e explodi-la (ficar à esquerda com uma partição não usada flutuando) e não há necessidade de um monte de volumes lógicos apenas para inicializar uma partição linux quando eu já > ter um gerenciador de inicialização!

Espero que isso ajude alguém.

    
por 17.02.2017 / 04:12
0

Você pode ter outros diretórios do sistema em diferentes partições.

Para responder à sua pergunta da melhor maneira possível. Você pode compartilhar / boot, mas não é recomendado. Pessoalmente, não acho que valha a dor de cabeça no final do dia.

    
por 25.11.2014 / 21:27