Maison  >  Article  >  Tutoriel système  >  Guide de configuration et d'installation des systèmes d'exploitation Windows dans KVM pour Ubuntu

Guide de configuration et d'installation des systèmes d'exploitation Windows dans KVM pour Ubuntu

王林
王林avant
2023-12-31 09:57:461423parcourir

Guide de configuration et dinstallation des systèmes dexploitation Windows dans KVM pour Ubuntu

Pourquoi s'embêter avec la machine virtuelle KVM

En raison des affaires de l'entreprise récemment, je n'ai pas beaucoup de temps pour écrire, donc je vais juste écrire un article technique pour compenser.

Le truc est comme ça, notre société a une petite chose qui est développée sur la base d'un système embarqué et n'appartient pas à la plateforme Android ou iOS. Eh bien, qu'est-ce que cela signifie ? Cela signifie que le langage utilisé pour développer cette petite chose est le langage C, et non Java, Objective-C ou Swift. Nous avons donc besoin d’un Cross Compiler, également appelé environnement de compilation croisée, pour compiler ce code.

En fait, l'application iOS compilée par Xcode appartient également à la catégorie de la compilation croisée.

Cependant, cet environnement de compilation croisée n'est disponible que pour la plateforme Windows ! En fait, il semble qu'en dehors de GCC, les environnements de compilation croisée les plus utiles soient ceux sous Windows. On estime que de nombreux étudiants qui jouent aux systèmes embarqués devraient savoir que les séries Keil et IAR sont désormais couramment utilisées dans l'industrie. Malheureusement, les deux sont spécifiques à Windows et il n'existe pas de versions macOS ou Linux.

Pourquoi Windows me rend-il si mécontent ? Parce que généralement, pour mieux améliorer l'efficacité du travail, sauf lorsque les logiciels d'application industriels que nous devons utiliser doivent fonctionner sous Windows, nous utilisons uniquement Mac au lieu de Windows. Donc, nous n’avons fondamentalement pas d’hôtes Windows inactifs et riches, non ! Il n’existe pas du tout de « fondamentalement non ».

Et côté serveur, ne me dites rien sur Windows Server. En tant qu'utilisateur fou de macOS et Ubuntu, il m'est impossible d'exécuter un serveur Windows sur Bare metal. Nous exécutons uniquement Linux sur le serveur et ne nous intéressons à rien d'autre.

Alors la question est, nous avons un système de compilation automatisé, également connu sous le nom de système CI (Intégration continue), utilisant le bucket de la famille Atlassian : Bitbucket, Bamboo, JIRA et Confluence, etc., tous fonctionnant sur la plateforme Linux Docker conteneur de virtualisation .

Maintenant, nous souhaitons automatiser le compilateur pour cette petite chose, afin de mieux libérer la main-d'œuvre et de faciliter le suivi et la gestion du contenu de chaque version à l'avenir. Le premier problème à résoudre est le suivant : nous n’avons pas de serveur Windows.

Puisque la virtualisation est si populaire maintenant, utilisons le serveur Ubuntu existant pour virtualiser un Windows. D'accord, c'est parti !

Qu'est-ce que KVM

Le nom complet de KVM est : Kernel-based Virtual Machine. En une phrase simple, il s'agit d'un système de gestion de virtualisation basé sur le noyau Linux.

Cette fonctionnalité est intégrée depuis la version 2.6.20 du noyau Linux. Comprenez simplement que Docker est une virtualisation au niveau de la couche application, tandis que KVM est une virtualisation au niveau de la couche système.

La différence est que le contenu de la virtualisation Docker doit partager le noyau avec l'hôte, ce qui signifie qu'il ne peut exécuter que des systèmes de type Linux.

KVM virtualise l'intégralité de l'hôte, afin qu'il puisse installer différents systèmes d'exploitation et ne se limite pas à Linux lui-même. Quand j'aurai une crise plus tard, je verrai si je peux virtualiser macOS sur Ubuntu. De cette façon, il n'est pas nécessaire d'obtenir un hôte Mac distinct pour compiler automatiquement l'application iOS.

Installer KVM

J'utilise ici la version Ubuntu 16.04 LTS Compte tenu de l'utilisation à long terme et de la stabilité, je choisis essentiellement la version LTS. Les autres versions ne sont pas trop différentes, alors référez-vous simplement à elle.

La première étape consiste à installer les fichiers du package liés à KVM. Comme mon serveur est entièrement en ligne de commande et que le bureau X n'est pas installé, j'ai ajouté le paramètre --no-install-recommends. Sinon, il installera des packages comme virt-viewer, qui contiennent X11 et de nombreuses bibliothèques graphiques parmi leurs dépendances, qui ne sont pas nécessaires. Mais si vous activez le système de bureau, vous n'avez pas besoin d'ajouter ce paramètre.

