Virtualbox

Сборка пакета из исходников

Система сборки пакетов Nix немного напоминает систему ebuild для Gentoo, когда большую часть работы выполняет сам пакетный менеджер, который содержит информацию о том, как собирать при наличии Makefile, CMakeLists et cetera.

Сборочный файл для GNU Hello совсем не будет содержать указаний на то, как собирать:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

{stdenv,fetchurl}

stdenv.mkDerivation rec{

name=»hello-${version}»;

version=»2.10″;

src=fetchurl{

url=»mirror://gnu/hello/${name}.tar.gz»;

sha256=»0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i»;

};

doCheck=true;

meta=with stdenv.lib;{

description=»A program that produces a familiar, friendly greeting»;

longDescription=»

GNU Hello isaprogram that prints»Hello, world!»when you run it.

It isfully customizable.

»;

homepage=https//www.gnu.org/software/hello/manual/;

license=licenses.gpl3Plus;

maintainers=maintainers.eelco;

platforms=platforms.all;

};

}

Для сборки и установки необходимо только записать эти строки в файл (hello.nix, например) и выполнить следующую команду:

1 # nix-env -r -f ./hello.nix -i

Если понадобится совершить какие-либо нестандартные действия (частично это будет рассмотрено на примере работы с бинарными пакетами далее), достаточно переопределить конкретные этапы.

В этой статье мы не будем подробно рассматривать все случаи сборки различных приложений, ибо вариантов бесчисленное множество. Не смотря на это, я советую посмотреть своими глазами на то, каким образом составляются описания для сборки различного ПО в репозитории nixpkgs. Я крайне редко (буду честным — никогда) пишу описания сборки с нуля, в nixpkgs легко найти пример для разных систем сборки, а также великолепный набор костылей на для любой ситуации.

Проводник выглядит как в Windows 10. Как исправить ошибку

В редких случаях после обновления системы до Windows 11 проводник не изменяется и выглядит по-прежнему. По неизвестной причине в новую версию Windows перенеслась более старая тема и после установки была выбрана по умолчанию. Для исправления этой ошибки выполните следующие действия:

  1. Откройте проводник и нажмите «Вид» (View) в верхней части окна.
  2. Выберите «Параметры» (Options) в крайнем правом углу и в открывшемся окне перейдите во вкладку «Вид» (View).
  3. В списке действий найдите опцию «Запускать окна с папками в отдельном процессе» (Launch folder windows in a separate process) и уберите рядом с ней флажок при наличии.
  4. Примените изменения и перезапустите проводник. После выполнения этого шага у пользователя должно отобразиться окно с обновлённым визуальным стилем.

virsh

There are several utilities available to manage virtual machines and libvirt. The virsh utility can be used from the command line. Some examples:

  • To list running virtual machines:

  • To start a virtual machine:

  • Similarly, to start a virtual machine at boot:

  • Reboot a virtual machine with:

  • The state of virtual machines can be saved to a file in order to be restored later. The following will save the virtual machine state into a file named according to the date:

    Once saved the virtual machine will no longer be running.

  • A saved virtual machine can be restored using:

  • To shutdown a virtual machine do:

  • A CDROM device can be mounted in a virtual machine by entering:

  • To change the definition of a guest virsh exposes the domain via

That will allow one to edit the XML representation that defines the guest and when saving it will apply format and integrity checks on these definitions.

Editing the XML directly certainly is the most powerful way, but also the most complex one. Tools like can help unexperienced users to do most of the common tasks.

system and session scope

Virsh — as well as most other tools to manage virtualization — can be passed connection strings.

$ virsh —connect qemu:///system

There are two options for the connection.

  • — connect locally as root to the daemon supervising QEMU and KVM domains
  • — connect locally as a normal user to his own set of QEMU and KVM domains

The default always was (and still is) as that is the behavior users are used to.
But there are a few benefits (and drawbacks) to to consider it.

