Métodos para experimentar novas versões do SO sem se comprometer com isso?

18

Eu quero experimentar novos lançamentos do sistema operacional à medida que eles chegam, como o Ubuntu 17.04 ou o Ubuntu 17.10 para ver novos recursos. Eu também gosto de olhar para o Kubuntu, CentOS ou outras distros (Windows 11 quando chegar?) - ou configurar ambientes de teste sabendo que posso descartá-los e não quero fazer isso na minha máquina principal.

Que conjunto de alternativas existem para fazer isso sem arriscar minha máquina principal de desenvolvimento? Eu não estou procurando um debate sobre o melhor caminho, mas quais alternativas estão disponíveis.

    
por Ted Cahall 07.03.2018 / 13:50

9 respostas

25

Alternativas USB

Alternativas USB são boas quando

  • você quer testar o desempenho (em bare metal)
  • o computador não é poderoso o suficiente para executar bem um sistema em uma máquina virtual

Você pode usar um pendrive USB com pelo menos 2 GB de espaço em disco e criar um

  • ao vivo sistema Ubuntu no pendrive.

    Inicialize a partir do pendrive USB e selecione 'Try Ubuntu' no menu de inicialização (e algo similar com outras distribuições linux). Se você salvar dados, instalar programas ou ajustar o sistema em uma unidade ao vivo (somente ao vivo), ele não sobreviverá ao desligamento ou reinicialização.

Se você quiser

  • experimente o Ubuntu de uma forma mais avançada ou
  • salva dados, instala programas ou ajusta o sistema e
  • você tem / obtém um pendrive USB rápido de pelo menos 4 GB,

você pode criar um

  • persistente ao vivo sistema Ubuntu

ou se você tiver / tiver um pendrive USB rápido de pelo menos 16 GB , poderá criar um

  • instalado sistema Ubuntu (como instalado em uma unidade interna, mas em um pendrive USB).

    Um sistema instalado em uma unidade USB é estável e flexível, pode ser mantido atualizado e ajustado sem limites. Desta forma, é melhor que um sistema vivo persistente. É portátil entre computadores, se você puder evitar drivers proprietários, mas um sistema ao vivo persistente é mais portátil.

Links

por sudodus 07.03.2018 / 15:48
15

Uma maneira de testar novas distribuições e versões do sistema operacional é com a virtualização. Não requer espaço para que um PC / teclado / vídeo / mouse ou adaptadores adicionais executem vários PCs com um único teclado, vídeo e mouse. Requer apenas um único PC e algum software de virtualização.

Isso pressupõe que você tenha uma máquina com uma CPU multi-core capaz de virtualização e uma quantidade razoável de memória. Eu recomendaria pelo menos 8GB de memória com 16GB melhor se você tiver.

Se você estiver executando o Ubuntu e quiser apenas experimentar distros do Linux (não acredito que o Windows funcionará), você pode usar o software gratuito de virtualização empacotado no Ubuntu: KVM ou Xen. Ambos funcionam bem, são GRATUITOS e podem executar várias distribuições Linux. No entanto, as ferramentas para gerenciar as VMs são um pouco ausentes. A Oracle tem uma versão GRATUITA de uma ferramenta de virtualização chamada VirtualBox e, claro, há sempre o produto comercial VMWare. Tanto o VirtualBox quanto o VMWare também podem rodar o Ubuntu em cima de uma máquina Windows, se esta for sua área de trabalho.

Usando um gerenciador de VMs, você poderá adicionar novas distribuições à medida que elas forem lançadas, testá-las, brincar com os novos recursos e, em seguida, descartá-las quando a nova versão aparecer. Eles só consomem espaço em disco quando não estão rodando, então eles nem precisam ser descartados a menos que isso se torne apertado. Com um gerenciador de VMs, é fácil equilibrar 5, 10 ou mais distros em uma máquina e ser capaz de inicializá-los e removê-los conforme necessário. Se você tiver a sorte de ter uma máquina de 32 GB ou 64 GB, poderá até executá-los todos em paralelo.

    
por Ted Cahall 07.03.2018 / 13:50
12

Como uma alternativa mais barata e mais barata à resposta do sudodus , você pode inicializar diretamente a partir de uma imagem da unidade inicializável arquivo em vez de uma unidade dedicada (USB).

Pelo menos para imagens ISO do Ubuntu (e derivados como o Linux Mint) a seguinte receita funciona. Outras distribuições podem precisar de mais ajustes.

  1. Armazene a (s) imagem (s) da unidade inicializável no formato ISO 1 em algum lugar como um arquivo na (s) unidade (s) de armazenamento interno (s) 2 .

  2. Adicione um arquivo “parts” do Grub, e. g. 35_isofiles , com o conteúdo

    #!/bin/bash
    set -e
    . /usr/share/grub/grub-mkconfig_lib
    shopt -s nullglob
    
    make_iso_menuentry()
    {
        local isodevice="$(exec "$grub_probe" -t device -- "")" || return $?
        local isogrub="$(make_system_path_relative_to_its_root "")"
        local label="${2:-""}"
    
        printf 'menuentry %s {\n' "'${label//\'/\'\\'\'}'"
        printf '\tset isofile=%s\n' "'${isogrub//\'/\'\\'\'}'"
        prepare_grub_to_access_device "$isodevice" | sed -e 's/^/\t/'
        printf '\t%s\n' \
            'insmod loopback' 'insmod iso9660' 'loopback loop "$isofile"' \
            'linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename="$isofile" ro noprompt noeject noplymouth' \
            'initrd (loop)/casper/initrd.lz'
        printf '}\n\n'
    
        printf 'Found "%s" image: %s\n' "$label" "" >&2
    }
    
    
    for iso in /path/to/image.iso # <-- set path to your ISO image here
    do
        make_iso_menuentry "$iso" "${iso##*/}" || true
    done
    

    para /etc/grub.d e torná-lo executável.

    Edite o caminho do arquivo na linha indicada para atender às suas necessidades. Você pode adicionar vários caminhos e / ou padrões Bash glob, se quiser.

  3. Torne o arquivo executável:

    sudo chmod a+x /etc/grub.d/35_isofiles
    
  4. Verifique se o menu Grub está ativado .

  5. Atualize a configuração do Grub:

    sudo update-grub
    
  6. Reinicialize e selecione a entrada do menu Grub recém-adicionada para inicializar a partir do respectivo arquivo de imagem.

1 Outros tipos de sistema de arquivos são possíveis, mas podem requerer outros comandos do Grub e ajustes de parâmetros de inicialização.

2 LVM, RAID e sistemas de arquivos criptografados devem funcionar graças à biblioteca de utilitários do Grub, mas eu não os testei.

    
por David Foerster 08.03.2018 / 01:23
9

A virtualização é de longe a mais simples.

No entanto, você tem dois casos de uso separados aqui, que terão soluções diferentes

1. Experimente a nova distro

As distribuições são basicamente determinadas pelos aplicativos empacotados e pelo ambiente userspace (por exemplo, SystemD vs init para inicialização)

Se você quer "avaliar" o UIX de uma distribuição diferente, qualitativamente, então eu recomendo a virtualização completa onde você instala o sistema operacional em sua totalidade e avalia sua usabilidade. Isso é coberto adequadamente em outras respostas.

Se você simplesmente precisar do ambiente do espaço de usuário para testar, leia.

2. Testes e "instâncias descartáveis" em diferentes ambientes

É mais fácil, mais barato e mais rápido usar a conteinerização, uma forma de virtualização leve que usa o kernel para criar ambientes em área restrita.

Um contêiner compartilha recursos do kernel com o Host, mas tem seu próprio sistema de arquivos raiz, userspace, pilha de rede, etc. Isso pode ser considerado, conceitualmente, como chroot em esteróides. No entanto, como o kernel é compartilhado, a virtualização é "thin", o que significa que, para a maioria das finalidades práticas, ele é executado na mesma velocidade que o sistema operacional host.

Existe um sistema de contêiner comumente usado chamado docker . O Docker padronizou imagens para praticamente todas as distribuições de linux que você gostaria, e ele é executado no windows (no entanto, as imagens do windows só funcionam no windows, as imagens linux funcionam em ambos). Possui recursos úteis adicionais para economizar espaço e desempenho.

Existem também alternativas nativas de código aberto para o Linux como LXC (que é embutido no kernel!), que podem ser usadas da mesma forma (mas com mais configurações necessárias).

Exemplo simplificado de um ambiente de teste ou de compilação em docker

# Dockerfile

FROM ubuntu:17.10

RUN apt-get update && apt-get install -y build-essential

WORKDIR /workdir
  • docker build --tag my-builder .

Em seguida, na linha de comando, compile seu projeto ou testes nesse ambiente de várias formas

