


Guide de configuration et d'installation des systèmes d'exploitation 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 ENP9S0virbr0 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 2G1 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 :
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 ...

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 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. � ...

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? 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 ...

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 ...

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

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.