$ sudo apt-get install --no-install-recommends qemu-kvm qemu-utils libvirt-bin virtinst cpu-checker

Vérifions si tout va bien

$kvm-ok

INFO : /dev/kvm existe

L'accélération KVM peut être utilisée

Très bien, tout se passe bien, prenons un autre réseau de ponts. En fait, ce n’est pas nécessaire, cela dépend de votre scénario d’utilisation.

KVM créera lui-même un réseau de pont virbr0, mais il s'agit d'un réseau NAT et il n'y a aucun moyen de communiquer avec d'autres hôtes du LAN, alors ne soyez pas paresseux et construisez vous-même un réseau de pont.

La configuration de référence est la suivante :

$ cat /etc/network/interfaces

# Ce fichier décrit les interfaces réseau disponibles sur votre système

# et comment les activer. Pour plus d'informations, voir interfaces(5).

source /etc/network/interfaces.d/*

# L'interface réseau de bouclage

auto-lo

bouclage iface lo inet

# L'interface réseau pontée

auto br0

iface br0 inet statique

adresse 1.2.3.4

masque réseau 255.255.255.0

passerelle 1.2.3.1

serveurs de noms DNS 1.2.3.1

bridge_ports enp9s0

bridge_stop off

bridge_fd 0

bridge_maxwait 0

Redémarrez le réseau et vérifiez l'état du pont :

$ sudo systemctl redémarrer le réseau

$ sudo brctl show

nom du pont identifiant du pont interfaces compatibles STP

.BR0 8000.F079593874D9 Non ENP9S0

virbr0 8000.525400087ef2 oui virbr0-nic

OK, tout va bien et vous pouvez commencer à créer l'hôte virtuel.

Créer un hôte virtuel

KVM n'a terminé que la première étape, nous devons encore créer un hôte virtuel avant de pouvoir continuer.

Avant de commencer, nous devons préparer quelques choses :

1.Image d'installation de Windows

2.Virtio ISO et image de disquette

3.Client VNC (inclus avec macOS)

J'utilise ici la version Virtio 0.1.126-2. La version du système d'exploitation est : Ubuntu 16.04.1 LTS.

Tout est prêt, utilisez la commande virt-install pour vous aider à créer la machine virtuelle :

virt-install

--nom win10

--mémoire 2048

--sockets vcpus = 1, cœurs = 1, threads = 2

--cdrom=/path/to/windows_10.iso

--os-variant=win8.1

--disk /path/to/win10/win10.qcow2,bus=virtio,size=40

--disk /path/to/virtio/virtio-win-0.1.126_amd64.vfd,device=floppy

--network bridge=br0,model=virtio

--graphiques vnc, mot de passe = Mot de passe0rd, port = 5910

--hvm

--kvm de type virt

En gros, toutes les informations de configuration sont ci-dessus. La configuration de la machine d'information virtuelle est la suivante :

Mémoire 2G

1 CPU, 1 cœur, 2 threads

1 CDROM (CD d'installation Windows)

Disque dur 40G (disque système)

1 lecteur de disquette (pilote Virtio)

Ouvrez un bureau distant VNC sur le port 5910

Si vous avez saisi la commande correctement, vous devriez recevoir un retour similaire à :

Démarrage de l'installation...

Création d'un domaine...

L'installation du domaine est toujours en cours. En attente de la fin de l'installation.

Pour faire simple, la machine virtuelle a été créée, mais comme il n'y a pas d'interface graphique, il n'y a aucun moyen de procéder. Une fois que VNC est connecté, nous pouvons continuer. Cette invite n'apparaîtra qu'une fois. Une fois le système installé, cette situation d'attente de démarrage ne se produira pas.

Installer Windows 10

Bien que lorsque nous avons créé la machine virtuelle, nous ayons spécifié l'utilisation du port 5910 pour fournir un bureau à distance VNC. Cependant, ce port n'est pas accessible directement car il est lié par défaut à 127.0.0.1, ce qui signifie qu'il n'est accessible que localement. Nous devons d'abord mapper le port local distant au port local.

ssh -L 5910:127.0.0.1:5910 serveur

Puis sous macOS, ⌘ + Espace pour appeler Spotlight, puis saisissez :

vnc://127.0.0.1:5910

Entrez le mot de passe dans la fenêtre pop-up : Passw0rd

Ensuite, vous pouvez installer le système Windows. Si le disque dur ne peut pas être reconnu, vous devez charger manuellement le pilote et sélectionner le lecteur A et le répertoire Windows correspondant. De même, si la carte réseau ne possède pas de pilote, la même méthode s'applique.

Ci-joint une capture d'écran de l'installation terminée :

Guide de configuration et dinstallation des systèmes dexploitation Windows dans KVM pour Ubuntu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer