<?xml version="1.0" encoding="UTF-8"?>
<!--
    manpage, user manual, usage: VBoxManage modifynvram
-->
<!--
    Copyright (C) 2021-2023 Oracle and/or its affiliates.

    This file is part of VirtualBox base platform packages, as
    available from https://www.virtualbox.org.

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation, in version 3 of the
    License.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, see <https://www.gnu.org/licenses>.

    SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="vboxmanage-modifynvram" lang="en">
  <refentryinfo>
    <pubdate>$Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $</pubdate>
    <title>VBoxManage modifynvram</title>
  </refentryinfo>

  <refmeta>
    <refentrytitle>VBoxManage-modifynvram</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>VBoxManage-modifynvram</refname>
    <refpurpose>Отображение и изменение содержимого NVRAM виртуальной машины</refpurpose>
    <refclass>&product-name;</refclass>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-inituefivarstore">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">inituefivarstore</arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-enrollmssignatures">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">enrollmssignatures</arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-enrollorclpk">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">enrollorclpk</arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-enrollpk">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">enrollpk</arg>
      <arg>--platform-key=<replaceable>имя-файла</replaceable></arg>
      <arg>--owner-uuid=<replaceable>uuid</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-listvars">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">listvars</arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-queryvar">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">queryvar</arg>
      <arg>--name=<replaceable>имя</replaceable></arg>
      <arg>--filename=<replaceable>имя-файла</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-deletevar">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">deletevar</arg>
      <arg>--name=<replaceable>имя</replaceable></arg>
      <arg>--owner-uuid=<replaceable>uuid</replaceable></arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-modifynvram-changevar">
      <command>VBoxManage modifynvram</command>
      <arg choice="req"><replaceable>uuid|имя-ВМ</replaceable></arg>
      <arg choice="plain">changevar</arg>
      <arg>--name=<replaceable>имя</replaceable></arg>
      <arg>--filename=<replaceable>имя-файла</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Описание</title>

    <para>Команды "modifynvram" предназначены для экспертов, которые хотят изучить и изменить
      хранилище переменных UEFI виртуальной машины. Любые допущенные здесь ошибки могут
      привести машину в нерабочее состояние.</para>

    <refsect2 id="vboxmanage-modifynvram-common-options">
      <title>Общие параметры</title>
      <remark role="help-scope" condition="GLOBAL"/>
      <para>Все подкоманды <command>modifynvram</command> выполняются на работающей виртуальной
      машине:</para>
      <variablelist>
        <varlistentry>
          <term><replaceable>uuid|имя-ВМ</replaceable></term>
          <listitem><para>Или UUID или имя ВМ (чувствительно к регистру).</para></listitem>
        </varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-inituefivarstore">
      <title>modifynvram inituefivarstore</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Инициализирует хранилище переменных UEFI в состояние по умолчанию. Все ранее
        существовавшие хранилища переменных удаляются. Используйте с особой осторожностью!
      </para>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-enrollmssignatures">
      <title>modifynvram enrollmssignatures</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Регистрирует стандартные подписи Microsoft KEK и DB, необходимые для безопасной загрузки UEFI.
      </para>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-enrollorclpk">
      <title>modifynvram enrollorclpk</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Регистрирует ключ платформы по умолчанию, предоставленный Oracle, необходимый для безопасной загрузки UEFI.
      </para>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-enrollpk">
      <title>modifynvram enrollpk</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Регистрирует пользовательский ключ платформы переданный пользователем, необходимый
        для безопасной загрузки UEFI. Следующие команды используют openssl для генерации
        нового ключа платформы:
      </para>
<screen>$ openssl req -new -x509 -newkey rsa:2048 -keyout PK.key -out PK.crt</screen>
<screen>$ openssl x509 -in PK.crt -out PK.cer -outform DER</screen>
      <variablelist>
        <varlistentry>
          <term><option>--platform-key=<replaceable>имя-файла</replaceable></option></term>
          <listitem><para>Ключ платформы переданный в качестве X.509 подписи, зашифрованной DER.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--owner-uuid=<replaceable>uuid</replaceable></option></term>
          <listitem><para>UUID идентифицирующий владельца ключа платформы.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-listvars">
      <title>modifynvram listvars</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Показывает все переменные UEFI в хранилище виртуальной машины относительно UUID их владельца.
      </para>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-queryvar">
      <title>modifynvram queryvar</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Запрашивает содержимое данной переменной UEFI по ее имени.
      </para>
      <variablelist>
        <varlistentry>
          <term><option>--name=<replaceable>имя</replaceable></option></term>
          <listitem><para>имя запрашиваемой переменной UEFI.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--filename=<replaceable>имя-файла</replaceable></option></term>
          <listitem>
            <para>
              Куда сохранять содержимое переменной в случае успеха. Это необязательно.
              Если не указан, содержимое будет выдано в терминал как hex дамп.
            </para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-deletevar">
      <title>modifynvram deletevar</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Удаляет данную переменную по ее имени и UUID владельца.
      </para>
      <variablelist>
        <varlistentry>
          <term><option>--name=<replaceable>имя</replaceable></option></term>
          <listitem><para>Имя удаляемой переменной UEFI.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--owner-uuid=<replaceable>uuid</replaceable></option></term>
          <listitem><para>UUID владельца удаляемой переменной.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="vboxmanage-modifynvram-changevar">
      <title>modifynvram changevar</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Изменяет содержимое переменной UEFI на содержимое указанного файла.
      </para>
      <variablelist>
        <varlistentry>
          <term><option>--name=<replaceable>имя</replaceable></option></term>
          <listitem><para>Имя изменяемой переменной UEFI.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--filename=<replaceable>имя-файла</replaceable></option></term>
          <listitem>
            <para>Файл с данными.</para>
          </listitem>
        </varlistentry>
      </variablelist>
    </refsect2>

  </refsect1>
</refentry>
