Maison Tutoriel système Linux 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

Dec 31, 2023 am 09:57 AM
windows ubuntu kvm

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème de l'interface tiers renvoyant 403 dans l'environnement Node.js? Comment résoudre le problème de l'interface tiers renvoyant 403 dans l'environnement Node.js? Mar 31, 2025 pm 11:27 PM

Résolvez le problème de l'interface tiers renvoyant 403 dans l'environnement Node.js. Lorsque nous utilisons Node.js pour appeler des interfaces tierces, nous rencontrons parfois une erreur de 403 à partir de l'interface renvoyant 403 ...

Que dois-je faire si Beyond Compare échoue à la sensibilité à la synchronisation des Windows et des fichiers Linux? Que dois-je faire si Beyond Compare échoue à la sensibilité à la synchronisation des Windows et des fichiers Linux? Apr 01, 2025 am 08:06 AM

Le problème de la comparaison et de la synchronisation des fichiers au-delà de la compare: défaillance de la sensibilité à la casse lors de l'utilisation de Beyond ...

Comment éviter les interfaces tierces renvoyant 403 erreurs dans l'environnement nœud? Comment éviter les interfaces tierces renvoyant 403 erreurs dans l'environnement nœud? Apr 01, 2025 pm 02:03 PM

Comment éviter l'interface tiers renvoyant 403 erreur dans l'environnement de nœud. Lorsque vous appelez l'interface de site Web tiers à l'aide de Node.js, vous rencontrez parfois le problème de la retournement de l'erreur 403. � ...

Quatre façons d'implémenter le multithreading dans le langage C Quatre façons d'implémenter le multithreading dans le langage C Apr 03, 2025 pm 03:00 PM

Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

Pourquoi mon code ne peut-il pas faire renvoyer les données par l'API? Comment résoudre ce problème? Pourquoi mon code ne peut-il pas faire renvoyer les données par l'API? Comment résoudre ce problème? Apr 01, 2025 pm 08:09 PM

Pourquoi mon code ne peut-il pas faire renvoyer les données par l'API? En programmation, nous rencontrons souvent le problème du retour des valeurs nulles lorsque l'API appelle, ce qui n'est pas seulement déroutant ...

Où télécharger des fichiers python .whl sous Windows? Où télécharger des fichiers python .whl sous Windows? Apr 01, 2025 pm 08:18 PM

Python Binary Library (.WHL) Méthode de téléchargement explore les difficultés que de nombreux développeurs Python rencontrent lors de l'installation de certaines bibliothèques sur les systèmes Windows. Une solution courante ...

Comment surveiller les performances du système via les journaux debian Comment surveiller les performances du système via les journaux debian Apr 02, 2025 am 08:00 AM

La maîtrise de la surveillance du journal du système Debian est la clé d'un fonctionnement et d'une maintenance efficaces. Il peut vous aider à comprendre les conditions de fonctionnement du système en temps opportun, à localiser rapidement les défauts et à optimiser les performances du système. Cet article présentera plusieurs méthodes et outils de surveillance couramment utilisés. Surveillance des ressources système avec la boîte à outils Sysstat La boîte à outils Sysstat fournit une série d'outils de ligne de commande puissants pour collecter, analyser et signaler diverses mesures de ressources système, y compris la charge du processeur, l'utilisation de la mémoire, les E / S de disque, le débit de réseau, etc. MPSTAT: Statistiques des processeurs multi-fond. pidsta

c Quelles sont les différences entre les trois méthodes de mise en œuvre de la lecture multithre c Quelles sont les différences entre les trois méthodes de mise en œuvre de la lecture multithre Apr 03, 2025 pm 03:03 PM

Le multithreading est une technologie importante dans la programmation informatique et est utilisée pour améliorer l'efficacité de l'exécution du programme. Dans le langage C, il existe de nombreuses façons d'implémenter le multithreading, y compris les bibliothèques de threads, les threads POSIX et l'API Windows.

See all articles