is per user and can on a multi-user system be used to separate the people.
But most importantly things run under the permissions of the user which means no permission struggle on the just donwloaded image in your $HOME or the just attached USB-stick.
On the other hand it can’t access system resources that well, which includes network setup that is known to be hard with . It falls back to slirp networking which is functional but slow and makes it impossible to be reached from other systems.

is different in that it is run by the global system wide libvirt that can arbitrate resources as needed.
But you might need to mv and/or chown files to the right places permssions to have them usable.

Applications usually will decide on their primary use-case. Desktop-centric applications often choose while most solutions that involve an administrator anyway continue to default to .

Read more about that in the and this blog about the topic.

Как исправить проблему с памятью в Windows 11

В некоторых случаях после закрытия проводника он остаётся в оперативной памяти, что впоследствии может вызвать некоторые проблемы и замедлить работу операционной системы. Разработчики уже занимаются исправлением этой ошибки, однако существует обходной способ. Выполните следующие действия:

  1. Откройте диспетчер файлов.
  2. Найдите в списке процессов «Проводник».
  3. Щёлкните по нему правой кнопкой мыши и нажмите кнопку «Перезапустить».

Обратите внимание на размер памяти, которую занимает проводник после его перезапуска. Она должна стать гораздо меньше до устранения проблемы

В качестве временного способа исправления ошибки можно также перезагрузить компьютер.

  • Если у вас компьютер на процессоре AMD — не спешите ставить Windows 11. Будут проблемы с играми
  • Не можешь победить — возглавь. Microsoft рассказала официальный способ обхода системных требований Windows 11
  • Официальная утилита Microsoft позволяет установить Windows 11 на неподдерживаемые ПК

Резервное копирование моментальных снимков

Самый простой способ убедиться, что ваша виртуальная машина Linux KVM имеет надлежащую резервную копию, — это использовать Вирт Инструмент создания снимков менеджера. С помощью моментальных снимков легко сохранить все на виртуальной машине и восстановить ее позже. Чтобы создать снимок, откройте Вирт-Manager и войдите в корень пароль. Если вы выполняете резервное копирование удаленно, войдите в любые подключения к удаленным виртуальным машинам, которые у вас могут быть.

Примечание. Идеальный способ использовать моментальные снимки — это установить на вашу виртуальную машину все необходимое для ее работы, а затем создать «базовый» моментальный снимок для восстановления, что-то вроде новой установки.

Когда Вирт-менеджер запущен и работает, запустите виртуальную машину, снимок которой вы хотите создать. Нажмите «Просмотр», затем нажмите кнопку «Снимки», чтобы открыть инструмент создания снимков. Cнажмите кнопку +, чтобы открыть меню создания снимка. В меню вам нужно будет ввести название снимка и описание.

В разделе «Имя» обязательно укажите имя операционной системы, которая находится в моментальном снимке. В разделе «Описание» напишите подробное объяснение того, что находится на снимке, и почему вы его сделали. Это поможет, особенно если у вас много разных снимков и вы не можете отличить их друг от друга.

После заполнения всей информации в средстве создания снимков нажмите «Готово», чтобы завершить процесс.

Восстановить снимки

Чтобы восстановить снимок виртуальной машины Virt-Manager, нажмите «Просмотр» в главном пользовательском интерфейсе и выберите «Снимки». Выберите снимок в пользовательском интерфейсе и нажмите кнопку воспроизведения. Это остановит все текущие действия в виртуальной машине и восстановит ее до состояния, в котором находится моментальный снимок.

Нужно удалить снимок из Virt-Manager? Щелкните снимок, а затем выберите значок корзины. При выборе удаления открывается диалоговое окно с вопросом: «Вы уверены, что хотите удалить этот снимок?» Выберите вариант «да», и снимок будет удален.

# Исправление 5. Отключите все устройства, кроме клавиатуры и мыши Apple.

Во-первых, вы можете удалить обновления оборудования от других производителей, таких как карты RAM (оперативная память) и PCI (Peripheral Component Interconnect). Затем вы можете перезагрузить Mac, чтобы проверить, нормально ли он загружается.