"login" e compile dentro do ambiente, execute testes, etc. Assumindo que você está no diretório fonte do seu projeto

$ docker run -v "$PWD:/workdir" --rm -it my-builder /bin/bash
# echo "Now in docker container"
# make
...
# build/test/my-test
...
# exit
$ echo "Build artifacts are now on your host OS Directory :) "

Use como único

$ docker run -v "$PWD:/workdir" --rm my-builder make

Você pode até passar variáveis de ambiente

$ docker run -e "CROSS_COMPILE=arm-linux-gnueabi" -v "$PWD:/workdir" --rm my-builder make

Ou inicie uma instância persistente e copie arquivos para ela explicitamente

$ Start our instance in background 
$ docker run --name my-builder-inst -d my-builder
$ echo "Copy files to instance" 
$ docker cp /my/source/dir my-builder-inst:/workdir
$ echo "run project build"
$ docker exec my-builder-inst make
$ echo "copy build artifacts"
$ docker cp my-builder-inst:/workdir/build /my/output/dir
$ echo "destroy and delete container" 
$ docker rm -f  my-builder-inst

Existem literalmente centenas de outros padrões de uso, no entanto, a definição de imagem semelhante a um script, imagens extensíveis e uso de linha de comando a tornam extremamente atraente para ambientes de desenvolvimento, teste e até mesmo de implementação

    
por crasic 07.03.2018 / 19:35
3

Eu mantenho uma partição separada no meu disco (recomendo 20GB no mínimo, mais se você puder).

Eu posso instalar na partição qualquer sistema operacional que eu queira testar e, em seguida, reinicializá-lo.

Se tudo estiver funcionando bem, posso desaprovar minha partição do sistema operacional original e, eventualmente, reutilizá-la.

Mas se o novo sistema operacional não estiver funcionando (problemas de driver, software indisponível), então posso simplesmente reinicializar meu sistema operacional e ficar grato por ainda tê-lo ! p>

Notas:

  • Dessa forma, você realmente testa o novo sistema operacional em seu hardware, para detectar problemas de driver.

  • Mas se você quiser apenas experimentar como o novo SO se sente, uma das outras soluções de virtualização provavelmente é mais rápida, fácil e segura para você.

  • Eu mantenho meu /home em uma partição separada grande, portanto, ele é independente dos dois sistemas operacionais. (Não reformate acidentalmente essa partição!)

  • Mas recomendo que você não use uma partição /home compartilhada durante o teste. Se os dois sistemas operacionais tiverem versões de software significativamente diferentes, um aplicativo poderá alterar seus arquivos de configuração de maneira inadequada para o outro sistema operacional. Portanto, mantenha arquivos de configuração separados para cada sistema operacional, até você se comprometer com um deles. (*) veja abaixo

  • Você não precisa criar uma segunda partição de troca. Você pode usar a mesma partição de troca para ambos os sistemas operacionais.

  • É claro que você precisa ter cuidado com quais partições você formata / instala. Então, faça um backup e anote seus IDs de partição e tamanhos (parted, p, q) antes de instalar um novo SO.

  • Para fazer dual boot entre os dois sistemas operacionais, você precisa do grub para detectar os dois. Na minha experiência, o grub sempre fez isso automaticamente. (Mas lilo costumava ser uma história diferente!)

  • Muitas vezes, é possível executar o software a partir de um sistema operacional enquanto você está no outro sistema operacional. Eu consegui usando sudo chroot /mnt/original_os , embora fosse um violino para configurada : tive que vincular a montagem /dev e /proc .

Meu registro foi de 4 sistemas operacionais Linux em uma máquina e um Windows XP. Eu costumava inicializar o Gentoo em velocidade e diversão, mas executava meu webserver e mailserver em um chroot para o sistema Debian confiável.

  

(*) Você pode configurar uma pasta base diferente para cada SO, editando /etc/passwd . Defina sua casa como /home/you/arch-test , em seguida, segmente a partição inicial compartilhada em /etc/fstab e reinicialize. Você pode ligar simbolicamente alguns dotfiles para serem compartilhados em ambos os sistemas operacionais, enquanto outros são específicos do sistema operacional.

    
por joeytwiddle 08.03.2018 / 03:22
3

Você basicamente tem três opções: virtualização (VirtualBox ou Docker), uma unidade flash inicializável (alternativa moderna a um live CD) ou dual boot a partir de uma partição. Escolher entre os três depende das suas necessidades, hardware e experiência. Algumas das outras respostas entram em mais detalhes sobre uma abordagem em particular, mas aqui está uma comparação de alto nível para fornecer uma estrutura para decidir entre elas.

