Méthodes pour essayer de nouvelles versions de système d'exploitation sans vous y engager?


20

Je veux essayer de nouvelles versions de système d'exploitation dès leur arrivée, comme Ubuntu 17.04 ou Ubuntu 17.10 pour voir de nouvelles fonctionnalités. J'aime également regarder Kubuntu, CentOS ou d'autres distributions (Windows 11 à son arrivée?) - ou configurer des environnements de test en sachant que je peux les jeter et ne pas vouloir le faire sur ma machine principale.

Quel ensemble d'alternatives existe-t-il pour faire cela sans risquer ma machine de développement principale? Je ne cherche pas un débat sur la MEILLEURE manière, mais sur les alternatives disponibles.


2
Je le fais surtout avec des machines virtuelles. Voir cette question pour un guide sur la configuration incroyablement rapide et facile à l'aide de VirtualBox que vous voudrez peut-être lier à votre réponse.
Takkat

1
Personnellement, j'utilise dockerparce que votre conteneur est défini avec un script facile à comprendre. Vous avez un contrôle complet sur l'image de base et ce que vous installez. Partage facile des fichiers et des périphériques hôtes, création de réseaux virtuels de conteneurs, exposition sélective de ports avec des arguments de ligne de commande, vous pouvez envoyer des commandes directement au shell du conteneur et exécuter des applications dans le contexte du conteneur. Par exemple, vous pouvez essayer l'espace utilisateur de centos avec une ligne docker run -it centos /bin/bash
crasic

8
Les "CD live" étaient autrefois une grosse chose. De nos jours, ce serait une clé USB en direct.
user253751

1
Compte tenu du modèle de mise à jour de Windows 10, il est peu probable qu'il y ait un "Windows 11". Même s'il y a une reconstruction majeure du système d'exploitation, Microsoft l'appellera probablement autre chose.
Arrêtez de nuire à Monica

3
Vous avez essentiellement trois options: une machine virtuelle (VirtualBox ou Docker), un lecteur flash amorçable (alternative moderne à un CD live) ou un double démarrage. Le choix entre les trois dépend de vos besoins, de votre matériel et de votre expérience.
Sean the Bean

Réponses:


26

Alternatives USB

Les alternatives USB sont bonnes lorsque

  • vous voulez tester les performances (sur du métal nu)
  • l'ordinateur n'est pas assez puissant pour bien faire fonctionner un système dans une machine virtuelle

Vous pouvez utiliser une clé USB avec au moins 2 Go d'espace disque et créer un

  • vivresystème Ubuntu en dans la clé USB.

    Démarrez à partir de la clé USB et sélectionnez `` Essayer Ubuntu '' dans le menu de démarrage (et quelque chose de similaire avec d'autres distributions Linux). Si vous enregistrez des données, installez des programmes ou modifiez le système dans un lecteur actif (en direct uniquement), il ne survivra pas à l'arrêt ou au redémarrage.


Si tu veux

  • essayez Ubuntu d'une manière plus avancée ou
  • enregistrer des données, installer des programmes ou modifier le système et
  • vous avez / obtenez une clé USB rapide d'au moins 4 Go,

vous pouvez créer un

  • système Ubuntu en direct persistant

ou si vous avez / obtenez une clé USB rapide d'au moins 16 Go , vous pouvez créer un

  • système Ubuntu installé (comme installé dans un lecteur interne, mais dans une clé USB).

    Un système installé dans une clé USB est stable et flexible, peut être tenu à jour et modifié sans aucune limite. De cette façon, c'est mieux qu'un système live persistant. Il est portable entre les ordinateurs, si vous pouvez éviter les pilotes propriétaires, mais un système live persistant est plus portable.

Liens



2
Étant donné que l'affiche dispose d'une installation Ubuntu (?) En cours d'exécution, le démarrage de l'ISO directement à partir du disque dur est également une possibilité. Configurer des liens vers la (nouvelle) ISO, utiliser le lien dans grub (ajouter à votre /etc/grub.d/40_custom) et avoir une partition FAT avec des répertoires pour les fichiers casper-rw (PERSISTENCE_PATH pour identifier celui à utiliser ). Ajoutez "toram" et les performances de démarrage ISO sont équivalentes (ou même plus rapides) qu'une installation de disque dur normale.
ubfan1

2
Oui, l'alternative de @ ubfan1 est bonne, je l'ai utilisée plusieurs fois. Peut-être est-il un peu plus compliqué à configurer qu'à créer une clé USB, mais une fois que vous l'avez, cela peut bien fonctionner :-) Voir ce lien, help.ubuntu.com/community/Grub2/…
sudodus