Если проблема решена, вы можете повторно подключать одно устройство за раз и перезагружать Mac, чтобы проверить, появляется ли проблема снова. Если нет, вы можете повторно подключить другое устройство, перезагрузить Mac, а затем подтвердить еще раз и так далее, пока не обнаружите, какое устройство вызывает эту проблему.

Если внешний жесткий диск зависает при подключении компьютера, как исправить? В этом посте мы представляем некоторые решения, и вы можете выбрать одно из них, которое поможет вам.

XML format

The root element required for all virtual networks is named ‘network’ and has no attributes. The first elements provide basic metadata about the virtual network.

<network>
 <name>default</name>
 <uuid>f01bd721-af12-4d20-9cf2-390c7375b17c</uuid>
 ...

name — The content provides the name for the virtual network. The name should contain only alpha-numeric characters and is required to be unique within a single host, because it is used for the filename for storing the persistent configuration file.

uuid — The content provides a globally unique identifier for the virtual network. The format must be RFC 4122 compilant. If not specified when defining or creating a new network, a random UUID is generated.

The next two elements defines the virtual network’s connectivity to the physical network (if any).

 ...
 <forward dev='eth0' mode='nat'/>
 <bridge name='virbr0' stp='on' delay='0' />
 ...

forward — This element is optional. When not defined, the virtual network will work in isolated mode. However, inclusion of this element indicates that the virtual network is to be connected to the physical network. The element can have two attributes, ‘mode’ and ‘dev’. The first one specifies the mode in which will the virtual bridge operates. Allowed values are ‘nat’ and ‘route’. The second attribute is used whenever one wants to restrict forwarding to the named device only. If no attributes are set, NAT forwarding will be used for connectivity. Firewall rules will allow forwarding to any other network device.

bridge — The ‘name’ attribute of this element defines the name of a bridge device which will be used to construct the virtual network. The next two attributes specify whether the Spanning Tree Protocol is used on the defined bridge to prevent bridge loops and forward delay.

The final set of elements define the IPv4 address range available and optionally enable DHCP.

 ...
 <ip address="192.168.122.1" netmask="255.255.255.0">
  <dhcp>
   <range start="192.168.122.100" end="192.168.122.254" />
   <host mac="00:16:3e:e2:ed" name="foo.example.com" ip="192.168.122.10" />
  </dhcp>
 </ip>
 ...
  • ip — The attributes of this element define an IPv4 address for the bridge and the subnet.
  • dhcp — This optional element enables DHCP services on the virtual network. It can have one or more ‘range’ child elements.
  • range — Two attributes specify the boundaries of a pool of IPv4 addresses to be provided to DHCP clients. The whole range must lie within the scope of the network defined on the parent ‘ip’ element.
  • host — This element is optional and may occur zero or more times within the ‘dhcp’ element. It is used for static DHCP, when one wants to always assign the same IP address and name to some interface.

Бинарные пакеты и FHS

NixOS отличается от других дистрибутивов тем, что разработчикам дистрибутива пришлось отказаться от совместимости с FHS — стандартом, определяющим местоположение библиотек, исполняемых файлов, конфигурации и прочего. Из-за этого бинарные утилиты, собранные для других дистрибутивов, без изменений работать не смогут: каталогов
/usr/share и
/usr/lib в NixOS попросту нет.

При этом, если разработчик проприетарного программного обеспечения будет собирать для Nix, ему это будет только в плюс, так как сам пакетный менеджер Nix на данный момент работает на всех дистрибутивах (включая Ubuntu, Fedora, Debian), а простая работа с зависимостями позволит не беспокоиться о том, заработает ли оно на конкретном.

Например, для создания пакета для BinaryNinja нам необязательно костылить с изменением бинарных файлов и зависимостей вручную (за исключением libpython, но это уже не зависит непосредственно от Nix).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

withimport<nixpkgs>{};

