Instalando várias distribuições do Linux em uma única partição

5

Atualmente estou usando o Ubuntu 13.04, elementaryos e o Windows 8. Eu também gostaria de instalar o Backtrack para uso raro. Mas eu já estou fora do meu limite de partição. Então, foi possível combinar duas partições e instalar todas as distribuições linux naquela única partição com uma troca compartilhada ?

    
por Gowtham Gopalakrishnan 15.01.2014 / 08:03

3 respostas

8

Isto é escrito para que possa ser lido até o final, desnatado, ou seções podem ser ignoradas. No entanto, eu recomendo olhar a última seção (" você pode realmente não estar limitado a 4 partições ") antes de decidir o que fazer, caso você tenha um disco formatado em GPT ou seja não está sujeito ao limite de 4 partições.

Vários "sistemas de arquivos" na mesma partição: ... Talvez

A instalação de vários sistemas Linux na mesma partição might é possível, mas requer grandes modificações nos sistemas, para que eles acessem os arquivos corretos.

Por exemplo, sistemas operacionais diferentes geralmente usam executáveis diferentes para init . Mas o arquivo executável para init é sempre esperado em /sbin/init . Para este e outros problemas semelhantes, você teria pelo menos que fazer os sistemas usarem argumentos de inicialização do kernel altamente customizados. Para resolver alguns problemas, talvez seja necessário recompilar manualmente um kernel. Você também terá que lidar com a alteração dos locais padrão onde as bibliotecas são instaladas e onde elas são procuradas quando um programa que usa uma biblioteca é executado, portanto, programas instalados em um sistema operacional não usam versões diferentes de outro sistema operacional da mesma biblioteca ( que às vezes será incompatível). Para que os gerenciadores de pacotes funcionem como desejado, você pode ter que editar o código-fonte e recompilar (o que significa que você não pode atualizá-los da maneira normal).

Em princípio, tudo isso deve ser possível. Na prática, isso pode não ser possível: você provavelmente nunca conseguiria que funcionasse com um nível aceitável de estabilidade. No entanto, se você quiser tentar isso, você pode querer examinar a possibilidade de modificar os sistemas para que eles chroot em chroot jails separados durante a inicialização. Acredito que isso seja possível e possa proporcionar a estabilidade necessária. Talvez outros postem respostas com soluções específicas.

Compartilhando Troca: Bastante Fácil, mas você pode usar um ou mais arquivos de troca e nenhuma partição swap!

Em contraste, você pode e é muito fácil fazer diferentes sistemas operacionais GNU / Linux usarem a mesma partição swap. Em geral, você não conseguirá hibernar um sistema e inicializar em outro, mas muitas pessoas não usam a hibernação de qualquer maneira.

Em qualquer caso, se você está tentando reduzir o número de partições que você usa, você pode acabar com a partição swap inteiramente e use swap files em vez . (Você pode até mesmo usar o mesmo arquivo de troca para várias trocas de sistemas operacionais.)

Mas o que você deve fazer , se você estiver limitado a 4 partições ...

... é fazer uma partição estendida. Isso funciona como um contêiner para partições e permite que você tenha efetivamente mais de quatro partições em um disco com uma tabela de partição de um tipo que suporta apenas 4 partições "primárias" .

Para fazer isso, inicialize a partir de uma unidade flash USB / CD / DVD / live e execute o GParted. Se você já tem quatro partições, terá que remover uma delas primeiro. Esta pode ser a partição swap, como o virtualxtc sugere - desde que você não esteja em hibernação. (Desligue ou reinicie corretamente, em vez de hibernar, antes de fazer isso.)

Aqui estão algumas capturas de tela ilustrando uma situação simples em que uma partição estendida está sendo criada. (É claro que os tamanhos aqui são irrealistas, já que usei uma pequena unidade flash para criar as capturas de tela.)

Clique com o botão direito do mouse no espaço não alocado (na barra horizontal que representa o disco ou na lista abaixo) e clique em Novo .

  • Ou (à esquerda), clique nele e clique em Partição & gt; Novo no menu.
  • Ou (esquerda), clique nela e pressione a tecla Inserir .

Isso traz a janela mostrada acima. Clique à direita de Criar como e selecione Partição estendida . (Por padrão, será Partição Primária , que não é o que você quer.)

Faça da partição estendida o tamanho máximo.

Agora, dentro da partição estendida, você pode criar partições adicionais conforme necessário, ignorando o limite de 4 partições.

Você faz isso da mesma maneira que cria qualquer partição no GParted ... apenas dentro da partição estendida, que está atuando como um contêiner para outras partições. Essas partições são chamadas de "partições lógicas" para distingui-las das "partições primárias" que não estão contidas em uma partição estendida.

