Je souhaite essayer les nouvelles versions du système d’exploitation au fur et à mesure de leur arrivée, telles que Ubuntu 17.04 ou Ubuntu 17.10 pour découvrir de nouvelles fonctionnalités. J'aime aussi 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 que je ne veux pas le faire sur ma machine principale.
Quelle série d'alternatives existe-t-il pour le faire sans risquer ma machine principale de développement? Je ne cherche pas un débat sur la meilleure façon, mais quelles alternatives sont disponibles.
Les alternatives USB sont bonnes, quand
Vous pouvez utiliser une clé USB avec au moins 2 Go d’espace disque et créer un
live Système Ubuntu dans la clé USB.
Démarrez à partir de la clé USB et sélectionnez "Try Ubuntu" dans le menu de démarrage (et quelque chose de similaire avec d'autres distributions Linux). Si vous sauvegardez 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
vous pouvez créer un
ou si vous avez/obtenez un clé USB rapide d'au moins 16 Go , vous pouvez créer un
installé système Ubuntu (comme installé dans un lecteur interne, mais dans une clé USB).
Un système installé sur 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 ordinateurs, si vous pouvez éviter les pilotes propriétaires, mais un système en direct persistant est plus portable.
Essayez Ubuntu (Kubuntu, Lubuntu, Xubuntu, ...) avant de l’installer
help.ubuntu.com/community/Installation/FromUSBStick#Notes_about_speed
La virtualisation est un moyen de tester de nouvelles versions et versions de système d’exploitation. Il ne nécessite pas d'espace supplémentaire pour un PC, un clavier, une vidéo, une souris ou des adaptateurs supplémentaires afin de faire fonctionner plusieurs ordinateurs avec un seul clavier, une seule vidéo ou une seule souris. Il ne nécessite qu'un seul PC et un logiciel de virtualisation.
Cela suppose que vous avez une machine avec un processeur multicœur capable de virtualisation et une quantité de mémoire raisonnable. Je recommanderais au moins 8 Go de mémoire avec 16 Go de mieux si vous en avez.
Si vous utilisez Ubuntu et souhaitez uniquement essayer les distributions Linux (je ne crois pas que Windows fonctionnera), vous pouvez utiliser le logiciel de virtualisation gratuit fourni avec Ubuntu: KVM ou Xen. Les deux fonctionnent correctement, sont GRATUITS et peuvent exécuter diverses distributions Linux. Cependant, les outils permettant de gérer les ordinateurs virtuels manquent quelque peu. Oracle dispose d'une version GRATUITE d'un outil de virtualisation appelé VirtualBox et, bien entendu, du produit commercial VMWare. VirtualBox et VMWare peuvent également exécuter Ubuntu sur une machine Windows si tel est votre bureau préféré.
En utilisant un gestionnaire VM, vous pourrez ajouter de nouvelles distributions au fur et à mesure de leur sortie, les tester, jouer avec les nouvelles fonctionnalités, puis les ignorer lorsque la nouvelle version paraîtra. Ils ne consomment que de l’espace disque lorsqu’ils ne fonctionnent pas, ils n’ont même pas besoin d’être mis au rebut, à moins que cela ne devienne serré. Avec un VM manager, il est facile d'équilibrer 5, 10 ou plus de distributions sur une machine, de pouvoir les démarrer et de les supprimer au besoin. Si vous avez la chance d’avoir un ordinateur de 32 ou 64 Go, vous pouvez même les exécuter tous en parallèle.
Comme alternative encore plus rapide and moins chère à réponse de sudodus , vous pouvez démarrer directement à partir d'une image de lecteur amorçable fichier au lieu d'un lecteur dédié (USB) .
Au moins pour les images ISO Ubuntu (et leurs dérivés comme Linux Mint), la recette suivante fonctionne. D'autres distributions peuvent nécessiter des ajustements supplémentaires.
Stocker la ou les images de lecteur de démarrage au format ISO1 quelque part sous forme de fichier sur vos lecteurs de stockage internes2.
Ajoutez un fichier “parties” Grub, e. g. 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
et le rendre exécutable.
Modifiez le chemin du fichier dans la ligne indiquée pour répondre à vos besoins. Vous pouvez ajouter plusieurs chemins et/ou modèles globaux Bash si vous le souhaitez.
Rendre le fichier exécutable:
Sudo chmod a+x /etc/grub.d/35_isofiles
Assurez-vous que le menu Grub est activé .
Mettez à jour la configuration de Grub:
Sudo update-grub
Redémarrez et sélectionnez l'entrée de menu Grub nouvellement ajoutée pour démarrer à partir du fichier image correspondant.
1 D'autres types de système de fichiers sont possibles mais peuvent nécessiter d'autres commandes Grub et un ajustement minutieux des paramètres d'amorçage.
2 Les systèmes de fichiers LVM, RAID et chiffrés devraient fonctionner grâce à la bibliothèque d’utilitaires de Grub, mais je ne les ai pas testés.
La virtualisation est de loin la plus simple.
Cependant, vous avez 2 cas d’utilisation distincts ici, qui auront des solutions différentes
Les distributions sont essentiellement déterminées par les applications empaquetées et l'environnement utilisateur (par exemple, SystemD
vs init
pour l'amorçage).
Si vous souhaitez "évaluer" qualitativement le UIX d'une autre distribution, je vous recommanderais une virtualisation complète dans laquelle vous installerez le système d'exploitation dans son intégralité et en évaluerez la convivialité. Ceci est couvert de manière adéquate dans d'autres réponses.
Si vous avez simplement besoin de l'environnement utilisateur pour les tests, lisez la suite.
Il est plus facile, moins coûteux et plus rapide d’utiliser la conteneurisation, une forme de virtualisation légère qui utilise le noyau pour créer des environnements en mode bac à sable.
Un conteneur partage les ressources du noyau avec l'hôte, mais possède par ailleurs son propre système de fichiers racine, son propre espace utilisateur, sa pile réseau, etc. Il peut être considéré, conceptuellement, comme un chroot
sur des stéroïdes. Cependant, étant donné que le noyau est partagé, la virtualisation est "mince", ce qui signifie que, dans la plupart des cas, elle s'exécute à la même vitesse que le système d'exploitation hôte.
Il existe un système de conteneur couramment utilisé appelé docker
name__. Docker a normalisé les images pour pratiquement chaque distribution Linux que vous souhaitez, et il fonctionne sous Windows (toutefois, les images Windows ne fonctionnent que sur Windows, les images Linux sur les deux). Il comporte des fonctionnalités utiles supplémentaires pour économiser de l'espace et des performances.
Il existe également des alternatives open source natives pour Linux telles que LXC
(qui est intégré au noyau!), Qui peuvent être utilisées à peu près de la même manière (mais avec davantage de configuration requise).
docker
name__# 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 les tests dans cet environnement de différentes manières.
"se connecter" et compiler dans l'environnement, exécuter des tests, etc. En supposant que vous soyez 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 comme unique
$ docker run -v "$PWD:/workdir" --rm my-builder make
Vous pouvez même passer 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 des 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 de la ligne de commande le rendent extrêmement attrayant pour les environnements de développement, de test et même de déploiement.
Je garde une partition séparée sur mon lecteur (20 Go minimum, plus si vous le pouvez).
Je peux installer sur cette partition tout système d'exploitation que je veux tester, puis le redémarrer.
Si tout fonctionne bien, je peux déprécier ma partition OS d'origine et éventuellement la réutiliser.
Mais si le nouveau système d'exploitation ne fonctionne pas pour moi (problèmes de pilote, logiciel indisponible), je peux simplement redémarrer dans mon ancien système d'exploitation et être reconnaissant. que je l'ai 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 pilotes.
Mais si vous vouliez seulement ressentir le nouveau système d'exploitation, l'une des autres solutions de virtualisation est probablement plus rapide, plus simple et plus sûre.
Je garde mon /home
sur une grande partition séparée, elle est donc indépendante des deux systèmes d'exploitation. (Ne reformatez pas accidentellement cette partition!)
Mais je vous recommande de ne pas utiliser une partition /home
partagée lors des tests. Si les versions de logiciel des deux systèmes d'exploitation sont très différentes, une application peut modifier ses fichiers de configuration de manière inappropriée pour 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 seconde 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 amorçage entre les deux systèmes d’exploitation, vous devez utiliser Grub pour les détecter. D'après mon expérience, grub a toujours fait cela automatiquement. (Mais lilo était une histoire différente!)
Il est souvent possible d’exécuter un logiciel à partir d’un système d’exploitation alors que vous êtes sur l’autre. J'ai réussi à utiliser Sudo chroot /mnt/original_os
, bien que ce fût n fiddle à configurer : Je devais monter-relier /dev
et /proc
.
Mon dossier était 4 systèmes d’exploitation Linux sur une machine et un système d'exploitation Windows XP. J'avais l'habitude de démarrer Gentoo pour la rapidité et le plaisir, mais exécuter mon serveur Web et mon serveur de courrier électronique dans un chroot vers le système d'exploitation Debian approuvé.
(*) Vous pouvez configurer un dossier personnel différent pour chaque système d'exploitation en éditant
/etc/passwd
. Définissez votre domicile sur/home/you/Arch-test
, puis ciblez la partition home partagée dans/etc/fstab
et 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 les autres être spécifiques à un système d'exploitation.
Vous avez en gros trois options: la virtualisation (VirtualBox ou Docker), un lecteur flash amorçable (alternative moderne à un CD live) ou un 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 donnent beaucoup plus de détails sur une approche particulière, mais voici une comparaison de haut niveau pour vous donner un cadre permettant de décider entre elles.
Pros:
inconvénients:
Pros:
inconvénients:
Pros:
inconvénients:
QEMU
QEMU est une solution de virtualisation qui résout théoriquement les exigences simples et peu coûteuses de cette question.
Il permet d’amorcer par glisser/déposer les fichiers iso du système d’exploitation dans un hôte Linux ou Windows.
Il permet également de démarrer des disques durs Live USB, au sein d’un système hôte et utilise la persistance, le cas échéant.
Il n’est pas nécessaire de créer un disque dur virtuel comme avec VBox.
QEMU est disponible en tant qu'application en ligne de commande pour Linux, Windows et d'autres systèmes d'exploitation. Il est également disponible en tant qu'interface graphique et est inclus avec MultiBootUSB versions Linux et Windows http://multibootusb.org/ .
QEMU peut également être exécuté à partir de Virtual Machine Manager, qui est plus rapide que MBUSB mais ne fait pas de glisser-déposer.
Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Sudo apt-get install virt-manager
Pour les tests de système d'exploitation à plus long terme, un système installé VirtualBox est supérieur.
Le moyen le plus simple et le 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 la première exécution, de cette manière, vous pourrez revenir à son état précédent si vous faites une erreur en la configurant, en modifiant la configuration, etc.
J'ai utilisé et testé plusieurs systèmes d'exploitation de cette manière. C'est très simple et rapide. Même, j'ai 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 version de bureau.
J'ai réussi à démarrer des installations complètes d'Ubuntu à partir de clés USB au cours des 3 dernières années. L'USB 2.0 était un peu plus lent qu'un ancien disque dur SATA 3G (cache de 7200 tpm, 16 Mo), mais l'USB 3.0 se situe à quelques secondes d'un SSD sur une interface SATA 3G.