pkgs.stdenv.mkDerivation{

name=»binary-ninja»;

src=./BinaryNinja.zip;

installPhase=»

mkdir-p$out/share/binary-ninja

cp-r*$out/share/binary-ninja

ln-s${pkgs.python2}/lib/libpython2.7.so.1.0$out/share/binary-ninja/libpython2.7.so.1

mkdir-p$out/bin

ln-s$out/share/binary-ninja/binaryninja$out/bin/

»;

nativeBuildInputs=autoPatchelfHook;

buildInputs=

unzip

stdenv.cc.cc glib fontconfig dbus libglvnd

xlibs.libX11 xlibs.libXi xlibs.libXrender

python2

;

}

Пояснения излишни — мы имеем некоторый бойлерплейт описания сборки, а также список зависимостей.

Далее достаточно выполнить команду

1 # nix-env -r -f ./binaryninja.nix -i

После чего binaryninja будет установлен на уровне пользователя, но с управлением через менеджер пакетов.

Но есть нюанс, который нужно помнить: в том случае, если это бинарное ПО, которое хочет обновляться самостоятельно (как binaryninja), оно это сделать не сможет, так как каталог приложения при установке через пакетный менеджер доступен только для чтения.

Создание собственных пулов для пользователей

Для создания собственного пула пользователя следует создать каталог, доступный этому пользователю, например:

sudo mkdir -p /vrt/pool1sudo chmod 750 /vrt/pool1sudo chown <имя_пользователя> /vrt/pool1

Для запрета добавления новых образов ВМ в пул пользователю необходимо ограничить доступ к директории правами на чтение (r-x).

Дальнейшие действия выполнять от имени пользователя — владельца пула.Создать пул в ранее созданных каталогах можно следующими командами:

virsh -c qemu:///system pool-define-as pool1 —type dir —target /vrt/pool1virsh -c qemu:///system pool-build pool1virsh -c qemu:///system pool-start pool1virsh -c qemu:///system pool-autostart pool1virsh -c qemu:///system pool-list —all

Образец диалога с выводом команд:

Нажмите здесь для раскрытия…

При работе в Astra Linux Special Edition при создании пула необходимые мандатные атрибуты будут присвоены ему автоматически (при условии, что на ОС установлено обновление безопасности БЮЛЛЕТЕНЬ № 20190222SE16). Проверить мандатные атрибуты пула можно командой:

pdp-ls -Md /vrt/pool1

Образец диалога:

Нажмите здесь для раскрытия…

Создать и запустить виртуальную машину с образом диска, расположенным в ранее созданном пуле командой:

virsh -c qemu:///system define vm1.xmlvirsh -c qemu:///system start vm1

Образец диалога:

Нажмите здесь для раскрытия…

Проверить статус ВМ:

virsh -c qemu:///system list —all

Образец диалога:

Нажмите здесь для раскрытия…

Проверить параметры подключения к ВМ

$ virsh -c qemu:///system domdisplay vm1

Образец диалога:

Нажмите здесь для раскрытия…

Подключиться к виртуальному монитору ВМ

spicy -h 127.0.0.1 -p 5900

Сброс пользовательских настроек

Для сброса старых пользовательсктх настроек virt-manager удалить файл .config/dconf/user

The Virtual Machine Manager (virt-manager)

In virt-manager is possibility to view and manage virtual networks. Information available through virt-manager can be seen in this image:

NOTE

    • Need to include which versions of virt-manager have this (ie from 0.x.y onwards)
    • Also need to list which drivers support this. ie qemu+ssh:// might, whereas qemu:// might not (that’s an example only, but recent quick testing showed up some unexpected things here)

Creating a virtual network

Creating virtual networks is easy when using the Virtual Machine Manager GUIT.

The following pages take you through the steps for each of the main network types:

  • Creating a NAT Virtual Network
  • Creating a Routed Virtual Network
  • Creating an Isolated Virtual Network

Starting a virtual network

In virt-manager by clicking Start Network, or in virsh net-start. This command takes one mandatory argument, the network name. When starting a virtual network, libvirt will automatically set iptables and dnsmasq. However, transient networks are created and started at once.

Stopping a virtual network

Stopping virtual network can be done by clicking the appropriate button in Virtual Manager or by net-destroy. If it is a transient network being stopped, it is also removed.