2
L'installation sur un périphérique de stockage séparé est le meilleur moyen lorsque vous souhaitez tester le comportement réel de la nouvelle version du système d'exploitation avec votre matériel.
pa4080

C'est absolument la bonne réponse. Essayer de tester un système d'exploitation à travers des couches de virtualisation (ou Docker, Dieu ne plaise) sur votre système d'exploitation actuel, c'est comme prendre une nouvelle voiture pour un "essai routier" en la remorquant sur une remorque derrière votre voiture actuelle: bien sûr, vous aurez un peu la chance de voir à quoi il ressemble , mais il ne vous donnera simplement aucune idée de la performance.
le

Avec USB3, cela fonctionnera probablement bien. Si vous avez une ancienne machine avec USB2, le chargement prendra probablement beaucoup plus de temps.
Sean the Bean

15

La virtualisation est un moyen de tester de nouvelles distributions et versions de système d'exploitation. Il ne nécessite pas d'espace pour un PC / clavier / vidéo / souris supplémentaire ou des adaptateurs pour exécuter plusieurs PC avec un seul clavier, vidéo, souris. Il ne nécessite qu'un seul PC et certains logiciels de virtualisation.

Cela suppose que vous avez une machine avec un processeur multicœur capable de virtualisation et une quantité raisonnable de mémoire. Je recommanderais au moins 8 Go de mémoire avec 16 Go de mieux si vous l'avez.

Si vous utilisez Ubuntu et que vous souhaitez uniquement essayer les distributions Linux (je ne pense pas que Windows fonctionnera), vous pouvez utiliser le logiciel de virtualisation gratuit fourni dans Ubuntu: KVM ou Xen. Les deux fonctionnent bien, sont GRATUITS et peuvent exécuter diverses distributions Linux. Cependant, les outils pour gérer les machines virtuelles font quelque peu défaut. Oracle a une version GRATUITE d'un outil de virtualisation appelé VirtualBox et bien sûr il y a toujours le produit commercial VMWare. VirtualBox et VMWare peuvent également exécuter Ubuntu sur une machine Windows si c'est votre bureau de choix.

En utilisant un gestionnaire de machine virtuelle, vous pourrez ajouter de nouvelles distributions à leur sortie, les tester, jouer avec les nouvelles fonctionnalités, puis les supprimer lorsque la nouvelle version apparaîtra. Ils ne mangent que de l'espace disque lorsqu'ils ne sont pas en cours d'exécution, ils n'ont donc même pas besoin d'être jetés à moins que cela ne devienne serré. Avec un gestionnaire de machine virtuelle, il est facile d'équilibrer 5, 10 distributions ou plus sur une machine et de pouvoir les démarrer et les supprimer au besoin. Si vous avez la chance d'avoir une machine de 32 Go ou 64 Go, vous pouvez même les exécuter toutes en parallèle.


2
Windows peut être exécuté à l'intérieur d'une machine virtuelle; cependant, les nouvelles versions sont si lourdes que vous auriez besoin d'un multicœur assez rapide pour qu'il soit utilisable.
ravery