Quando você fizer isso, será algo parecido com isso (e, em seguida, você poderá clicar na marca de seleção na barra de ferramentas, para fazer Editar & gt; Aplicar todas as operações, para aplicar suas alterações.

Como de costume, é uma boa ideia garantir que pelo menos todos os seus arquivos importantes (por exemplo, documentos) sejam salvos em backup antes de realizar qualquer particionamento.

Finalmente, você pode não estar realmente limitado a 4 partições!

Como você sabe, as partições são formatadas antes de serem usadas. Mas o disco em si também é "formatado" de certa forma. Formatos de partições estabelecem que tipo de dados eles podem armazenar e como os dados (geralmente arquivos) são armazenados. Mas um disco é "formatado" com uma tabela de partições e outras informações. Há mais de um tipo de tabela de partições. Uma tabela de partição "msdos" (às vezes chamada de "msdos disklabel" ou "tabela de partição MBR", embora "MBR seja usada em outros contextos) é limitada a quatro partições primárias.

Mas alguns outros tipos de tabelas de partição não são limitados desta forma, e você pode estar usando esse tipo. É claro que, se o GParted já informou que você não pode criar outra partição primária, provavelmente não será esse o caso.

Mas muitos discos rígidos atualmente, especialmente discos com o Windows 8 neles (especialmente se ele estiver pré-instalado) e discos maiores que 2 terabytes, vêm formatados GPT .

Uma GPT (GUID Partition Table) não limita você a quatro partições; você pode fazer mais sem qualquer esforço especial ou solução alternativa. Então, se você ainda não tentou isso, recomendo fazê-lo. Às vezes as pessoas pensam que são limitado a quatro mas realmente tem um disco GPT e não está limitado a todos.

Uma maneira de descobrir se você tem uma tabela de partições "msdos" ou outra, menos limitadora, é simplesmente tentar criar uma quinta partição (sem torná-la dentro de uma partição estendida - partições estendidas geralmente não são possível, exceto com uma tabela de partição "msdos".

Outra maneira é verificar diretamente no GParted. Para fazer isso, clique em Visualizar & gt; Informação de dispositivo. Um painel ** Device Information * aparecerá à esquerda da lista de partições, sob a representação horizontal do disco.

Por outro lado, se você tiver um disco GPT, verá "gpt" em vez de "msdos". (Existem outros tipos de tabela de partições também, GPT e "msdos" são os mais prováveis, em um PC.)

Observe que, embora seja possível transformar um disco com uma tabela de partições "msdos" em um disco GPT no GParted (com Dispositivo & gt; Criar tabela de partições ...), isso "apagará" todas dados no disco! (É por isso que eu não recomendo isso, como uma solução para o seu problema.)

    
por Eliah Kagan 15.01.2014 / 09:30
3

É possível, eu instalei várias distros na mesma partição, explicarei abaixo como fazer isso. Estou um pouco orgulhoso de dar o primeiro exemplo disso.

Encontrei alguns métodos diferentes para transformar o chroot em uma subpasta inicializável, mas eles não mencionaram se o método deles funcionava perfeitamente e não tinham o guia passo a passo.

link link link link Como inicializar a partir de uma instalação baseada em debootstrap? link link

Inicialmente, entrei em contato com Kasper Dupont, que fez um patch no kernel para alcançá-lo. Enviei-lhe links acima, então ele veio com um script que parece versão melhorada do que no primeiro link.

Veja como eu fiz:

Observe que todos os comandos abaixo serão emitidos (exceto parte do menuentry no passo 3) enquanto você estiver no chroot após

sudo chroot /precise

lembre-se de montar o mount / proc, montar / dev, montar / sys, montar / dev / pts

1) Instale chroot em "/ preciso". É chroot ordinário, mas você deve fazer algumas coisas extras, como instalar o kernel, adicionar usuário, adicionar uuid da partição ao fstab, etc. Você pode seguir este tutorial para fazer você mesmo o debootstrap (chroot). Você não precisa de peças de montagem, porque irá instalá-lo durante a sessão do usuário. link link

2) Nomeie abaixo o script "rootdir" e mova-o para o diretório "/ usr / share / initramfs-tools / hooks" em "/ precise" chroot e torne-o executável caso contrário. E execute "update-initramfs -u -k all"

3) Prepare o menu do grub para o nosso subdiretório inicializar. Eu adicionei o menuentry abaixo ao arquivo "/etc/grub.d/40_custom" e atualizei o grub.

update-grub

Aqui você precisa passar o caminho do seu chroot para o parâmetro "rootdir".

 menuentry "boot into chroot" {
 set root='hd0,msdos6'
  linux /precise/boot/vmlinuz-3.8.0-34-generic root=UUID=c2d1b866-a0fd-4214-     b79b-11b2af29da4d rootdir=/precise ro quiet splash
  initrd /precise/boot/initrd.img-3.8.0-34-generic
 }