Removing a virtual network

Again, removing a virtual network is possible in Virtual Manager or in virsh by net-undefine. Please keep in mind, only inactive networks can be removed.

Changing a virtual network

Making changes is only available via the virsh console tool. ‘The ‘net-edit command allows the user to edit the XML configuration of a virtual network.

  • Stats collection in virt-manager
    • Need to include which versions of virt-manager have this (ie from 0.x.y onwards)
    • Implications of stats collection (performance impact?)
    • How to enable/disable collection of stats in virt-manager
    • Display of stats

Делаем пользователю доступ в SSH (для удаленного управления)[править]

На сервере переключаемся в режим суперпользователя:

su-

И правим следующий файл:

# cd /etc/openssh
# mcedit sshd_config

Добавляем:

Match User petr #имя вашего пользователя на сервере
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
ForceCommand internal-sftp
ChrootDirectory /home/files #корневой каталог при доступе через SSH

После настройки на сервере SSH для доступа к файлам, на клиенте заработает и SSH для libvirt-manager для подключения к libvirt.

Кроме того разрешаем в брандмауэре: Alterator Web-Брадмауэр-Внешние сети-Дополнительные порты TCP/UDP-Добавляем порт 5900

Графическое управление[править]

Чтобы сделать некое подобие «Диспетчера Hyper-V» (Графическую консоль для управления виртуальными машинами) устанавливаем следующий пакет:

# apt-get install virt-manager

Открываем Virt-Manager. Файл>Добавить соединение>

  • Локальная машина
  • Удаленный сервер
    • QEMU/KVM-Connect to remove host over SSH
      • вводим имя пользователя
      • вводим IP
      • ставим галочку подключаться автоматически

Создание виртуальной машиныправить

  1. Нажимаем на кнопку «Создать виртуальную машину»
  2. Выбираем метод установки — локальный/ISO
  3. Выбираем ISO/CD и тип ОС (с помощью автодополнения)
  4. Выбираем количество ОЗУ и процессоров
  5. Создаем виртуальный жесткий диск
  6. Вводим название и выбираем сеть

Некоторые настройкиправить

Выберите машину, нажмите на лампу…

Настройка жесткого дискаправить

…Диск-1> Дополнительные параметры>Шина диска

Тип диска:

  • IDE — рекомендуется для Windows XP и младше
  • SATA — для 7 и старше

Включить меню загрузки> ставите очередность.

Иначе вы просто не загрузитесь с CD/ISO.

запускать при старте системы

Подключение ISOправить

…Выберите IDE CDROM> Browse.

В окне «Выберите том хранилища» нажмите на плюс (добавить пул), выберите тип dir-каталог в файловой системе и укажите папку с iso-образами.

Выберите образ из пула и нажмите на кнопку «Выбор тома».

Примечание: В качестве каталога можно указать папку прописанную в /etc/openssh — так вы легко сможете закидывать и подключать ISO-образы

NATправить

NAT — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса одной сети, в адрес другой сети.

Т.е. у вас в локальной сети сеть 192.168.0.x., а у виртуальных машин будет 192.168.1.x. И NAT позволит вам общатся между сетью 0.x и 1.x.

По-умолчанию в virt-manager уже есть NAT-интерфейс, но если вы его случайно удалили или хотите создать новый, то это делается так:

  • откройте Правка>Свойства подключения>Виртуальные сети>+
  • введите название сети
  • режим: NAT
  • Forward to: любое физическое устройство

Можете так же настроить адресацию IPv4 и DHCP-сервер (они настраиваются автоматически).

И в настройках виртуальной машины выберите данный интерфейс.

Мостправить

Чтобы напрямую общаться между реальной сетью и виртуальными машинами напрямую нужно создать сетевой мост.

Данный способ является наиболее правильным. Проще всего его сделать через alterator-net-bridge.

Например, br0, затем в настройках ВМ указать именно его.

//Как? Расписать…