Un environnement virtuel dépend également de la prise en charge de ce système d'exploitation. Les nouvelles versions de Windows nécessiteront des modifications du logiciel de la machine virtuelle pour le prendre en charge, ce qui pourrait être un léger revers. Bien que je m'attende à ce qu'ils se préparent pour de nouvelles versions ;-)
Rinzwind

oui - pour les tests, nous devons absolument mettre à niveau la solution de virtualisation vers la toute dernière version afin de pouvoir démarrer les dernières versions du système d'exploitation.
Takkat

2
KVM fonctionne très bien avec Windows 10 et 7. Si par Xen vous faites référence à Citrics Xen Server, cela exécute également Windows 10 et 7.
Robby1212

1
@EricDuminil Ils étaient à peu près aussi utilisables que Windows en général. :)
Michael Hampton

12

Comme alternative encore plus rapide et moins chère à la réponse de sudodus, vous pouvez démarrer directement à partir d'un fichier image de lecteur amorçable au lieu d'un lecteur dédié (USB).

Au moins pour les images ISO Ubuntu (et les dérivés comme Linux Mint), la recette suivante fonctionne. D'autres distributions peuvent nécessiter des ajustements supplémentaires.

  1. Stockez les images du lecteur de démarrage au format ISO 1 quelque part sous forme de fichier sur votre ou vos disques de stockage interne 2 .

  2. Ajoutez un fichier «pièces» Grub, par exemple 35_isofiles, avec le contenu

    #!/bin/bash
    set -e
    . /usr/share/grub/grub-mkconfig_lib
    shopt -s nullglob
    
    make_iso_menuentry()
    {
        local isodevice="$(exec "$grub_probe" -t device -- "$1")" || return $?
        local isogrub="$(make_system_path_relative_to_its_root "$1")"
        local label="${2:-"$1"}"
    
        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" "$1" >&2
    }
    
    
    for iso in /path/to/image.iso # <-- set path to your ISO image here
    do
        make_iso_menuentry "$iso" "${iso##*/}" || true
    done

    à /etc/grub.d le rendre exécutable.

    Modifiez le chemin du fichier dans la ligne indiquée pour correspondre à vos besoins. Vous pouvez ajouter plusieurs chemins et / ou modèles de glob Bash si vous le souhaitez.

  3. Rendez le fichier exécutable:

    sudo chmod a+x /etc/grub.d/35_isofiles
    
  4. Assurez-vous que le menu Grub est activé .

  5. Mettez à jour la configuration de Grub:

    sudo update-grub
    
  6. Redémarrez et sélectionnez l'entrée de menu Grub nouvellement ajoutée pour démarrer à partir du fichier image respectif.


1 D'autres types de système de fichiers sont possibles mais peuvent nécessiter d'autres commandes Grub et un ajustement des paramètres de démarrage.

2 Les systèmes de fichiers LVM, RAID et cryptés devraient fonctionner grâce à la bibliothèque d'utilitaires de Grub mais je ne les ai pas testés.


2
Hou la la ! quel script! J'ai fait la même chose manuellement en ajoutant simplement une entrée dans /etc/grub.d/40_custom et en trouvant les bons paramètres; Pas si difficile étant donné l'aide que j'ai eue sur wiki.archlinux.org/index.php/…
solsTiCe

9

La virtualisation est de loin la plus simple.

Cependant, vous avez ici 2 cas d'utilisation distincts, qui auront différentes solutions

1. Essayez de nouvelles distributions

Les distributions sont essentiellement déterminées par les applications packagées et l'environnement de l'espace utilisateur (par exemple, SystemDvs initpour le démarrage)

Si vous voulez "évaluer" l'UIX d'une distribution différente, qualitativement, alors je recommanderais la virtualisation complète où vous installez le système d'exploitation dans son intégralité et évaluer sa convivialité. Ceci est couvert de manière adéquate dans d'autres réponses.

Si vous avez simplement besoin de l'environnement de l'espace utilisateur pour les tests, lisez la suite.

