По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Эти команды помогут вам независимо от того, какую операционную систему вы используете - Linux, Windows или macOS На сегодняшний день создание виртуальной среды, или виртуализация, является одной из основных компьютерных технологий. С виртуальной машиной вы можете запустить практически любую операционную систему по вашему выбору на своем ПК, не разоряясь на дополнительное оборудование. Давайте рассмотрим, как использовать терминал командной строки для управления виртуальными машинами VirtualBox независимо от операционной системы, будь то Windows, macOS или Linux. Все установки VirtualBox сопровождаются инструментом командной строки VBoxManage – мощной и гибкой утилитой для управления вашими виртуальными машинами. Что такое VBoxManage? VBoxManage – это инструмент интерфейса командной строки, устанавливаемый по умолчанию как часть установки программного обеспечения VirtualBox. В отличие от управления виртуальными машинами через графический интерфейс, интерфейс командной строки VBoxManage дает больше функциональных возможностей, поскольку он обеспечивает прямой доступ к механизму виртуализации, что позволяет получить доступ к дополнительным функциям, которые недоступны через графический интерфейс. К тому же, большинство серверов Linux не имеют графического интерфейса вовсе, так что виртуальными машинами можно будет управлять даже в автономном режиме. Все команды VBoxManage начинаются со слова vboxmanage и обычно сопровождаются подкомандой, такой как list, controlvm и т.д. Часто требуется указать имя виртуальной машины, которую вы хотите настроить или которой хотите управлять. 1. Список виртуальных машин Здесь показано, как вы можете просмотреть список всех виртуальных машин, зарегистрированных на вашем ПК. Каждой виртуальной машине присваивается универсальный уникальный идентификатор, который используется для уникальной идентификации. vboxmanage list vms Если вам нужен более подробный список, добавьте флаг –l или –long к команде vboxmanage list vms. На выходе будет отображаться подробная информация, такая как конфигурация каждой виртуальной машины, сведения об аппаратном оборудовании, настройки и т.д. Чтобы вывести список всех запущенных в данный момент виртуальных машин, используйте подкоманду list с параметром runningvms: vboxmanage list runningvms 2. Запуск и остановка виртуальных машин Чтобы запустить виртуальную машину с помощью VBoxManage, воспользуйтесь подкомандой startvm, за которой следует имя виртуальной машины или ее универсальный уникальный идентификатор. Например, вы можете выполнить команду ниже, чтобы запустить виртуальную машину с именем Windows11. vboxmanage startvm Windows11 Когда дело дойдет до остановки виртуальной машины, то у вас будет несколько вариантов. У вас есть возможность полностью остановить, то есть выключить, виртуальную машину или поставить ее на паузу. Чтобы остановить виртуальную машину, воспользуйтесь подкомандой controlvm, за которой следует имя виртуальной машины, а затем параметр poweroff. vboxmanage controlvm Windows11 poweroff Если вы хотите, чтобы виртуальная машина просто не потребляла системные ресурсы, то не обязательно ее выключать, вы можете приостановить ее работу и возобновить ее позже. vboxmanage controlvm Windows11 pause Чтобы восстановить работу приостановленной виртуальной машины, воспользуйтесь следующей командой: vboxmanage controlvm Windows11 resume 3. Получение сведений о виртуальной машине Чтобы просмотреть сведения, относящиеся к конкретной виртуальной машине, вместо команды для просмотра списка всех виртуальных машин, воспользуйтесь подкомандой showvminfo. Например, вы можете запустить команду ниже, чтобы получить подробную информацию о виртуальной машине Windows11, включая информацию о ее аппаратном оборудовании и других сведений о конфигурации, состояния сети и т.д. vboxmanage showvminfo Windows11 4. Создание виртуальной машины Еще одной важной задачей при управлении виртуальными машинами является создание новых виртуальных машин. Воспользуйтесь подкомандой createavm для создания новой виртуальной машины. Например, чтобы создать виртуальную машину с именем «DebianVM», которая будет работать в операционной системе Debian Linux, вы можете выполнить следующую команду: vboxmanage createvm --name DebianVM --ostype Debian Debian_64 --register Если вы не уверены, какое имя операционной системы использовать на вашей виртуальной машине, вы можете проверить, какие операционные системы поддерживает VirtualBox с помощью следующей команды: vboxmanage list ostypes 5. Изменение виртуальной машины Если вы хотите изменить только что созданную виртуальную машину, например, изменить размер памяти, имя и другие соответствующие параметры, вы можете воспользоваться подкомандой modifyvm, за которой следует имя виртуальной машины, а затем параметр, который вы хотите изменить, и, наконец, новое значение этого параметра. Предположим, вы хотите изменить имя только что созданной виртуальной машины выше с DebianVM на Debian9, используя настройку имени. vboxmanage modifyvm DebianVM --name Debian9 Список настроек, которые вы можете изменить, можно посмотреть, выполнив команду: vboxmanage modifyvm 6. Резервное копирование Резервное копирование является важным компонентом поддержания надежности информационной системы. VirtualBox позволяет сохранять состояние вашей виртуальной машины, чтобы у вас была возможность ее сохранить, если вдруг что-то пойдет не так. Чтобы сделать снимок состояния виртуальной машины, вы можете запустить следующую команду, где «Christmas eve snapshot» - это имя, присвоенное вашему снимку состояния виртуальной машины. vboxmanage snapshot Windows11 take "Christmas eve snapshot" Чтобы восстановить упомянутую выше виртуальную машину с помощью только что созданного снимка состояния, для начала остановите виртуальную машину, если она запущена, а затем восстановите снимок состояния с помощью следующей команды: vboxmanage snapshot Windows11 restore "Christmas eve snapshot" 7. Получение справочной информации Чтобы вы могли использовать интерфейс командной строки VBoxManage на максимум, вы должны 7-komand-virtualnoj-mashiny-virtualbox-kotorye-nuzhno-znat, как получить справочную информацию или прочитать документацию из терминала командной строки, чтобы не запоминать все команды. Кроме того, есть множество других команд, которые не были рассмотрены нами в этом руководстве. У7-komand-virtualnoj-mashiny-virtualbox-kotorye-nuzhno-znat больше о командах VBoxManage и их параметрах можно, выполнив следующую команду: vboxmanage Заключение В данном руководстве мы изучили некоторые важные команды для управления вашими виртуальными машинами VirtualBox с помощью VBoxManage - мощного и легкого инструмента командной строки для управления вашими виртуальными машинами. Кроме того, вы можете легко создавать сценарии автоматизации на основе VBoxManage, чтобы легко управлять своими виртуальными машинами. Виртуальные машины дают возможность запускать и экспериментировать с несколькими операционными системами на вашем ПК безопасным и надежным способом.
img
Каждое семейство операционных систем производит загрузку по-своему. Это связанно с различной архитектурой ядра операционной системы, разными инструкциями по работе с подключенными устройствами. В данной статье попробую разобрать загрузку популярной операционной системы на ядре Linux Ubuntu. Схематично процесс загрузки можно отобразить следующим образом. Загружаемся Итак, Нажимаем кнопку включения компьютера, и центральный процессор переходит на адрес BIOS. BIOS или UEFI, в более современных компьютерах, проводит систему проверок и выбирает носитель информации с которого будет производится загрузка операционной системы. На носителе находится MBR (Master Boot Record) или GPT (Guid Partition table) на новых компьютерах в которых находится загрузчик. А дальше уже в зависимости от настройки. Загрузчик может самостоятельно загружать операционную систему, а может передавать управление следующему загрузчику. Например, если Windows и Linux установлены на одном компьютере и находятся на разных разделах жесткого диска. В любом случае, если идет речь о Linux у нас есть первая стадия с небольшой частью кода, которая загружает у нас загрузчик. Загрузчик знает где лежит ядро операционной системы, загружает ядро, загружает initial run disk, там находятся необходимые файлы и модули для загрузки ядра. Далее уже ядро берет процесс управления на себя. Происходит инициализация устройств, конфигурирование процессов памяти и так далее. После всех этих процессов ядро запускает процесс init. Вернемся к вопросу загрузчиков, для каждой операционной системы разработан свой загрузчик, а иногда и несколько. NTLDR - Загрузчик операционной системы Windows, LILO - один из стандартных загрузчиков для Linux и BSD системы. GRUB - загрузчик операционной системы от проекта GNU. Нас интересуют последние два. Данные загрузчики работают в два этапа. На первом этапе у них крошечный код на MBR или GPT, который запускает исполнение кода второго этапа. Перейдем непосредственно к самой загрузке. Данное меню мы можем получить при загрузке если зажать клавишу Shift. Как видно на картинке в данном примере загрузчик GRUB версии 2.04. У нас есть несколько вариантов. Загрузка Ubuntu по умолчанию и вариант загрузки с расширенными опциями. В нашем случае расширенные опции не дают многого, а всего лишь позволяют начать загрузку в режиме восстановления recovery mode. Данная опция не является целью стати, и мы ее опустим. Вернемся к первому пункту загрузки. Выбираем, нажимаем "e" получаем следующую картину загрузки. На данной картинке можно увидеть, что корневой раздел монтируется по uuid, он будет корневым root и непосредственно сам id. ID раздела можно посмотреть после загрузки операционной системы командой blkid. Можно часть параметров отредактировать или большинство. Более подробно можно поискать в интернете. По нажатию F10 осуществляется продолжение загрузки операционной системы. После загрузки операционной системы, мы можем с помощью команды dmesg посмотреть, сообщения ядра, все что происходило с ядром. Нужно различать сообщения ядра и лог ядра. Который можно посмотреть cat /var/log/dmesg. Данный файл содержи информацию только о загрузке операционной системы. В данном файле содержится информация с самого начала загрузки операционной системы и до конца. Если событие происходит позднее, то в данном файле этой информации вы не найдете. Система инициализации ОС Есть такое понятие Init - это первый или родительский процесс, который запускает все последующие процессы. Это может быть проверка и монтирование файловых систем запуск служб и.т.д. Существует 3 варианта работы этого родительского процесса. Init в стиле SysV - родительский процесс инициализации системы на одном из заданных уровней запуска (runlevel); Т.е. есть несколько уровней загрузки (runlevel) обычно их 7 штук. Один из них - это обычный многопользовательский режим. Другие это выключение компьютера, перезагрузка, режим восстановления и т.д. Init в стиле systemd - родительский процесс инициализации системы в ускоренном режиме, за счёт параллельного запуска задач; Ускоренный режим достигается за счет использования процессора в частности Intel, который позволяет запускать процессы инициализации параллельно. К этому режиму есть еще куча софта библиотек, которые расширяют функционал. Init в стиле Upstart - родительский процесс инициализации системы на основе отслеживания событий; Данный режим используется на Ubuntu уже давным - давно, тут не только запускаются скрипты инициализации, но и запускаются скрипты отслеживания событий и реагирования на них. Т.е. это более гибкий процесс инициализации, например, если какая-то служба не запустилась или упала в процессе загрузки то, upstart умеет это отследить и запустить это повторно В операционной систему Ubuntu можно посмотреть дерево процессов использую команду pstree. В результате ее вывода мы можем увидеть, что родительским процессом являлся процесс systemd. Который запускал уже свои, какие-то дочерние процессы. Перейдем в корневую директорию boot. Здесь мы можем увидеть директорию загрузчика grub. Ядра линуксовые vmlinuz (ссылка на ядро) и до обновления старое ядро vmlinux.old (ссылка на старое ядро). Соответственно пара initrd* - файлы диска, эти файлы содержат диск, который грузится в оперативную память, данный диск содержит файлы необходимые самому ядру Linux для нормальной загрузки. Перейдя в директорию grub, мы можем найти конфигурационный файл grub.cfg и несколько вспомогательных, но не менее важных фалов. Соответственно мы можем внести изменения в данный файл на постоянной основе и соответственно данный код будет выполнятся при каждой загрузке операционной системы.
img
Перед тем как начать: это цикл статей. Мы рекомендуем до этого материала ознакомиться со статьей про Interlayer Discovery. Хотя IPv6 является основной темой этих лекций, в некоторых случаях IPv4 представляет собой полезный пример решения; Address Resolution Protocol IPv4 (ARP) является одним из таких случаев. ARP - это очень простой протокол, используемый для решения проблемы межуровневого обнаружения, не полагаясь на сервер любого типа. Рисунок ниже будет использован для объяснения работы ARP. Предположим, A хочет отправить пакет C. Зная IPv4-адрес C, 203.0.113.12 недостаточно, чтобы A правильно сформировал пакет и поместил его на канал связи по направлению к C. Чтобы правильно построить пакет, A также должен знать: Находится ли C на том же канале связи, что и A MAC или физический адрес C Без этих двух частей информации A не знает, как инкапсулировать пакет в канал связи, поэтому C фактически получит пакет, а B проигнорирует его. Как можно найти эту информацию? На первый вопрос, находится ли C на том же канале вязи, что и A, можно ответить, рассмотрев IP-адрес локального интерфейса, IP-адрес назначения и маску подсети. ARP решает вторую проблему, сопоставляя IP-адрес назначения с MAC-адресом назначения, с помощью следующего процесса: Хост A отправляет широковещательный пакет каждому устройству в сети, содержащему адрес IPv4, но не MAC-адрес. Это запрос ARP; это запрос A на MAC-адрес, соответствующий 203.0.113.12. B и D получают этот пакет, но не отвечают, поскольку ни один из их локальных интерфейсов не имеет адреса 203.0.113.12. Хост C получает этот пакет и отвечает на запрос, снова используя unicast пакет. Этот ответ ARP содержит как IPv4-адрес, так и соответствующий MAC-адрес, предоставляя A информацию, необходимую для создания пакетов в направлении C. Когда A получает этот ответ, он вставляет сопоставление между 203.0.113.12 и MAC-адресом, содержащимся в ответе, в локальном кэше ARP. Эта информация будет храниться до истечения времени ожидания; правила тайм-аута записи кэша ARP различаются в зависимости от реализации и часто могут быть настроены вручную. Продолжительность кэширования записи ARP - это баланс между слишком частым повторением одной и той же информации в сети в случае, когда сопоставление IPv4-адресов с MAC-адресами не меняется очень часто, и отслеживанием любых изменений в расположении устройство в случае, когда конкретный адрес IPv4 может перемещаться между хостами. Когда A получает этот ответ, он вставляет сопоставление между 203.0.113.12 и MAC-адресом, содержащимся в ответе, в локальный кэш ARP. Эта информация будет храниться до тех пор, пока не истечет время ожидания; правила для тайм-аута записи кэша ARP варьируются в зависимости от реализации и часто могут быть настроены вручную. Продолжительность кэширования записи ARP - это баланс между тем, чтобы не повторять одну и ту же информацию слишком часто в сети, в случае, когда сопоставление IPv4-MAC-адресов меняется не очень часто, и идти в ногу с любыми изменениями в местоположении устройства, в случае, когда конкретный IPv4-адрес может перемещаться между хостами. Любое устройство, получающее ответ ARP, может принять пакет и кэшировать содержащуюся в нем информацию. Например, B, получив ответ ARP от C, может вставить сопоставление между 203.0.113.12 и MAC-адресом C в свой кэш ARP. Фактически, это свойство ARP часто используется для ускорения обнаружения устройств, когда они подключены к сети. В спецификации ARP нет ничего, что требовало бы от хоста ожидания запроса ARP для отправки ответа ARP. Когда устройство подключается к сети, оно может просто отправить ответ ARP с правильной информацией о сопоставлении, чтобы ускорить процесс начального подключения к другим узлам на том же проводе; это называется gratuitous ARP. Gratuitous ARP также полезны для Duplicate. Gratuitous ARP также полезны для обнаружения дублирующихся адресов (Duplicate Address Detection - DAD); если хост получает ответ ARP с адресом IPv4, который он использует, он сообщит о дублированном адресе IPv4. Некоторые реализации также будут посылать серию gratuitous ARPs в этом случае, чтобы предотвратить использование адреса или заставить другой хост также сообщить о дублирующемся адресе. Что произойдет, если хост A запросит адрес, используя ARP, который не находится в том же сегменте, например, 198.51.100.101 на рисунке 5? В этой ситуации есть две разные возможности: Если D настроен для ответа как прокси-ARP, он может ответить на запрос ARP с MAC-адресом, подключенным к сегменту. Затем A кэширует этот ответ, отправляя любой трафик, предназначенный для E, на MAC-адрес D, который затем может перенаправить этот трафик на E. Наиболее широко распространенные реализации по умолчанию не включают прокси-ARP. A может отправлять трафик на свой шлюз по умолчанию, который представляет собой локально подключенный маршрутизатор, который должен знать путь к любому пункту назначения в сети. IPv4 ARP - это пример протокола, который отображает interlayer идентификаторы путем включения обоих идентификаторов в один протокол. Обнаружение соседей IPv6 IPv6 заменяет более простой протокол ARP серией сообщений Internet Control Message Protocol (ICMP) v6. Определены пять типов сообщений ICMPv6: Тип 133, запрос маршрутизатора Тип 134, объявление маршрутизатора Тип 135, запрос соседа Тип 136, объявление соседа Тип 137, перенаправление Рисунок ниже используется для объяснения работы IPv6 ND. Чтобы понять работу IPv6 ND, лучше всего проследить за одним хостом, поскольку он подключен к новой сети. Хост A на рисунке ниже используется в качестве примера. A начнет с формирования link local address, как описано ранее. Предположим, A выбирает fe80 :: AAAA в качестве link local address. Теперь A использует этот link local address в качестве адреса источника и отправляет запрос маршрутизатору на link local multicast address (адрес многоадресной рассылки для всех узлов). Это сообщение ICMPv6 типа 133. B и D получают этот запрос маршрутизатора и отвечают объявлением маршрутизатора, которое является сообщением ICMPv6 типа 134. Этот одноадресный пакет передается на локальный адрес канала A, используемый в качестве адреса источника, fe80 :: AAAA. Объявление маршрутизатора содержит информацию о том, как вновь подключенный хост должен определять информацию о своей локальной конфигурации в виде нескольких флагов. Флаг M указывает, что хост должен запросить адрес через DHCPv6, потому что это управляемый канал. Флаг O указывает, что хост может получать информацию, отличную от адреса, который он должен использовать через DHCPv6. Например, DNS-сервер, который хост должен использовать для разрешения имен DNS, должен быть получен с помощью DHCPv6. Если установлен флаг O, а не флаг M, A должен определить свой собственный IPv6-адрес интерфейса. Для этого он определяет набор префиксов IPv6, используемых в этом сегменте, исследуя поле информации о префиксе в объявлении маршрутизатора. Он выбирает один из этих префиксов и формирует IPv6-адрес, используя тот же процесс, который он использовал для формирования link local address: он добавляет локальный MAC-адрес (EUI-48 или EUI-64) к указанному префиксу. Этот процесс называется SLAAC. Теперь хост должен убедиться, что он не выбрал адрес, который использует другой хост в той же сети; он должен выполнять DAD. Чтобы выполнить обнаружение повторяющегося адреса: Хост отправляет серию сообщений запроса соседей, используя только что сформированный IPv6-адрес и запрашивая соответствующий MAC-адрес (физический). Это сообщения ICMPv6 типа 135, передаваемые с link local address, уже назначенного интерфейсу. Если хост получает объявление соседа или запрос соседа с использованием того же адреса IPv6, он предполагает, что локально сформированный адрес является дубликатом; в этом случае он сформирует новый адрес, используя другой локальный MAC-адрес, и попытается снова. Если хост не получает ни ответа, ни запроса соседа другого хоста, использующего тот же адрес, он предполагает, что адрес уникален, и назначает вновь сформированный адрес интерфейсу. Устранение ложных срабатываний при обнаружении повторяющегося адреса Процесс DAD, описанный здесь, может привести к ложным срабатываниям. В частности, если какое-то другое устройство на канале связи передает исходные пакеты запроса соседа обратно к A, оно будет считать, что это от другого хоста, требующего тот же адрес, и, следовательно, объявит дубликат и попытается сформировать новый адрес. Если устройство постоянно повторяет все запросы соседей, отправленные A, A никогда не сможет сформировать адрес с помощью SLAAC. Чтобы решить эту проблему, RFC7527 описывает усовершенствованный процесс DAD. В этом процессе A будет вычислять одноразовый номер, или, скорее, случайно выбранную серию чисел, и включать ее в запрос соседей, используемый для проверки дублирования адреса. Этот одноразовый номер включен через расширения Secure Neighbor Discovery (SEND) для IPv6, описанные в RFC3971. Если A получает запрос соседа с тем же значением nonce, который он использовал для отправки запроса соседа вовремя DAD, он сформирует новый одноразовый номер и попытается снова. Если это произойдет во второй раз, хост будет считать, что пакеты зацикливаются, и проигнорирует любые дальнейшие запросы соседей с собственным одноразовым номером в них. Если полученные запросы соседей имеют одноразовый номер, отличный от того, который выбрал локальный хост, хост будет предполагать, что на самом деле существует другой хост, который выбрал тот же адрес IPv6, и затем сформирует новый адрес IPv6. Как только у него есть адрес для передачи данных, A теперь требуется еще одна часть информации перед отправкой информации другому хосту в том же сегменте - MAC-адрес принимающего хоста. Если A, например, хочет отправить пакет в C, он начнет с отправки multicast сообщения запроса соседа на C с запросом его MAC-адреса; это сообщение ICMPv6 типа 135. Когда C получает это сообщение, он ответит с правильным MAC-адресом для отправки трафика для запрошенного IPv6-адреса; это сообщение ICMPv6 типа 136. В то время как предыдущий процесс описывает объявления маршрутизатора, отправляемые в ответ на запрос маршрутизатора, каждый маршрутизатор будет периодически отправлять объявления маршрутизатора на каждом подключенном интерфейсе. Объявление маршрутизатора содержит поле lifetime, указывающее, как долго действует объявление маршрутизатора. А теперь почитайте о проблемах шлюза по умолчанию. У нас получился отличным материал на эту тему.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59