Примечание: При этом управление сетью перейдет к etcnet и NetworkManager уже будет не нужен, его и его апплет можно удалить: apt-get remove NetworkManager NetworkManager-applet-gtk. В трее, соответственно, иконка статуса сети исчезнет.

Проброс портовправить

Из переписки:

Настроил тут проброс порта в QEMU-виртуалку. Казалось бы, в чём проблема-то?

 cmd|qemu -netdev user,id=user0,hostfwd=tcp::2222-:22 -device e1000,netdev=user0" …

как-то так (можно вместо e1000 паравиртуальный драйвер, это побыстрее будет).

Но. Я это сделал через libvirt! И оказалось, что штатными средствами (не только тыкая в менюшки virt-manager, но и, кажется, вообще прямой настройкой сети) нельзя. Не знаю, почему. Может быть, можно, но я не нашёл как. А я искал. То, что в libvirt называется NAT, в действительности садится на tun/tap, лезет в iptables и т. д. Наверное, для совместимости с другими платформами виртуализации, не знаю.

Короче.

  1. В настройках virt-manager разрешаем «Редактирование XML»
  2. Удаляем все сетевые устройства.
  3. Добавляем в конец общего XML-я виртуалки (например, во вкладке «Обзор»), перед закрывающим </domain>, такие строки:
 <qemu:commandline>
   <qemu:arg value="-netdev"/>
   <qemu:arg value="user,id=user0,hostfwd=tcp::2222-:22"/>
   <qemu:arg value="-device"/>
   <qemu:arg value="e1000,netdev=user0"/>
 </qemu:commandline>

Если неймспейс qemu не загружен, то такие:

И qemu преспокойненько само всё как надо делает. Фишка — не забыть про
иначе просто не заработает, а вам ничего не скажет)

Графикиправить

Откройте «Правка> Параметры», вкладка «Статистика», отметьте галочками, какие графики вы хотите сделать доступными.

Вкл./выкл. график вы можете через «Вид> График».

Снимок машины можно создать только если виртуальный жесткий диск у вас в формате *.qcow2.

Решение 1. Обновите драйвер видеокарты

Это один из основных шагов по устранению неполадок, когда дело доходит до решения проблем, связанных с видеоиграми. Однако несколько пользователей смогли решить проблему, используя только этот метод, и это сэкономило им дни и дни устранения неполадок. Кроме того, ничего плохого из этого не выйдет, и вы все равно закончите день с последней версией драйвера видеокарты, установленной на вашем компьютере.

  1. Нажмите кнопку меню «Пуск», введите «Диспетчер устройств» и выберите его из списка результатов, просто щелкнув первый результат. Вы также можете использовать комбинацию клавиш Windows Key + R, чтобы открыть диалоговое окно Run. Введите «devmgmt.msc» в поле и нажмите OK, чтобы запустить его.
  1. Разверните одну из категорий в окне «Диспетчер устройств», чтобы найти имя устройства, которое вы хотите обновить, затем щелкните его правой кнопкой мыши и выберите «Удалить устройство». Поскольку мы хотим обновить видеокарту, разверните категорию «Видеоадаптеры», щелкните правой кнопкой мыши свою видеокарту и выберите параметр «Удалить устройство».
  1. Подтвердите любые диалоги, в которых вас могут попросить подтвердить ваш выбор, и дождитесь завершения процесса.
  2. Найдите драйвер видеокарты на сайте производителя карты и следуйте их инструкциям, которые должны быть доступны на сайте. Сохраните установочный файл на своем компьютере и запустите его оттуда. Ваш компьютер может перезагрузиться несколько раз во время установки.

Драйверы Nvidia — Кликните сюда!

Драйверы AMD — Кликните сюда!

Заметка: Если описанные выше шаги не привели к желаемому результату, есть сценарий, который вы, возможно, захотите запустить, чтобы решить проблему, так как игры не могут управлять вновь установленным драйвером. Сценарий состоит из основных команд, которые легче запускать через файл .bat. Удачи!

  1. Откройте новый текстовый документ, щелкнув правой кнопкой мыши на рабочем столе и выбрав «Новый текстовый документ» в контекстном меню.
  1. Скопируйте и вставьте следующий текст в документ и убедитесь, что вы сохранили правильное форматирование, а это означает, что каждая команда, которая здесь отображается в новой строке, также должна быть в новой строке в вашем документе.