2. Test et "instances à jeter" dans différents environnements

Il est plus facile, moins cher et plus rapide d'utiliser la conteneurisation, une forme de virtualisation légère qui utilise le noyau pour créer des environnements en bac à sable.

Un conteneur partage les ressources du noyau avec l'hôte, mais a par ailleurs son propre système de fichiers racine, espace utilisateur, pile réseau, etc. Il peut être considéré, conceptuellement, comme un chrooton stéroïdes. Cependant, comme le noyau est partagé, la virtualisation est "mince", ce qui signifie qu'à des fins pratiques, il s'exécute à la même vitesse que le système d'exploitation hôte.

Il existe un système de conteneurs couramment utilisé appelé docker. Docker a des images standardisées pour pratiquement toutes les distributions Linux que vous souhaitez, et il fonctionne sur Windows (cependant, les images Windows ne fonctionnent que sur Windows, les images Linux fonctionnent sur les deux). Il a des fonctionnalités supplémentaires utiles pour économiser de l'espace et des performances.

Il existe également des alternatives natives open source pour Linux comme LXC(qui est intégré au noyau!), Qui peuvent être utilisées à peu près la même chose (mais avec plus de configuration requise).

Exemple simplifié d'un environnement de test ou de construction dans docker

# Dockerfile

FROM ubuntu:17.10

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

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

Ensuite, à partir de la ligne de commande, compilez votre projet ou vos tests dans cet environnement de différentes manières

"connectez-vous" et compilez dans l'environnement, exécutez des tests, etc. En supposant que vous êtes dans le répertoire source de votre projet

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

Utiliser en une seule fois

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

Vous pouvez même transmettre des variables d'environnement

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

Ou démarrez une instance persistante et copiez-y explicitement les fichiers

$ 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

Il existe littéralement des centaines d'autres modèles d'utilisation, cependant, la définition d'image de type script, les images extensibles et l'utilisation en ligne de commande le rendent extrêmement attrayant pour les environnements de développement, de test et même de déploiement.


1
Si vous voulez des conteneurs système, vous devriez probablement regarder LXD (beaucoup plus simple que les outils d'espace utilisateur LXC traditionnels) plutôt que Docker (qui est plus conçu pour les conteneurs d'applications). Cela dit, les deux s'appuient sur le support du noyau LXC / cgroups. Voir aussi, unix.stackexchange.com/questions/254956/…
Bob

3

Je garde une partition séparée sur mon disque (recommande 20 Go minimum, plus si vous le pouvez).

Je peux installer sur cette partition tout système d'exploitation que je veux tester, puis redémarrer dessus.

Si tout fonctionne bien, je peux déprécier ma partition de système d'exploitation d'origine et éventuellement la réutiliser.

Mais si le nouveau système d'exploitation ne fonctionne pas pour moi (problèmes de pilotes, logiciels indisponibles), je peux simplement redémarrer dans mon ancien système d'exploitation et être reconnaissant de l'avoir encore!

Remarques:

  • De cette façon, vous pouvez vraiment tester le nouveau système d'exploitation sur votre matériel, afin de pouvoir détecter les problèmes de pilote.

  • Mais si vous vouliez seulement découvrir comment le nouveau système d'exploitation se sent, l'une des autres solutions de virtualisation est probablement plus rapide, plus facile et plus sûre pour vous.

  • Je garde mon /homesur une grande partition séparée, il est donc indépendant des deux systèmes d'exploitation. (Ne reformatez pas accidentellement cette partition!)

  • Mais je vous recommande de ne pas utiliser de /homepartition partagée lors des tests. Si les deux systèmes d'exploitation ont des versions logicielles sensiblement différentes, une application peut modifier ses fichiers de configuration d'une manière qui ne convient pas à l'autre système d'exploitation. Conservez donc des fichiers de configuration distincts pour chaque système d'exploitation jusqu'à ce que vous vous engagiez dans l'un d'eux. (*) voir ci-dessous

  • Vous n'avez pas besoin de créer une deuxième partition de swap. Vous pouvez utiliser la même partition de swap pour les deux systèmes d'exploitation.

  • Bien sûr, vous devez faire attention aux partitions sur lesquelles vous formatez / installez. Faites donc une sauvegarde et notez vos identifiants et tailles de partition (parted, p, q), avant d'installer un nouveau système d'exploitation.

  • Pour effectuer un double démarrage entre les deux systèmes d'exploitation, vous avez besoin de grub pour détecter les deux. D'après mon expérience, grub l'a toujours fait automatiquement. (Mais lilo était une histoire différente!)

  • Il est souvent possible d'exécuter des logiciels à partir d'un système d'exploitation pendant que vous êtes sur l'autre système d'exploitation. J'ai réussi à utiliser ça sudo chroot /mnt/original_os, même si c'était un violon à mettre en place : je devais lier-monter /devet/proc .

Mon record était de 4 OS Linux sur une seule machine et un Windows XP. J'avais l'habitude de démarrer dans Gentoo pour la vitesse et le plaisir, mais je lance mon serveur Web et mon serveur de messagerie en chroot vers le système d'exploitation Debian de confiance.

(*) Vous pouvez configurer un dossier d'accueil différent pour chaque système d'exploitation, en le modifiant /etc/passwd. Configurez votre domicile pour /home/you/arch-testcibler la partition domestique partagée /etc/fstabet redémarrez. Vous pouvez créer un lien symbolique entre certains fichiers de points à partager entre les deux systèmes d'exploitation, tout en laissant d'autres être spécifiques au système d'exploitation.


1
Besoin de vraiment faire confiance à leurs scripts d'installation .....
mckenzm

Oui, cette méthode comporte plus de risques. Si vous êtes vraiment une personne prudente, vous pouvez essayer d'abord la virtualisation, puis une installation de partition, et abandonner votre installation d'origine uniquement si cela fonctionne.
joeytwiddle

Je ne referais plus jamais ça. Une fois, j'ai rencontré un bogue apparemment obscur qui a détruit toutes les partitions cryptées, même celles qui ne faisaient pas partie de l'installation demandée. AFAIK ce bug n'a pas été corrigé.
Michael Hampton

3

Vous avez essentiellement trois options: la virtualisation (VirtualBox ou Docker), un lecteur flash amorçable (alternative moderne à un CD live) ou le double démarrage à partir d'une partition. Le choix entre les trois dépend de vos besoins, de votre matériel et de votre expérience. Certaines des autres réponses entrent dans beaucoup plus de détails sur une approche particulière, mais voici une comparaison de haut niveau pour vous donner un cadre pour décider entre elles.

1. Virtualisation

Avantages :

  • assez facile à installer
  • n'affectera pas votre environnement de développement principal
  • vous pouvez facilement en configurer autant que vous le souhaitez, tant que vous disposez de l'espace sur le disque dur - même créer des instantanés avant d'apporter des modifications importantes, et supprimez-les simplement lorsque vous avez terminé

Inconvénients :

  • nécessite un matériel décent pour exécuter deux systèmes d'exploitation ou plus simultanément
  • les performances sont limitées par les ressources allouées à la machine virtuelle, vous n'aurez donc pas vraiment une idée précise de la façon dont la version du système d'exploitation que vous testez se compare à votre système d'exploitation principal
  • comme le matériel est entièrement virtualisé, vous n'aurez pas non plus une idée précise de la disponibilité / compatibilité des pilotes

2. Lecteur flash amorçable