1. Virtualização

Prós :

  • muito fácil de configurar
  • não afetará seu ambiente principal de desenvolvimento
  • você pode configurar facilmente quantos quiser, contanto que tenha espaço no disco rígido - até criar instantâneos antes de fazer grandes alterações e excluí-los quando terminar com eles

Contras :

  • requer hardware decente para executar dois ou mais sistemas operacionais simultaneamente
  • o desempenho é limitado pelos recursos alocados à VM, para que você não tenha uma ideia precisa de como a versão do SO que você está testando se compara ao seu sistema operacional principal
  • já que o hardware é virtualizado, você não terá um senso preciso de disponibilidade / compatibilidade do driver

2. Unidade flash inicializável

Prós :

  • moderadamente fácil de configurar
  • não afetará seu ambiente principal de desenvolvimento
  • desempenho geralmente é bom com uma unidade flash USB3, embora definitivamente haja alguma variação dependendo da qualidade da unidade flash (a USB2 será mais lenta - eu a evitaria para essa finalidade)
  • usa seu hardware real (além do dispositivo de armazenamento), para que você possa ver o desempenho dos drivers e outros itens
  • você pode facilmente configurar quantos desejar, contanto que tenha unidades flash suficientes (e você pode facilmente reformatá-las se quiser tentar outra coisa)

Contras :

  • requer ter um (ou mais) flash drives dedicados a esse propósito
  • o desempenho depende da qualidade da unidade flash usada

3. Inicialização dupla de uma partição

Prós :

  • oferece a melhor ideia de desempenho, compatibilidade de driver, etc., pois está sendo executado exatamente no mesmo hardware que seu sistema operacional principal
  • pode configurar vários de uma só vez, desde que você tenha o espaço no disco rígido (basta configurar uma partição separada para cada um deles)

Contras :

  • requer um pouco de know-how de baixo nível para configurar corretamente
  • mexer com partições de disco rígido e carregadores de inicialização sempre tem algum potencial para definir sua configuração atual (certifique-se de ter uma unidade flash inicializável ou um CD ao vivo à mão antes de começar)
por Sean the Bean 09.03.2018 / 17:19
2

QEMU

O QEMU é uma solução de virtualização que, teoricamente, resolve os requisitos desta questão para um sistema simples e barato.

Ele permite arrastar e soltar a inicialização de arquivos ISO do sistema operacional em um host Linux ou Windows.

Ele também permite a inicialização de discos rígidos Live USB, dentro de um sistema host e usa a persistência, se disponível.

Não há necessidade de criar um disco rígido virtual como no VBox.

O QEMU está disponível como um aplicativo de linha de comando para Linux, Windows e outros sistemas operacionais. Ele também está disponível como GUI e está incluído no MultiBootUSB versões do Linux e Windows link .

O QEMU também pode ser executado a partir do Virtual Machine Manager, que é mais rápido que o MBUSB, mas não é arrastado e solto.

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
sudo apt-get install virt-manager

Para testes a longo prazo do SO, um sistema instalado no VirtualBox é superior.

    
por C.S.Cameron 11.03.2018 / 01:14
2

A maneira mais simples e fácil é usar a virtualização. Você pode baixar o VirtualBox (é open source) e instalar qualquer sistema operacional. E, eu recomendo que você crie um snapshot antes de executar pela primeira vez, desta forma você pode retornar ao seu estado anterior se você cometer algum erro ao configurá-lo, alterar a configuração, etc.

Eu tenho usado e testo vários sistemas operacionais dessa maneira. É muito simples e rápido. Até mesmo, usei o MSDOS e o Windows 3.1 usando virtualização. Você pode instalar qualquer coisa, até mesmo o ChromeOS (com um pouco de trabalho) ou qualquer versão do Windows ou Linux, não importa o sabor da área de trabalho.

    
por Luis Arriojas 08.03.2018 / 16:30
1

Eu iniciei com sucesso instalações completas do Ubuntu a partir de drives USB nos últimos 3 anos. O USB 2.0 era um pouco mais lento do que um antigo 3G SATA HD (7200 rpm 16 MB cache), mas o USB 3.0 está dentro de alguns segundos de um SSD em uma interface 3G SATA.

    
por CSharpQuestions 08.03.2018 / 20:55