если существует C: Windows System32 nvapi64.Old goto Old chdir / d C: Windows System32 ren nvapi64.dll nvapi64.Old taskkill / F / FI «IMAGENAME eq nvxdsync.exe» echo @ Именованная пауза goto Конец: старый chdir / d C: Windows System32 ren nvapi64.Old nvapi64.dll echo @ Переименованная пауза goto Конец: Конец

Нажмите «Файл» в меню вверху окна и выберите «Сохранить как…». В раскрывающемся меню «Тип файла» выберите «Все файлы» и убедитесь, что вы назвали файл как-то вроде «command.bat»

Имя не важно, но расширение «.bat» имеет значение

  1. После сохранения файла щелкните его правой кнопкой мыши и выберите параметр «Запуск от имени администратора». Подождите пару секунд, перезагрузите компьютер и проверьте, работает ли ваша игра.

# Исправление 1. Перезагрузите Mac

Возможно, ваш компьютер перезагрузился из-за проблемной проблемы, просто вызванной какой-то временной проблемой на вашем компьютере Mac. Как и в одном из сообщений об ошибке, в котором говорится, что вам нужно перезагрузить компьютер, вы можете просто перезагрузить компьютер, чтобы увидеть, исчезла ли проблема.

Вы можете нажать Мощность кнопку на несколько секунд, пока она полностью не отключится. Затем вы можете нажать кнопку питания, чтобы перезагрузить компьютер Mac.

Почему перезагрузка компьютера решает проблемы? В этом посте рассказывается, что делает перезагрузка вашего компьютера и почему он может решить проблемы с вашим компьютером в этом посте.

Apparmor isolation

By default libvirt will spawn qemu guests using apparmor isolation for enhanced security. The will consist of multiple elements:

  • a static part that all guests share =>
  • a dynamic part created at guest start time and modified on hotplug/unplug =>

Of the above the former is provided and updated by the package and the latter is generated on guest start. None of the two should be manually edited. They will by default cover the vast majority of use cases and work fine. But there are certain cases where users either want to:

  • further lock down the guest (e.g. by explicitly denying access that usually would be allowed)
  • open up the guest isolation (most of the time this is needed if the setup on the local machine does not follow the commonly used paths.

To do so there are two files to do so. Both are local overrides which allow you to modify them without getting them clobbered or command file prompts on package upgrades.

  • this will be applied to every guest. Therefore it is rather powerful, but also a rather blunt tool. It is a quite useful place thou to add additional .
  • the above mentioned dynamic part that is individual per guest is generated by a tool called . That is under apparmor isolation as well. This is most commonly used if you want to use uncommon paths as it allows to ahve those uncommon paths in the guest XML (see ) and have those paths rendered to the per-guest dynamic rules.

Routed mode

With routed mode, the virtual switch is connected to the physical host LAN, passing guest network traffic back and forth without using NAT.

The virtual switch sees the IP addresses in each packet, using that information when deciding what to do.

In this mode all virtual machines are in a subnet routed through the virtual switch. This on its own is not sufficient. because no other hosts on the physical network know this subnet exists or how to reach it. It is thus necessary to configure routers in the physical network (e.g. using a static route).

If you are familiar with the ISO 7 layer network model, this mode operates on layer 3, the Network layer.

Заключительная часть.

Наконец всё готово и видеокарта сможет свободно работать в гостевой ОС!

Ключевым признаком работы проброшенной видеокарты будет «зависание» картинки в окне просмотра Virt-manager. Если используется один монитор, то потребуется переключить видеорежим, чтобы увидеть графику гостевой ОС.

Рабочий стол будет отображаться в полноэкранном режиме:

Останется испытать производительность.

Рекомендую следующие программы для тестирования производительности:

  • LatencyMon — предназначена для измерения задержек прерываний. Чем выше задержки, тем сильнее проявляются «заикания».
  • Cinebench — тестирование производительности процессора.
  • Unigine Superposition Benchmark — общее тестирование производительности.

Набор незамысловат, но позволяет ясно увидеть уровень производительности. Забегая вперёд скажу, что производительность будет заметно меньше, чем при нативном запуске, но это можно исправить, сократив накладные расходы до минимума.

Варианты оптимизации рассмотрены в отдельной статье: https://noostyche.ru/blog/2021/03/30/optimizaciya-virtualizacii-win10-qemu-kvm/

Проблема с отсутствием звука в виртуальной машине.

Как правило, при использовании протокола SPICE со звуком проблем нет, но бывают исключения.

Звук может отсутствовать из-за блокировки apparmor. Проверка наличия предупреждений о блокировке:

Если блокировка отсутствует, то вывод будет пустой.

При наличии предупреждений, самым простым способом является отключение защиты через конфигурационный файл /etc/libvirt/qemu.conf. Защита будет отключена только для виртуальных машин, запускаемых с использованием libvirt.

За использование защиты отвечает следующая строка:

Для отключения необходимо добавить строку со значением «none»:

Для применения изменений перезапустить libvirtd:

# Исправление 9: отключение ненужных элементов автозагрузки

Некоторые ненужные программы запуска могут не способствовать запуску Mac и вызывать такие проблемы, как перезагрузка компьютера из-за проблемы. Итак, мы предлагаем отключить ненужные элементы автозагрузки, чтобы решить эту проблему паники ядра.

  1. Щелкните значок Меню Apple .
  2. Перейти к Системные настройки> Пользователи и группы .
  3. Выберите свою учетную запись пользователя.
  4. Нажмите Элементы входа чтобы перечислить все элементы автозагрузки.
  5. Выберите элемент автозагрузки, который вы хотите удалить, а затем выберите’-‘икона.
  6. Перезагрузите компьютер Mac и проверьте, решена ли проблема.

Настройка пользовательского сеанса KVM

Создание подключения к сеансу

Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.

Главное окно Virt Manager

В главном окне менеджера виртуальных машин, нажмём правой кнопкой мыши по QEMU/KVM, затем в контекстном меню выберем вариант Отключиться и Удалить. Подтвердим удаление.

В меню Файл выберем Добавить соединение.

Создание пользовательского сеанса KVM

В поле Гипервизор выберем пункт QEMU/KVM сеанс пользователя, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке.

По умолчанию предлагается использовать каталог ~/.local/share/libvirt/images для хранения дисковых образов виртуальных машин, однако для удобства мы создадим новые.

Это опциональное действие. Можно использовать пул default для любых целей.

В главном окне менеджера выделим пункт QEMU/KVM сеанс пользователя, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.

Настройки пула пользовательского сеанса

Создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:

mkdir -p ~/virt/{images,iso}

В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).

Добавление пользовательского пула

В поле Название для пула с дисковыми образами укажем images, Тип — каталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее ~/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.

Повторим то же самое, но для ISO образов:

  • название — iso;
  • target path — ~/virt/iso.

Настроенные пулы пользовательского сеанса

Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.

Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.

Настройка сети в пользовательском сеансе

Создадим сетевой мост для виртуальных машин:

sudo nmcli con add type bridge ifname virbr0 ipv4.method shared ipv4.address 192.168.122.1/24

Разрешим использование моста в qemu-bridge-helper:

echo allow virbr0 | sudo tee -a /etc/qemu/bridge.conf

Добавим правила для файрвола:

sudo firewall-cmd --zone libvirt --add-interface virbr0 --permanent
sudo firewall-cmd --zone libvirt --add-service dhcp --permanent
sudo firewall-cmd --zone libvirt --add-service dhcpv6 --permanent
sudo firewall-cmd --zone libvirt --add-service dns --permanent
sudo firewall-cmd --reload

На этом настройка пользовательского сеанса завершена и можно приступать к установке гостевых операционных систем.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: