Metodi per provare nuove versioni del sistema operativo senza impegnarsi a farlo?

19

Voglio provare nuove versioni del sistema operativo al loro arrivo, come Ubuntu 17.04 o Ubuntu 17.10 per vedere nuove funzionalità. Mi piace anche guardare Kubuntu, CentOS o altre distro (Windows 11 quando arriva?) - o configurare ambienti di test sapendo che potrei cestinarli e non voglio farlo al mio core machine.

Quale serie di alternative ci sono per fare ciò senza rischiare la mia macchina di sviluppo principale? Non sto cercando un dibattito sul modo migliore, ma quali alternative sono disponibili.

    
posta Ted Cahall 07.03.2018 - 13:50

9 risposte

25

Alternative USB

Le alternative USB sono buone, quando

  • vuoi testare le prestazioni (su bare metal)
  • il computer non è abbastanza potente per eseguire correttamente un sistema in una macchina virtuale

Puoi utilizzare una chiavetta USB con almeno 2 GB di spazio su disco e creare un

  • live Sistema Ubuntu nella chiavetta.

    Avvia dalla chiavetta USB e seleziona 'Prova Ubuntu' nel menu di avvio (e qualcosa di simile con altre distribuzioni di Linux). Se salvi i dati, installa programmi o modifichi il sistema in un'unità live (solo live), non sopravviverà allo spegnimento o al riavvio.

Se vuoi

  • prova Ubuntu in un modo più avanzato o
  • salva i dati, installa programmi o modifica il sistema e
  • hai / ottieni una chiavetta USB veloce di almeno 4 GB,

puoi creare un

  • live persistente sistema Ubuntu

o se hai / ottieni una chiavetta USB veloce di almeno 16 GB , puoi creare un

  • installato sistema Ubuntu (come installato in un'unità interna, ma in una chiavetta USB).

    Un sistema installato in un'unità USB è stabile e flessibile, può essere tenuto aggiornato e ottimizzato senza limiti. In questo modo è meglio di un sistema live persistente. È portatile tra i computer, se puoi evitare i driver proprietari, ma un sistema live persistente è più portabile.

Link

risposta data sudodus 07.03.2018 - 15:48
15

Un modo per testare nuove distribuzioni e versioni del sistema operativo è con la virtualizzazione. Non richiede spazio per un PC / tastiera / video / mouse o adattatori aggiuntivi per l'esecuzione di più PC con un'unica tastiera, video, mouse. Richiede solo un singolo PC e alcuni software di virtualizzazione.

Questo presuppone che tu abbia una macchina con una CPU multi-core in grado di virtualizzare e una quantità ragionevole di memoria. Consiglierei almeno 8 GB di memoria con 16 GB meglio se ce l'hai.

Se stai usando Ubuntu e vuoi provare solo distribuzioni Linux (non credo che Windows funzioni), puoi usare il software di virtualizzazione gratuito incluso in Ubuntu: KVM o Xen. Entrambi funzionano bene, sono GRATUITI e possono gestire diverse distribuzioni Linux. Tuttavia, gli strumenti per gestire le VM sono in qualche modo carenti. Oracle ha una versione GRATUITA di uno strumento di virtualizzazione chiamato VirtualBox e ovviamente c'è sempre il prodotto commerciale VMWare. Sia VirtualBox che VMWare possono anche eseguire Ubuntu su un computer Windows, se questo è il desktop preferito.

Usando un gestore VM, sarai in grado di aggiungere nuove distribuzioni mentre escono, testarle, giocare con le nuove funzionalità e poi scartarle quando viene visualizzata la nuova versione. Mangiano spazio su disco solo quando non sono in esecuzione, quindi non hanno nemmeno bisogno di essere scartati a meno che non si restringano. Con un gestore VM, è facile bilanciare 5, 10 o più distro su una macchina ed essere in grado di avviarli e rimuoverli se necessario. Se sei abbastanza fortunato da avere una macchina da 32 GB o 64 GB, puoi persino eseguirli tutti in parallelo.

    
risposta data Ted Cahall 07.03.2018 - 13:50
12

Come alternativa e più economica alla risposta di sudodus ancora più veloce, puoi avviare direttamente da un'immagine di unità avviabile file invece di un'unità dedicata (USB).

Almeno per le immagini ISO di Ubuntu (e derivati ​​come Linux Mint) la seguente ricetta funziona. Altre distribuzioni potrebbero aver bisogno di ulteriori ritocchi.

  1. Memorizza le immagini delle unità di avvio nel formato ISO 1 da qualche parte come file sul / sui disco / i di memorizzazione interno 2 .

  2. Aggiungi un file "parti" di Grub, e. g. 35_isofiles , con il contenuto

    #!/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
    

    a /etc/grub.d e renderlo eseguibile.

    Modifica il percorso del file nella riga indicata in base alle tue esigenze. Puoi aggiungere più percorsi e / o modelli Bash glob se lo desideri.

  3. Rendi il file eseguibile:

    sudo chmod a+x /etc/grub.d/35_isofiles
    
  4. Assicurati che il menu Grub sia abilitato .

  5. Aggiorna la configurazione di Grub:

    sudo update-grub
    
  6. Riavvia e seleziona la voce di menu Grub appena aggiunta per avviare dal rispettivo file immagine.

1 Altri tipi di file system sono possibili ma potrebbero richiedere altri comandi Grub e il tweaking dei parametri di avvio.

2 LVM, RAID e file system crittografati dovrebbero funzionare grazie alla libreria di utility di Grub ma non li ho testati.

    
risposta data David Foerster 08.03.2018 - 01:23
9

La virtualizzazione è di gran lunga la più semplice.

Tuttavia qui ci sono 2 casi d'uso separati, che avranno diverse soluzioni

1. Prova le nuove distro

Le distribuzioni sono fondamentalmente determinate dalle applicazioni pacchettizzate e dall'ambiente dello spazio utente (ad esempio SystemD rispetto a init per l'avvio)

Se si desidera "valutare" l'UIX di una diversa distribuzione, qualitativamente, allora raccomanderei la virtualizzazione completa in cui si installa il sistema operativo nella sua interezza e si valuta la sua usabilità. Questo è coperto adeguatamente in altre risposte.

Se ti serve semplicemente l'ambiente userspace per i test, allora continua a leggere.

2. Test e "istanze throw-away" in ambienti diversi

È più facile, più economico e più veloce usare la containerizzazione, una forma di virtualizzazione leggera che utilizza il kernel per creare ambienti sandbox.

Un container condivide le risorse del kernel con l'host, ma ha il suo stesso file system di root, spazio utente, stack di rete, ecc. Può essere considerato concettualmente come chroot sugli steroidi. Tuttavia, poiché il kernel è condiviso, la virtualizzazione è "thin", il che significa che per la maggior parte degli scopi pratici funziona alla stessa velocità del sistema operativo host.

C'è un sistema contenitore comunemente usato chiamato docker . Docker ha immagini standardizzate per praticamente ogni distribuzione Linux che desideri, e funziona su Windows (tuttavia, le immagini di Windows funzionano solo su Windows, le immagini di Linux funzionano su entrambi). Ha funzioni utili aggiuntive per risparmiare spazio e prestazioni.

Esistono anche alternative open source native per linux come LXC (che è incorporato nel kernel!), che può essere usato per la stessa cosa (ma con più configurazioni richieste).

Esempio semplificato di un ambiente di test o di costruzione in docker

# Dockerfile

FROM ubuntu:17.10

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

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

Quindi dalla riga di comando, compila il tuo progetto oi test in quell'ambiente in vari modi

"login" e compilazione nell'ambiente, eseguire test ecc. Supponendo che tu sia nella directory di origine del tuo progetto

$ 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 :) "

Usa come unico

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

Puoi persino passare le variabili d'ambiente

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

O avvia un'istanza persistente e copia i file in esso esplicitamente

$ 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

Esistono letteralmente centinaia di altri modelli di utilizzo, tuttavia, la definizione di immagini simili a script, le immagini estendibili e l'utilizzo da riga di comando lo rendono estremamente interessante per ambienti di sviluppo, test e persino di distribuzione

    
risposta data crasic 07.03.2018 - 19:35
3

Conservo una partizione separata sul mio disco (consiglio almeno 20 GB, più se puoi).

Posso installare su quella partizione qualsiasi sistema operativo che voglio testare e quindi riavviare.

Se tutto funziona correttamente, posso deprecare la mia partizione del sistema operativo originale, e infine riutilizzarla.

Ma se il nuovo sistema operativo non funziona per me (problemi con il driver, software non disponibile), posso semplicemente riavviare il mio vecchio sistema operativo ed essere grato di averlo ancora!

Note:

  • In questo modo puoi davvero testare il nuovo sistema operativo sul tuo hardware, in modo da poter rilevare i problemi del driver.

  • Ma se vuoi solo provare come si sente il nuovo sistema operativo, una delle altre soluzioni di virtualizzazione è probabilmente più veloce, più facile e più sicura per te.

  • Tengo il mio /home su una grande partizione separata, quindi è indipendente dai due OS. (Non riformattare accidentalmente quella partizione!)

  • Ma ti raccomando non utilizzare una partizione /home condivisa durante il test. Se i due SO hanno versioni software significativamente differenti, un'applicazione potrebbe cambiare i suoi file di configurazione in un modo che non è adatto per l'altro SO. Quindi mantieni file di configurazione separati per ogni sistema operativo, fino a quando non ti impegni a uno di essi. (*) vedi sotto

  • Non è necessario creare una seconda partizione di swap. È possibile utilizzare la stessa partizione di scambio per entrambi i sistemi operativi.

  • Ovviamente devi fare attenzione su quali partizioni vuoi formattare / installare. Quindi fai un backup e annota i tuoi ID e dimensioni delle partizioni (parted, p, q), prima di installare un nuovo sistema operativo.

  • Per avviare il dual boot tra i due sistemi operativi, è necessario grub per rilevare entrambi. Nella mia esperienza, Grub lo ha sempre fatto automaticamente. (Ma Lilo era una storia diversa!)

  • Spesso è possibile eseguire software da un sistema operativo mentre ci si trova dall'altro sistema operativo. L'ho gestito utilizzando sudo chroot /mnt/original_os , anche se era un violino a configurazione : ho dovuto eseguire il binding di /dev e /proc .

Il mio record era 4 sistemi operativi Linux su un computer e un Windows XP. Ero abituato ad avviare Gentoo per velocità e divertimento, ma esegui il mio webserver e mailserver in un chroot al sistema Debian affidabile.

  

(*) È possibile configurare una cartella home diversa per ciascun sistema operativo, modificando /etc/passwd . Imposta la tua casa su /home/you/arch-test , quindi indirizza la partizione home condivisa in /etc/fstab e riavvia. Puoi collegare simbolicamente alcuni dotfile per essere condivisi su entrambi i sistemi operativi, lasciando gli altri specifici per il sistema operativo.

    
risposta data joeytwiddle 08.03.2018 - 03:22
3

In pratica hai tre opzioni: virtualizzazione (VirtualBox o Docker), un'unità flash avviabile (alternativa moderna a un CD live) o dual boot da una partizione. La scelta tra i tre dipende dalle esigenze, dall'hardware e dall'esperienza. Alcune delle altre risposte forniscono molti più dettagli su un particolare approccio, ma ecco un confronto ad alto livello per darti un quadro per decidere tra di loro.

1. Virtualizzazione

Pro :

  • piuttosto facile da configurare
  • non influenzerà il tuo ambiente di sviluppo principale
  • puoi facilmente configurarne quanti ne vuoi, purché tu abbia lo spazio sul disco rigido, persino creare istantanee prima di apportare modifiche importanti e semplicemente eliminarle quando hai finito con loro