Avantages :

  • modérément facile à installer
  • n'affectera pas votre environnement de développement principal
  • les performances sont généralement bonnes avec un lecteur flash USB3, bien qu'il y ait certainement des variations en fonction de la qualité du lecteur flash (USB2 sera plus lent - je l'éviterais à cet effet)
  • utilise votre matériel réel (autre que le périphérique de stockage), vous pouvez donc voir à quel point il fonctionne avec les pilotes et ainsi de suite
  • vous pouvez facilement en configurer autant que vous le souhaitez, tant que vous avez suffisamment de lecteurs flash (et vous pouvez facilement les reformater si vous voulez essayer autre chose)

Inconvénients :

  • nécessite d'avoir un (ou plusieurs) lecteurs flash dédiés à cet effet
  • les performances dépendent de la qualité du lecteur flash que vous utilisez

3. Double démarrage à partir d'une partition

Avantages :

  • vous donne la meilleure idée des performances, de la compatibilité des pilotes, etc., car il fonctionne sur le même matériel que votre système d'exploitation principal
  • peut configurer plusieurs à la fois, tant que vous disposez de l'espace sur le disque dur (il vous suffit de configurer une partition distincte pour chacun)

Inconvénients :

  • nécessite un certain savoir-faire de bas niveau pour une configuration correcte
  • jouer avec les partitions du disque dur et les chargeurs de démarrage a toujours le potentiel de falsifier votre configuration actuelle (assurez-vous d'avoir un lecteur flash amorçable ou un CD live à portée de main avant de commencer)

Si vous divisez l'alternative Docker comme distincte de la virtualisation dans votre message, je serais prêt à la marquer comme la réponse qui couvre toutes les alternatives. À mon humble avis, je pense que les conteneurs ne sont pas une véritable virtualisation en raison de l'absence de véritables initsystèmes complets et de noyaux complets. Les conteneurs (docker, LXC, etc.) sont plus légers sur les ressources par rapport à la virtualisation complète (etc) ...
Ted Cahall

2

QEMU

QEMU est une solution de virtualisation qui résout théoriquement les exigences de cette question en termes de coût et de simplicité.

Il permet un démarrage par glisser-déposer des fichiers iso du système d'exploitation dans un hôte Linux ou Windows.

Il permet également de démarrer des disques durs USB Live, au sein d'un système hôte et utilise la persistance si disponible.

Il n'est pas nécessaire de créer un disque dur virtuel comme avec VBox.

QEMU est disponible en tant qu'application de ligne de commande pour Linux, Windows et autres systèmes d'exploitation. Il est également disponible sous forme d'interface graphique et est inclus avec les versions MultiBootUSB Linux et Windows http://multibootusb.org/ .

QEMU

QEMU peut également être exécuté à partir de Virtual Machine Manager, qui est plus rapide que MBUSB mais n'est pas glisser-déposer.

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

Pour des tests de système d'exploitation à plus long terme, un système installé VirtualBox est supérieur.


Merci! Je n'avais pas entendu parler de cette option. Je vais y jeter un œil.
Ted Cahall

2

La manière la plus simple et la plus simple consiste à utiliser la virtualisation. Vous pouvez télécharger VirtualBox (c'est open source) et installer n'importe quel système d'exploitation. Et, je vous recommande de créer un instantané avant de l'exécuter pour la première fois, de cette façon, vous pouvez revenir à son état précédent si vous faites une erreur en le configurant, en modifiant la configuration, etc.

J'ai utilisé et testé plusieurs OS de cette manière. C'est très simple et rapide. J'ai même utilisé MSDOS et Windows 3.1 en utilisant la virtualisation. Vous pouvez installer n'importe quoi, même ChromeOS (avec un peu de travail) ou n'importe quelle version de Windows ou Linux, peu importe sa saveur de bureau.


1

J'ai démarré avec succès des installations complètes d'Ubuntu à partir de lecteurs USB au cours des 3 dernières années. L'USB 2.0 était un peu plus lent qu'un ancien 3G SATA HD (7200 tr / min, 16 Mo de cache), mais l'USB 3.0 se trouve à quelques secondes d'un SSD sur une interface 3G SATA.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.