Meu número de partição sda6, meu grub vê como msdos6, você pode passá-lo de acordo com suas configurações. Note que "/boot/initrd.img-3.8.0-34-generic" e "/boot/vmlinuz-3.8.0-34-generic" são caminhos relativos, eles apontam para "/ precise / boot / ..."

A segunda coisa a notar é uuid de sua partição, no meu caso é sda6 uuid, você pode encontrar uuid de partions com blkid.

Finalmente adicionado uuid ao fstab para montar automaticamente a partição (no meu caso, sda6)

  UUID=c2d1b866-a0fd-4214-b79b-11b2af29da4d /               ext4    errors=remount-ro 0       1

O script é fazer o patch initrd para deixá-lo montar o subdiretório de acordo com o parâmetro rootdir do grub.

Espero que você ache útil.

 #!/bin/bash
 set -e

 if [ "" = prereqs ]; then
     exit 0
 fi

 . /usr/share/initramfs-tools/hook-functions

 DEFAULT_DIR="$(/usr/bin/grub-mkrelpath /)"

 cat >"$DESTDIR"/scripts/local-bottom/rootdir <<EOF
 #!/bin/sh

 PREREQ=""
 prereqs()
 {
      echo "$PREREQ"
 }

 case $1 in
    prereqs)
 prereqs
      exit 0
      ;;
 esac

 ROOTDIR="$DEFAULT_DIR"

 for x in $(cat /proc/cmdline); do
     case ${x} in
     rootdir=*)
         ROOTDIR="${x#rootdir=}"
         ;;
     esac
 done

 if [ -n "${ROOTDIR#/}" ] && [ -d "/root/${ROOTDIR}" ]
 then
     [ -d /rootfs ] || mkdir -m 0700 /rootfs
     mount --move "/root" "/rootfs"
     mount --bind "/rootfs/${ROOTDIR}" "/root"
     umount "/rootfs"
 fi

 EOF

 chmod 0755 "$DESTDIR"/scripts/local-bottom/rootdir

EDIT: a parte do menuentry do 3. step não está em chroot. Está na sessão do usuário.

    
por kenn 22.01.2014 / 16:32
1

Desde que Eliah roubou expandiu minha resposta original e a transformou em um romance book , vou lhe dizer algumas maneiras de executar outra distro linux dentro de sua partições existentes sem edição; todos eles requerem algum tipo de divisão para que os programas, scripts e arquivos de configuração de cada distribuição não se sobreponham; que tradicionalmente é uma das principais razões para usar uma partição.

  1. Você pode executar a nova distro em uma máquina virtual, como uma caixa virtual.

    Esta configuração já foi abordada no askUbunt .

    Isto tem a desvantagem de rodar uma distro dentro de uma máquina virtual que possui muitos draw backs: menos ram, menos cpu e uma interface menos direta com componentes de hardware, entretanto tornou-se eficiente o suficiente para se tornar bastante comum em grandes ambientes de servidores. / p>

  2. Você pode escrever uma imagem de live cd diretamente no seu disco rígido e configurar o gerenciador de inicialização para inicializar a partir dele.

    A maneira mais fácil de fazer isso é via UnNetBootin. Este [how-to na Sofpedia] fornece um bom exemplo de como usar o UnNetBootin para realizar isso. ( link ) para fins de arquivamento ) No entanto, isso também pode ser feito dentro da janela e conforme descrito aqui . Nesse mesmo artigo, eles afirmam que instalar em iso para uma pasta é tão simples quanto:

    • Digite estes comandos:

      sudo mkdir /distro

      sudo chown 'whoami':'whoami'

      cp <YOUR-DOWNLOADED>.iso /distro/distro.iso

    • Extraia o Linux_kernel da iso & amp; Ram_disk para / distro

    • Abra /boot/grub/menu.lst e adicione o seguinte:

      #''ADD NEW ENTRY''#

      title Install Linux

      root (hdX,X)

      kernel /distro/<YourDownloadedLinuxKernel>

      initrd /distro/<YourDownloadedRamDisk>

  3. Você pode querer criar e expandir o disco virtual

    Eu acredito que a opção 2 limita o espaço dentro do iso, e assim dificulta a instalação de mais aplicativos (você pode sempre migrar alguns dos pontos de montagem para um espaço não virtualizado). Eu não sei exatamente como fazer isso de dentro do linux, embora saiba que é muito comum em sistemas virtualizados (opção # 1), mas acredito que seja o comportamento padrão quando usando o Wubi para instalar o Ubuntu dentro do Windows .

Compartilhando troca entre distros

Geralmente é feito por padrão durante a instalação, se a partição puder ser vista pelo instalador e marcada de acordo. Se você estiver virtualizando, precisará tornar as unidades físicas transparentes no sistema para aproveitar isso. Para o virtualbox isso é feito por instalando guest-addtions .

    
por virtualxtc 15.01.2014 / 08:50