Contro :

  • richiede hardware decente per eseguire simultaneamente due o più sistemi operativi
  • Le prestazioni di
  • sono limitate dalle risorse allocate alla VM, quindi non avrai un'idea precisa di come la versione del sistema operativo sottoposta a test sia comparabile al tuo sistema operativo principale
  • poiché l'hardware è tutto virtualizzato, non si otterrà un accurato senso di disponibilità / compatibilità dei driver

2. Unità flash avviabile

Pro :

  • moderatamente facile da configurare
  • non influenzerà il tuo ambiente di sviluppo principale
  • le prestazioni sono generalmente buone con una chiavetta USB3, anche se c'è sicuramente qualche variazione a seconda della qualità del flash drive (USB2 sarà più lento - lo eviterei a questo scopo)
  • utilizza il tuo hardware reale (diverso dal dispositivo di archiviazione), così puoi vedere quanto giochi con i driver e cosa no
  • puoi facilmente configurarne quanti ne vuoi, purché tu abbia abbastanza unità flash (e puoi facilmente riformattarle se vuoi provare qualcos'altro)

Contro :

  • richiede l'uso di una (o più) unità flash dedicate a questo scopo
  • le prestazioni dipendono dalla qualità del flash drive che usi

3. Dual boot da una partizione

Pro :

  • ti offre la migliore idea di prestazioni, compatibilità dei driver, ecc., poiché è in esecuzione sullo stesso identico hardware del tuo sistema operativo principale
  • puoi configurare più elementi contemporaneamente, purché tu abbia lo spazio sul disco rigido (devi solo impostare una partizione separata per ognuno)

Contro :

  • richiede un po 'di know-how di basso livello per l'impostazione corretta
  • fare confusione con le partizioni del disco rigido e i bootloader ha sempre il potenziale per collegare la configurazione corrente (assicurati di avere a portata di mano un'unità flash avviabile o un CD live prima di iniziare)
risposta data Sean the Bean 09.03.2018 - 17:19
2

QEMU

QEMU è una soluzione di virtualizzazione che risolve teoricamente i requisiti di questa domanda a basso costo e semplice.

Permette il drag and drop di avvio dei file ISO del sistema operativo all'interno di un host Linux o Windows.

Consente inoltre l'avvio di dischi rigidi USB Live, all'interno di un sistema host e utilizza la persistenza, se disponibile.

Non è necessario creare un disco rigido virtuale come con VBox.

QEMU è disponibile come app a linea di comando per Linux, Windows e altri sistemi operativi. È anche disponibile come GUI ed è incluso con MultiBootUSB versioni di Linux e Windows link .

QEMU può anche essere eseguito da Virtual Machine Manager, che è più veloce di MBUSB ma non è trascinabile.

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

Per i sistemi operativi a lungo termine testare un sistema installato VirtualBox è superiore.

    
risposta data C.S.Cameron 11.03.2018 - 01:14
2

Il modo più semplice e semplice è usare la virtualizzazione. Puoi scaricare VirtualBox (è open source) e installare qualsiasi sistema operativo. E, ti consiglio di creare uno snapshot prima di eseguirlo per la prima volta, in questo modo puoi tornare al suo stato precedente se commetti un errore impostandolo, modificando la configurazione, ecc.

Ho usato e testato diversi SO in questo modo. È molto semplice e veloce Anche, ho usato MSDOS e Windows 3.1 usando la virtualizzazione. Puoi installare qualsiasi cosa, anche ChromeOS (con un po 'di lavoro) o qualsiasi versione di Windows o Linux, non importa il suo sapore desktop.

    
risposta data Luis Arriojas 08.03.2018 - 16:30
1

Ho avviato con successo le installazioni complete di Ubuntu da unità USB negli ultimi 3 anni. USB 2.0 era un po 'più lento di un vecchio 3G SATA HD (7200 rpm 16 MB di cache), ma USB 3.0 è in pochi secondi di un SSD su un'interfaccia 3G SATA.

    
risposta data CSharpQuestions 08.03.2018 - 20:55

Leggi altre domande sui tag