Что такое Wipe data/factory reset и Wipe cache partition?
В смартфона и планшетах на базе Android имеется специальное меню Recovery Mode или просто рекавери меню. Это специальный режим загрузки устройства, благодаря которому можно сбросить все настройки или, скажем, установить новую прошивку на девайс и даже иное рекавери меню.
Вот как выглядит Recovery Mode на смартфоне от компании Samsung:
Чтобы вызвать это меню, нужно проделать ряд действий вместе с перезагрузкой смартфона. Например, на Samsung Galaxy S3 процесс следующий:
- Выключаете смартфон.
- Нажимаете на кнопку увеличения звука, кнопку Home и клавишу включения смартфона одновременно.
- Отпускаете кнопки, как только увидите логотип рекавери меню.
Обращаем ваше внимание, что выше показано изображение стокового Recovery Mode. Бывают еще кастомные версии меню, они устанавливаются пользователем самостоятельно и могут иметь совершенно другой вид. Как пример — TWRP Recovery:
В рекавери меню есть несколько пунктов, которые вызывают вопросы у пользователей. Расскажем о некоторых из них.
Wipe data/factory reset
При использовании Wipe data/factory reset происходит удаление всех приложений и данных (кэш, учётные записи, приложения, музыка, файлы, видеозаписи и т.д.). Применяется обычно в том случае, если при использовании девайса возникают какие-либо ошибки, либо же смартфон или планшет начинает тормозить, либо пользователь хочет возвратить девайс к первоначальному состоянию и сбросить настройки. Пользоваться этим пунктом нужно аккуратно. Если решите сделать сброс данных, не забудьте предварительно сделать бекап нужных файлов.
Wipe cache partition
Wipe cache partition — это очистка раздела кэша. В этой области хранятся временные файлы, которые остались после работы приложений или же обновлений. Используется, например, в том случае, если смартфон медленно работает, либо же начинает подтормаживать.
Стоит также отметить, что кэш приложений можно удалить и через основные настройки смартфона, например:
Другие виды рекавери меню
В некоторых рекавери меню есть дополнительные пункты. Например, в Recovery Mode на устройствах Xiaomi можно выбрать дополнительные режимы очистки, как, скажем, Wipe SD Card — удаление данных с карты памяти. Да и вид меню абсолютно другой:
Впрочем, вид меню никак не влияет на функционал рекавери меню.
Выйти из рекавери меню с помощью пункта Reboot system now (перезагрузка устройства в обычном режиме).
Либо через пункт Power Off, если он имеется (выключение устройства).
Резервное копирование данных | Документация ClickHouse
- Эксплуатация
Репликация обеспечивает защиту от аппаратных сбоев, но не защищает от человеческих ошибок: случайного удаления данных, удаления не той таблицы, которую надо было, или таблицы на не том кластере, а также программных ошибок, которые приводят к неправильной обработке данных или их повреждению. Во многих случаях подобные ошибки влияют на все реплики. ClickHouse имеет встроенные средства защиты для предотвращения некоторых типов ошибок — например, по умолчанию не получится удалить таблицы *MergeTree, содержащие более 50 Гб данных, одной командой. Однако эти средства защиты не охватывают все возможные случаи и могут быть обойдены.
Для того чтобы эффективно уменьшить возможные человеческие ошибки, следует тщательно подготовить стратегию резервного копирования и восстановления данных заранее.
Каждая компания имеет различные доступные ресурсы и бизнес-требования, поэтому нет универсального решения для резервного копирования и восстановления ClickHouse, которое будет подходить в каждой ситуации. То, что работает для одного гигабайта данных, скорее всего, не будет работать для десятков петабайт. Существует множество возможных подходов со своими плюсами и минусами, которые будут рассмотрены ниже. Рекомендуется использовать несколько подходов вместо одного, чтобы компенсировать их различные недостатки.
Примечание
Имейте в виду, что если вы создали резервную копию чего-то и никогда не пытались восстановить её, скорее всего, восстановление не будет работать должным образом, когда вам это действительно понадобится (или, по крайней мере, это займет больше времени, чем будет приемлемо для бизнеса). Поэтому, какой бы подход к резервному копированию вы ни выбрали, обязательно автоматизируйте процесс восстановления и регулярно запускайте его на резервном кластере ClickHouse.
Дублирование данных
Часто данные, которые поступают в ClickHouse, доставляются через некоторую отказоустойчивую очередь, например Apache Kafka. В этом случае можно настроить дополнительный набор подписчиков, которые будут считывать один и тот же поток данных во время записи в ClickHouse и хранить его в холодном хранилище. Большинство компаний уже имеют некоторые рекомендуемые по умолчанию холодные хранилища, которые могут быть хранилищем объектов или распределенной файловой системой, например HDFS.
Снимки файловой системы
Некоторые локальные файловые системы позволяют делать снимки (например, ZFS), но они могут быть не лучшим выбором для обслуживания живых запросов. Возможным решением является создание дополнительных реплик с такой файловой системой и исключение их из Distributed таблиц, используемых для запросов SELECT
. Снимки на таких репликах будут недоступны для запросов, изменяющих данные. В качестве бонуса, эти реплики могут иметь особые конфигурации оборудования с большим количеством дисков, подключенных к серверу, что будет экономически эффективным.
clickhouse-copier
clickhouse-copier — это универсальный инструмент, который изначально был создан для перешардирования таблиц с петабайтами данных. Его также можно использовать для резервного копирования и восстановления, поскольку он надёжно копирует данные между таблицами и кластерами ClickHouse.
Для небольших объёмов данных можно применять INSERT INTO ... SELECT ...
в удалённые таблицы.
Манипуляции с партициями
ClickHouse позволяет использовать запрос ALTER TABLE ... FREEZE PARTITION ...
для создания локальной копии партиций таблицы. Это реализуется с помощью жестких ссылок (hardlinks) на каталог /var/lib/clickhouse/shadow/
, поэтому такая копия обычно не занимает дополнительное место на диске для старых данных. Созданные копии файлов не обрабатываются сервером ClickHouse, поэтому вы можете просто оставить их там: у вас будет простая резервная копия, которая не требует дополнительной внешней системы, однако при аппаратных проблемах вы можете утратить и актуальные данные и сохраненную копию. По этой причине, лучше удаленно скопировать их в другое место, а затем удалить локальную копию. Распределенные файловые системы и хранилища объектов по-прежнему являются хорошими вариантами для этого, однако можно использовать и обычные присоединенные файловые серверы с достаточно большой ёмкостью (в этом случае передача будет происходить через сетевую файловую систему или, возможно, rsync).
Дополнительные сведения о запросах, связанных с манипуляциями партициями, см. в разделе ALTER.
Для автоматизации этого подхода доступен инструмент от сторонних разработчиков: clickhouse-backup.
Поддержка | Synology Inc.
Служба ремонта Synology
Synology предоставляет гарантийное обслуживание всех аппаратных продуктов. Восстановительный ремонт выполняется специалистами Synology, и мы тщательно отслеживаем все детали процесса, гарантируя, что компонент будет отремонтирован надлежащим образом. Для некоторых моделей профессионального уровня доступно продление срока ограниченной гарантии на оборудование.
Служба ремонта
Указанные компоненты будут отремонтированы или восстановлены в течение гарантийного срока в соответствии со стандартом Synology (с новыми или восстановленными компонентами), чтобы гарантировать правильную работу компонентов после ремонта.
Прочитайте это перед тем, как обращаться в службу ремонта.
- Прочитайте и примите Warranty agreement.
- Гарантия может отличаться для разных моделей, поэтому убедитесь, что гарантия распространяется на указанный компонент. Learn more
- Убедитесь, что вы выполнили checklist и определили, что причина неисправности в оборудовании.
Примечание. В обычных условиях гарантия активируется с даты, указанной в счете, выставленном компанией Synology, ее уполномоченными дистрибьюторами или реселлерами.
Процедура ремонта
- Обратитесь в офис продаж, в котором вы приобретали продукт — сначала обратитесь в офис продаж, в котором вы приобрели продукт, или к местному представителю (реселлеры или дистрибьюторы) для получения услуг по ремонту.
- Свяжитесь с Synology — обратитесь в компанию Synology для получения дополнительной помощи, только если офис, в котором вы приобрели продукт, по какой-либо причине не может предоставить услуги ремонта.
Чтобы подать заявку на услуги ремонта от Synology, войдите в учетную запись Synology Account.
Примечание.
- Перед отправкой NAS в службу ремонта необходимо выполнить резервное копирование личных данных и конфигураций. Компания Synology и ее авторизованные партнеры не несут ответственности за сохранение вашей конфиденциальности.
- Устройство и система будут восстановлены до заводских настроек по умолчанию, и исходные данные нельзя будет восстановить. Компания Synology не несет ответственность за потерю данных во время ремонта.
- Гарантия распространяется только на продукты Synology. На жесткие диски и другие совместимые устройства гарантия не распространяется.
- Компания Synology сохраняет за собой все права на окончательное решение, и оно будет принято исключительно компанией Synology.
Глава 1. Начало работы с QEMU и KVM
В данной главе мы обсудим следующие вопросы:
-
Установка и настройка QEMU
-
Управление образами диска с помощью qemu-img
-
Подготовка образов для установки ОС через qemu-nbd
-
Установка некоторой пользовательской ОС на оброс посредством debootstrap
-
Изменение размера некоторого образа
-
Применение предварительно имевшихся образов
-
Исполнение виртуальных машин с применением qemu-system-*
-
Запуск ВМ QEMU с поддержкой KVM
-
Подключение к исполняемому экземпляру с использованием VNC
QEMU
(Quick Emulator) является основным компонентом
комплекта технологии виртуализации QEMU/ KVM. Он предоставляет аппаратную виртуализацию и эмуляцию процессора.
QEMU исполняется в пространстве пользователя и, без необходимости в ядре, драйверы всё ещё могут предоставлять
быструю эмуляцию системы. QEMU поддерживает два режима операционной системы:
Эмуляция всей системы, при которой QEMU эмулирует всю вычислительную систему, ключая тип её процессора и периферийных устройств
-
Эмуляция режима пользователя, при которой QEMU может исполнять некий процесс, который был откомпиллирован в архитектурах, имеющих другую собственную архитектуру ЦПУ
В этой книге мы намереваемся сосредоточиться на эмуляции системы целиком с полным аппаратным ускорением, предоставляемым гипервизором KVM (Kernel-based Virtual Machine).
В данной главе мы начнём с установки QEMU на Linux, затем исследуем различные примеры построения, сопровождения, управления и использования образов лиска для экземпляров виртуальных машин. Затем мы выполним глубокий обзор исполнения QEMU в режиме эмуляции всей системы с применением предстоставляемых исполняемых кодов. Наконец, мы собираемся закончить эту главу подробностями о том, как подключаться к тем виртуальным машинам, которые мы запускали ранее с использованием клиентов VNC.
Установка и настройка QEMU
В данном рецепте мы рассмотрим установку QEMU на некотором отдельном сервере при помощи предоставляемых
пакетов дистрибутивов. Для промышленных сред мы рекомендуем заранее откомпилированные, собранные в пакет
версии QEMU для более простого и согласованного развёртывания. Однако, мы собираемся рассмотреть некий пример
того как скомпилировать QEMU из исходных кодов в том случае, когда вам необходима определённая версия, которую
вы позднее пожелаете собрать в пакет.
Приготовление
В зависимости от вашего дистрибутива Linux само название пакета и команду установки могут отличаться. Вы
можете применять свою систему диспетчера пакетов, например
,
dnf
или yum
для поиска
каких- либо пакетов, содержащих строку QEMU и ознакомиться с теми, которые доступны для вашего конкретного
случая. Все исходные годы могут быть выгружены с официального вебсайта проекта по адресу
http://www.qemu-project.org/download/#source.
Как это сделать
Чтобы установить QEMU из пакетов в дистрибутиве Ubuntu/ Debian выполните следующие шаги:
-
Обновите индексацию своего пакета:
root@kvm:~# apt-get update
-
Установите сам пакет:
root@kvm:~# apt-get install -y qemu
В дистрибутивах CentOS/RHEL выполните:
-
root@kvm:~# yum install qemu-kvm
Чтобы установить из исходного кода выполните процедуру:
-
Вначале загрузите весь архив:
root@kvm:~#cd /usr/src && wget http://download.qemu-project.org/qemu-2.8.0.tar.xz
-
Распакуйте файлы из этого архива:
root@kvm:/usr/src# tar xvJf qemu-2.8.0.tar.xz && cd qemu-2.8.0
-
Настройте и скомпиллируйте данный исходный код:
root@kvm:/usr/src/qemu-2.8.0# ./configure root@kvm:/usr/src/qemu-2.
Как это работает
Настройка QEMU достаточно тривиальна, как мы только что увидели. Давайте взглянем на то, какие метапакеты QEMU утсанавливаются в Ubuntu:
root@kvm:~# dpkg --list | grep qemu
ii ipxe-qemu 1.0.0+git-20150424.a25a16d-1ubuntu1 all PXE boot firmware - ROM images for qemu
ii qemu 1:2.5+dfsg-5ubuntu10.8 amd64 fast processor emulator
ii qemu-block-extra:amd64 1:2.5+dfsg-5ubuntu10.8 amd64 extra block backend modules for qemu-system and qemu-utils
ii qemu-slof 20151103+dfsg-1ubuntu1 all Slimline Open Firmware -- QEMU PowerPC version
ii qemu-system 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries
ii qemu-system-arm 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (arm)
ii qemu-system-common 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (common files)
ii qemu-system-mips 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (mips)
ii qemu-system-misc 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (miscelaneous)
ii qemu-system-ppc 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (ppc)
ii qemu-system-sparc 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (sparc)
ii qemu-system-x86 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU full system emulation binaries (x86)
ii qemu-user 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU user mode emulation binaries
ii qemu-user-binfmt 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU user mode binfmt registration for qemu-user
ii qemu-utils 1:2.5+dfsg-5ubuntu10.8 amd64 QEMU utilities
root@kvm:~#
Из пердыдущего вывода мы можем видеть, что в процесс вовлечено несколько пакетов. Если вам это интересно,
вы можете прочитать их индивидуальные описания чтобы ознакомиться с тем, что именно предоставляет каждый из
пакетов.
Заслуживает внимания тот факт, что все исполняемые файлы упомянутых выше пакетов начинаются с префикса QEMU.
Вы можете применять завершение клавиши tab
для просмотра
списка всех доступных для исполнения файлов:
root@kvm:~# qemuqemu-aarch64 qemu-io qemu-mips64el qemu-ppc64 qemu-sparc32plus qemu-system-lm32 qemu-system-mipsel qemu-system-sh5 qemu-system-xtensa
qemu-alpha qemu-m68k qemu-mipsel qemu-ppc64abi32 qemu-sparc64 qemu-system-m68k qemu-system-moxie qemu-system-sh5eb qemu-system-xtensaeb
qemu-arm qemu-make-debian-root qemu-mipsn32 qemu-ppc64le qemu-system-aarch64 qemu-system-microblaze qemu-system-or32 qemu-system-sparc qemu-tilegx
qemu-armeb qemu-microblaze qemu-mipsn32el qemu-s390x qemu-system-alpha qemu-system-microblazeel qemu-system-ppc qemu-system-sparc64 qemu-unicore32
qemu-cris qemu-microblazeel qemu-nbd qemu-sh5 qemu-system-arm qemu-system-mips qemu-system-ppc64 qemu-system-tricore qemu-x86_64
qemu-i386 qemu-mips qemu-or32 qemu-sh5eb qemu-system-cris qemu-system-mips64 qemu-system-ppc64le qemu-system-unicore32
qemu-img qemu-mips64 qemu-ppc qemu-sparc qemu-system-i386 qemu-system-mips64el qemu-system-ppcemb qemu-system-x86_64
root@kvm:~#
Мы можем заметить, что имеется по одному исполняемому файлу для каждого типа архитектуры, который мы имеем возможность эмулировать.
Управление образами дисков при помощи qemu-img
Чтобы исполнять виртуальные машины, QEMU требуются образы для хранения определённой файловой системы данной
гостевой ОС. Такой образ сам по себе имеет тип некоторого файла и он представляет всю гостевую файловую систему,
расположенную в некотором виртуальном диске. QEMU поддерживает различные образы и предоставляет инструменты
для создания и управления ими. В данном рецепте мы намереваемся построить некий пустой образ диска с помощью
утилиты qemu-img
.
Приготовление
Чтобы воспользоваться данным рецептом, нам необходимо иметь установленной утилиту
qemu-img
.. Если вы следовали всем шагам в первом рецепте, вы должны
её иметь. Чтобы проверить какие типы образов поддерживаются в вашем дистрибутиве Linux, исполните
следующую команду:
root@kvm:~# qemu-img -h | grep Supported
Supported formats: bochs vvfat rbd vpc parallels tftp ftp ftps raw https qcow dmg http qcow2 quorum null-aio cloop vdi iscsi null-co vhdx blkverify file vmdk host_cdrom blkdebug host_device sheepdog qed nbd
root@kvm:~#
Из предыдущего вывода мы можем обнаружить, что имеется много поддерживаемых образов в данной тестовой
системе, которые мы можем применять. Убедитесь, что ваша версия QEMU поддерживает тип сырого (raw) образа,
поскольку он является типом по умолчанию и именно его мы собираемся применять в данном рецепте. одним из
наиболее часто применяемых типов является qcow2
, который поддерживает
копирование при записи {Прим. пер.: механизм, при котором все изменения
осуществляются новой записью}, сжатием, шифрованием, а также созданием моментальных снимков.
Мы собираемся усилиться с его помощью в последующих рецептах.
{Прим. пер.: для справки: основной формат, применяемый в VMWare/ ESXi
.vmdk
, в Citrix/ XenServer .xva
,
в Microsoft/ Hyper-V .vhdx
Подробнее см. {Прим.
пер.: см. Также ознакомьтесь….}
Замечание | |
---|---|
Заметьте, пожалуйста, что хотя QEMU поддерживает множество форматов, это совсем не означает, что вы
можете исполнять в нём эти виртуальные машины. |
Как это сделать…
Для создания пустого образа raw
определённого размера и проверки того
то этот файл был создан на данном хосте:
-
Создайте образ
raw
с названиемdebian.img
и размером 10 ГБ:root@kvm:~# qemu-img create -f raw debian.img 10G Formatting 'debian.img', fmt=raw size=10737418240 root@kvm:~#
-
Проверьте что файл был создан:
root@kvm:~# ls -lah debian.img -rw-r--r-- 1 root root 10G Feb 10 16:58 debian.img root@kvm:~#
-
Опросите тип файла:
root@kvm:~# file -s debian.img debian.img: data root@kvm:~#
-
Получите дополнительную информацию о данном образе:
root@kvm:~# qemu-img info debian.img image: debian.img file format: raw virtual size: 10G (10737418240 bytes) disk size: 0 root@kvm:~#
Как это работает…
Утилита qemu-img
позволяет нам создавать, преобразовывать и
изменять образы гостей.
На 1 шаге мы воспользовались конкретным флагом -f
определяющим
выбранный нами формат файла, в данном случае это raw
,
само название данного подлежащего созданию образа и его размер в гигабайтах.
На шаге 4 мы воспользовались подкомандой info
для получения
дополнительной информации о данном имеющемся образе. Отметим, что имеющийся размер диска, отображаемый в
настоящий момент равен нулю. Мы собираемся создать что- то в своём следующем рецепте.
Также ознакомьтесь…
В данном рецепте мы перечислили поддерживаемые QEMU форматы дисков. Ниже мы представляем краткое описание наиболее общих типов, с которыми вы можете встретиться:
-
raw
: Формат сырого образа диска. Он является форматом по умолчанию и может быть одним из самых быстрых форматов на основе файла. Если вы отформатируете этот образ некоторой файловой системой, которая поддерживает пустые места, например, EXT3, тогда пространство будут использовать только имеющие данные сектора. Основным недостатком таких сырых образов является отсутствие свойств, что делает их идеальным средством для тестирования и прототипирования. -
qcow2
: как уже упоминалось в предыдущем разделе, это формат, обладающий одним из самых богатых набором свойств. Он поддерживает моментальные снимки ВМ, сжатие и шифрование за счёт небольшого снижения производительности. {Прим. пер.: для запоминания аббревиатуры: QEMU Copy- On- Write}. -
qcow
: Это более старый формат QEMU, который поддерживает файлы резервных копий, компактные файлы образов, шифрование и компрессию. -
dmg
: Это формат образа диска для Mac. Данный образ диска Mac предоставляет защиту безопасным паролем и сжатие, а также наиболее часто применяется для распространения програмного обеспечения вместо того, чтобы исполнять виртуальные машины. -
nbd
: Сетевые блочные устройства (network block device), обычно применяются для доступа к удалённым устройствам хранения. -
vdi
: Этот формат диска применяется программным обеспечением Oracle VirtualBox и может использоваться для исполнения виртуальных машин на платформах с различными ЦПУ. -
vmdk
: Это тип образа диска VMWare, в котором отдельный виртуальный жёсткий диск может объединять множество файлов. -
vhdx
: Этот формат применяет Microsoft Hyper-V. Он предоставляет большую ёмкость хранения, защиту от разрушения данных в процессе отказов электропитания, а также оптимизацию чтения/ записи для больших образов дисков.
В данной книге мы собираемся пользоваться форматами дисков raw
и
qcow2
, поскольку они предоставляют наилучшую производительность и
набор средств для исполнения и манипуляции ими.
Подготовка образов для установки ОС при помощи qemu-nbd
В предыдущем рецепте мы создали некий пустой образ raw. В данном рецепт мы собираемся сделать в нём некий раздел и какую- то файловую систему, подготовив этот образ для полной установки гостевой ОС. При создании таких раздела и файловой системы вам следует рассмотреть тот тип загрузки, который создаст этот виртуальный экземпляр. Если ваше приложение исполняется внутри ВМ с ограниченными операциями ввода/ вывода, вы можете рассмотреть для его файловой системы XFS. В данном рецепте мы собираемся применить EXT4, так как большая часть дистрибутивов Linux боддерживают её сразу после установки.
Приготовление
Для данного рецепта нам понадобятся следующие инструменты:
Большинство дистрибутивов Linux должны уже иметь все эти инструменты установленными, если это не так,
ознакомьтесь с документацией своего дистрибутива по поводу того, как их установить.
Как это сделать…
Выполните следующие обозначенные шаги чтобы разметить диск и создать некую файловую систему в своём пустом образе:
-
Загрузите необходимый вам модуль ядра
nbd
:root@kvm:~# modprobe nbd root@kvm:~#
-
Воспользовавшись инструментом
qemu-nbd
, свяжите имеющийся файл пустого образа с блочным устройством/dev/nbd0
:root@kvm:~# qemu-nbd --format=raw --connect=/dev/nbd0 debian.img root@kvm:~#
-
Создайте в этом блочном устройстве два раздела. Один будет применяться для подкачки (swap), а другой будет выступать в роли того корневого раздела, который требуется вашей гостевой ОС:
root@kvm:~# sfdisk /dev/nbd0 << EOF >,1024,82 >; >EOF Checking that no-one is using this disk right now ... OK Disk /dev/nbd0: cannot get geometry Disk /dev/nbd0: 1305 cylinders, 255 heads, 63 sectors/track sfdisk: ERROR: sector 0 does not have an msdos signature /dev/nbd0: unrecognized partition table type Old situation: No partitions found New situation: Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/nbd0p1 0+ 1023 1024- 8225279+ 82 Linux swap / Solaris /dev/nbd0p2 1024 1304 281 2257132+ 83 Linux /dev/nbd0p3 0 - 0 0 0 Empty /dev/nbd0p4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. Successfully wrote the new partition table Re-reading the partition table .
.. If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).) root@kvm:~#
-
После создания разделов перечислите все доступные блочные устройства:
Code
root@kvm:~# ls -la /dev/nbd0* brw-rw---- 1 root disk 43, 0 Feb 10 18:24 /dev/nbd0 brw-rw---- 1 root disk 43, 1 Feb 10 18:24 /dev/nbd0p1 brw-rw---- 1 root disk 43, 2 Feb 10 18:24 /dev/nbd0p2 root@kvm:~#
-
Создайте необходимый раздел подкачки:
root@kvm:~# mkswap /dev/nbd0p1 Setting up swapspace version 1, size = 508 KiB (520192 bytes) no label, UUID=c246fe39-1bc5-4978-967c-806264771d69 root@kvm:~#
-
В качестве своего корневого раздела создайте файловую систему EXT4:
root@kvm:~# mkfs.ext4 /dev/nbd0p2 mke2fs 1.42.13 (17-May-2015) Discarding device blocks: failed - Input/output error Creating filesystem with 2620928 4k blocks and 655360 inodes Filesystem UUID: 2ffa23de-579a-45ad-abbc-2a179de67f11 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done root@kvm:~#
Как это работает…
Мы воспользовались преимуществами функциональности, которые предоставляет модуль ядра
nbd
, предоставляя нам возможность связать некий файл образа raw
с блочным устройством при помощи утилиты qemu-nbd
. Для получения
дополнительной информации об этом модуле ядра исполните следующий код:
root@kvm:~# modinfo nbd
filename: /lib/modules/4.4.0-62-generic/kernel/drivers/block/nbd.ko
license: GPL
description: Network Block Device
srcversion: C67096AF2AE3C738DBE0B7E
depends:
intree: Y
vermagic: 4.4.0-62-generic SMP mod_unload modversions
parm: nbds_max:number of network block devices to initialize (default: 16) (int)
parm: max_part:number of partitions per device (default: 0) (int)
root@kvm:~#
Мы можем опросить метаданные своего блочного устройства, которое мы создали на шаге 2 выполнив такую команду:
root@kvm:~# file -s /dev/nbd0
/dev/nbd0: x86 boot sector
root@kvm:~#
После создания двух новых разделов на шаге 3 изменился тип самого файла образа. Давайте опросим его снова:
root@kvm:~# file -s debian.img
debian.img: x86 boot sector
root@kvm:~#
Замечание | |
---|---|
Мы выбрали использование утилиты |
Теперь, когда у нас имеется файл некого образа, который содержит два раздела и какую- то файловую систему, мы можем продолжить установку своей гостевой ОС в нашем следующем рецепте.
Установка пользовательской ОС в образ при помощи debootstrap
В данном рецепте мы собираемся воспользоваться утилитой debootstrap
для установки дистрибутива Debian в том образе raw, который мы подготовили в двух предыдущих рецептах.
Сама команда debootstrap
применяется для самозагрузки некоторой
базовой системы Debian с применением определённого общедоступного зеркала. К концу данного рецепта мы должны
иметь некий образ, содержащий полный дистрибутив Linux готовый к исполнению QEMU.
Приготовление
Для выполнения данного рецепта мы будем нуждаться в следующем:
Чтобы убедиться что область подкачки и блочное устройство корня всё ещё присутствуют в вашей системе, исполните следующее:
root@kvm:~# ls -la /dev/nbd0*
brw-rw---- 1 root disk 43, 0 Feb 10 18:24 /dev/nbd0
brw-rw---- 1 root disk 43, 1 Feb 10 18:24 /dev/nbd0p1
brw-rw---- 1 root disk 43, 2 Feb 10 18:24 /dev/nbd0p2
root@kvm:~#
Если что- то находится не на своём месте, повторите, пожалуйста, рецепт Подготовка образов для установки ОС при помощи qemu-nbd по поводу того как связать свой
образ raw с необходимым блочным устройством /deb/nbd0
.
Чтобы установить утилиту debootstrap
, если она ещё не присутствует
у вас в системе, исполните следующий код:
root@kvm:~# apt install -y debootstrap
...
Setting up debootstrap (1.0.78+nmu1ubuntu1.2) ...
root@kvm:~#
Как это сделать…
Для установки некоторого нового дистрибутива Debian в своё устройство raw следуйте набросанным далее шагам:
-
Смонтируйте свой корневой раздел из устройства NBD (Network Block Device) и убедитесь что оно смонтировалось успешно:
root@kvm:~# mount /dev/nbd0p2 /mnt/ root@kvm:~# mount | grep mnt /dev/nbd0p2 on /mnt type ext4 (rw) root@kvm:~#
-
Установите самую последнюю стабильную версию дистрибутива Debian в свой корневой раздел смонтированный в
/mnt
из определённого общедоступного репозитория:root@kvm:~# debootstrap --arch=amd64 --include="openssh-server vim" stable /mnt/ http://httpredir.debian.org/debian/ ... I: Base system installed successfully. root@kvm:~#
-
Убедитесь что ваша корневая файловая система была создана выведя перечень всех имеющихся в данном смонтированном местоположении файлов:
root@kvm:~# ls -lah /mnt/ total 100K drwxr-xr-x 22 root root 4.0K Feb 10 17:19 . drwxr-xr-x 23 root root 4.0K Feb 10 15:29 .. drwxr-xr-x 2 root root 4.0K Feb 10 17:19 bin drwxr-xr-x 2 root root 4.0K Dec 28 17:42 boot drwxr-xr-x 4 root root 4.0K Feb 10 17:18 dev drwxr-xr-x 55 root root 4.0K Feb 10 17:19 etc drwxr-xr-x 2 root root 4.0K Dec 28 17:42 home drwxr-xr-x 12 root root 4.0K Feb 10 17:19 lib drwxr-xr-x 2 root root 4.0K Feb 10 17:18 lib64 drwx------ 2 root root 16K Feb 10 17:06 lost+found drwxr-xr-x 2 root root 4.0K Feb 10 17:18 media drwxr-xr-x 2 root root 4.0K Feb 10 17:18 mnt drwxr-xr-x 2 root root 4.0K Feb 10 17:18 opt drwxr-xr-x 2 root root 4.0K Dec 28 17:42 proc drwx------ 2 root root 4.0K Feb 10 17:18 root drwxr-xr-x 4 root root 4.0K Feb 10 17:19 run drwxr-xr-x 2 root root 4.0K Feb 10 17:19 sbin drwxr-xr-x 2 root root 4.0K Feb 10 17:18 srv drwxr-xr-x 2 root root 4.0K Apr 6 2015 sys drwxrwxrwt 2 root root 4.0K Feb 10 17:18 tmp drwxr-xr-x 10 root root 4.0K Feb 10 17:18 usr drwxr-xr-x 11 root root 4.0K Feb 10 17:18 var root@kvm:~#
-
Свяжите весь каталог устройств со своего хоста в выстраиваемую файловую систему образа и смонтируйте их:
root@kvm:~# mount --bind /dev/ /mnt/dev root@kvm:~#
-
Проверьте что все устройства
nbd
теперь присутствуют внутри этого смонтированного положения:root@kvm:~# ls -la /mnt/dev/ | grep nbd0 brw-rw---- 1 root disk 43, 0 Feb 10 18:24 nbd0 brw-rw---- 1 root disk 43, 1 Feb 10 18:26 nbd0p1 brw-rw---- 1 root disk 43, 2 Feb 10 18:26 nbd0p2 root@kvm:~#
-
Измените пространство имён данного каталога, чтобы оно было корневой файловой системой нашего образа и убедитесь в успешности данной операции:
root@kvm:~# chroot /mnt/ root@kvm:/# pwd / r oot@kvm:/#
-
Проверьте номер версии дистрибутива внутри своей среды chroot:
root@kvm:/# cat /etc/debian_version 8.7 root@kvm:/#
-
Code
New-VM -Name VM01 -Generation 2
-
Смонтируйте виртуальные файловые системы
proc
иsysfs
внутри своей среды chroot:proc and sysfs
root@kvm:/# mount -t proc none /proc root@kvm:/# mount -t sysfs none /sys root@kvm:/# -
Всё ещё находясь внутри местоположения своего chroot, установите сам метапакет ядра Debian и утилиты
grub2
:root@kvm:/# apt-get install -y --force-yes linux-image-amd64 grub2
Замечание Если вы получите запрос на выбор целевого устройства для установки в нём GRUB, не выбирайте никакого и просто продолжите.
-
Установите GRUB в своём корневом устройстве:
root@kvm:/# grub-install /dev/nbd0 --force Installing for i386-pc platform. grub-install: warning: this msdos-style partition label has no post-MBR gap; embedding won't be possible. grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. Installation finished. No error reported. root@kvm:/#
-
Обновите настройки GRUB и сам образ
initrd
:root@kvm:/# update-grub2 Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.16.0-4-amd64 Found initrd image: /boot/initrd.img-3.16.0-4-amd64 done root@kvm:/#
-
Измените пароль root для своего гостя:
root@kvm:/# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@kvm:/#
-
Разрешите доступ к псевдо- Терминалу внутри ОС своего нового гостя:
root@kvm:/# echo "pts/0" >> /etc/securetty root@kvm:/#
-
Измените текущий уровень
systemd
на уровеньmulti-user
:root@kvm:/# systemctl set-default multi-user.target Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target. root@kvm:/#
-
Добавьте точку монтирования своего корня в соответствующий файл
fstab
с тем, чтобы она могла всегда существовать после перезагрузок:root@kvm:/# echo "/dev/sda2 / ext4 defaults,discard 0 0" > /etc/fstab
-
Удалите монтирование следующих файловых систем, поскольку мы сделали их теперь используемыми:
root@kvm:/# umount /proc/ /sys/ /dev/
-
Выйдите из своей среды chroot:
root@kvm:/# exit exit root@kvm:~#
-
Установите GRUB в своём корневом разделе того блочного устройства, которое связано с образом raw:
root@kvm:~# grub-install /dev/nbd0 --root-directory=/mnt --modules="biosdisk part_msdos" --force Installing for i386-pc platform. grub-install: warning: this msdos-style partition label has no post-MBR gap; embedding won't be possible. grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.. Installation finished. No error reported. root@kvm:~#
-
Обновите свой файл настроек GRUB чтобы от отражал правильное блочное устройство для данного образа гостя:
root@kvm:~# sed -i 's/nbd0p2/sda2/g' /mnt/boot/grub/grub.cfg root@kvm:~#
-
Размонтируйте своё устройство
nbd0
:root@kvm:~# umount /mnt root@kvm:~#
-
Отсоедините устройство
nbd0
от данного образа raw:root@kvm:~# qemu-nbd --disconnect /dev/nbd0 /dev/nbd0 disconnected root@kvm:~#
Как это работает…
В предыдущем разделе много чего произошло, поэтому давайте сразу перейдём к командам и обсудим слегка подробнее то, что в точности произошло и почему.
На 1 шаге мы смонтировали свой корневой раздел, который мы создали ранее в своём устройстве
/dev/nbd0p2
в /mnt
, таким
образом, мы можем его применять. Раз монтирование выполнено, на шаге 2 мы устанавливаем весь дистрибутив Debian
в этом устройстве применяя в качестве целевой данную точку монтирования.
Чтобы установить необходимый начальный загрузчик GRUB в данном корневом разделе, мы привязываем и монтируем
свой каталог /dev
из имеющейся файловой системы хоста в файловую систему
выстраиваемого образа в /mnt
на шаге 4.
Затем на шаге 6 мы применяем инструмент chroot чтобы изменить пространство имён своего каталога с тем, чтобы
оно было /mnt
, поэтому мы можем выполнять операции так, как будто мы
напрямую находимся в этой новой ОС.
На шаге 8 мы монтируем виртуальные файловые системы proc
и
sysfs
внутри данного образа, так как их ожидает начальный загрузчик
GRUB.
На шаге 9 мы продолжаем установку исходного кода своего ядра и инструментов GRUB в подготовке к установке самого начального загрузчика в его загрузочный раздел и на шаге 10 мы устанавливаем этот начальный загрузчик.
На шаге 11 были созданы сами файлы настройки GRUB и был обновлён имеющийся образ загрузочного ramdisk.
На шагах 12, 13 и 14 мы изменили установленный пароль root и убедились что мы получаем доступ к певдо- Терминалу, поэтому мы сможем зарегистрироваться в этой ВМ позже, а также изменили текущий уровень исполнения с определённого по умолчанию графического интерфейса на многопользовательский.
Так как имеющийся файл fstab сразу после установки ОС Debian в данном образе является пустым, мы добавили точку монтирования своего корня, иначе наша ВМ не будет иметь возможности запуска. Это было осуществлено на шаге 15.
На шагах 16 и 17 мы выполнили некоторую очистку размонтировав смонтированные нами ранее необходимые файловые системы и вышли из своей среды chroot.
Вернувшись обратно в файловую систему своего хоста на шаге 18, мы установили GRUB в своём устройстве
nbd0
определив необходимое положение монтирования данного образа.
На шаге 19 мы обновили имя устройства настройки GRUB на sda2
,
так как это именно то имя, которое будет возникать внутри данной виртуальной машины после её запуска. Само имя
nbd0p2
присутствует только пока мы вынуждены поддерживать связь между своим
образом raw и соответствующим сетевым блочным устройством ОС нашего хоста. С точки зрения самой ВМ, именно второй
раздел внутри данного созданного нами образа по умолчанию имеет имя sda2
.
И, наконец, на шагах 20 и 21 мы выполняем некоторую очистку удаляя имеющуюся точку монтирования и отсоединяя
свой образ raw от сетевого блочного устройства nbd0
.
Изменение размера образа
В данном рецепте мы собираемся обследовать как изменять размер имеющегося образа raw, размещаемые в нём размеры и саму файловую систему поверх этих разделов.Мы собираемся применять свой образ raw, который мы построили в своих предыдущих рецептах, который содержит разделы подкачки и некоторого корня с отформатированной в нём файловой системой EXT4.
Приготовление
В данном разделе мы собираемся применять следующие инструменты:
-
qemu-img
-
losetup
-
tune2fs
-
e2fsck
-
kpartx
-
fdisk
-
resize2fs
Большая часть из этих утилит должна уже быть установлена в Ubuntu, за исключением kpartx
.
Чтобы установить его, исполните следующее:
root@kvm:~# apt install kpartx
Как это сделать…
Приводимые далее шаги демонстрируют как добавить дополнительное пространство в наш образ raw, который
мы создали ранее, расширить раздел корня и изменить размер файловой системы. К окончанию данного рецепта
первоначальный размер файла образа raw должен измениться с 10 ГБ
до 20 ГБ
.
-
Получите текущий размер своего образа:
root@kvm:~# qemu-img info debian.img image: debian.img file format: raw virtual size: 10G (10737418240 bytes) disk size: 848M root@kvm:~#
-
Добавьте дополнительно 10 ГБ к этому образу:
root@kvm:~# qemu-img resize -f raw debian.img +10GB Image resized. root@kvm:~#
Замечание Имейте в виду, что не все типы образов поддерживают изменение размера. Чтобы изменить размер такого образа вам необходимо преобразовать его вначале в образ raw при помощи команды преобразования
qemu-img
. -
Проверьте новый текущий размер образа:
root@kvm:~# qemu-img info debian.img image: debian.img file format: raw virtual size: 20G (21474836480 bytes) disk size: 848M root@kvm:~#
-
Выведите название самого первого неиспользуемого петлевого (loop) устройства:
root@kvm:~# losetup -f /dev/loop0 root@kvm:~#
-
Соотнесите самое первое неиспользуемое петлевое устройство со своим файлом raw:
root@kvm:~# losetup /dev/loop1 debian.img root@kvm:~#
-
Прочтите информацию данного раздела из данного связанного петлевого устройства и создайте необходимое соответствие устройства:
root@kvm:~# kpartx -av /dev/loop1 add map loop1p1 (252:0): 0 1024 linear 7:1 2048 add map loop1p2 (252:1): 0 20967424 linear 7:1 4096 root@kvm:~#
-
Опросите новые соответствия устройства, представляющие все разделы в данном образе raw:
root@kvm:~# ls -la /dev/mapper total 0 drwxr-xr-x 2 root root 100 Mar 9 19:10 . drwxr-xr-x 20 root root 4760 Mar 9 19:10 .. crw------- 1 root root 10, 236 Feb 10 23:25 control lrwxrwxrwx 1 root root 7 Mar 9 19:10 loop1p1 lrwxrwxrwx 1 root root 7 Mar 9 19:10 loop1p2 root@kvm:~#
-
Получите какую- нибудь информацию от того корневого раздела, с которым установлено соответствие:
root@kvm:~# tune2fs -l /dev/mapper/loop1p2 tune2fs 1.42.13 (17-May-2015) Filesystem volume name: <none> Last mounted on: / Filesystem UUID: 96a73752-489a-435c-8aa0-8c5d1aba3e5f Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 655360 Block count: 2620928 Reserved block count: 131046 Free blocks: 2362078 Free inodes: 634148 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 639 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Flex block group size: 16 Filesystem created: Fri Feb 10 23:29:01 2017 Last mount time: Thu Mar 9 19:09:25 2017 Last write time: Thu Mar 9 19:08:23 2017 Mount count: 12 Maximum mount count: -1 Last checked: Fri Feb 10 23:29:01 2017 Check interval: 0 (<none>) Lifetime writes: 1621 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: f101cccc-944e-4773-8644-91ebf4bd4f2d Journal backup: inode blocks root@kvm:~#
-
Проверьте данную файловую систему в своём корневом разделе отображаемого устройства:
root@kvm:~# e2fsck /dev/mapper/loop1p2 e2fsck 1.has_journal /dev/mapper/loop1p2 tune2fs 1.42.13 (17-May-2015) root@kvm:~#
-
Убедитесь что журнал был удалён:
root@kvm:~# tune2fs -l /dev/mapper/loop1p2 | grep "features" Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize root@kvm:~#
-
Удалите этот отображаемый раздел:
root@kvm:~# kpartx -dv /dev/loop1 del devmap : loop1p2 del devmap : loop1p1 root@kvm:~#
-
Отсоедините данное петлевое устройство от своего образа:
root@kvm:~# losetup -d /dev/loop1 root@kvm:~#
-
Сопоставьте данный образ raw со своим сетевым блочным устройством:
root@kvm:~# qemu-nbd --format=raw --connect=/dev/nbd0 debian.img root@kv
-
При помощи
fdisk
выведите перечень всех доступных разделов, затем удалите свой корневой раздел, повторно создайте его и запишите эти изменения:root@kvm:~# fdisk /dev/nbd0 Command (m for help): p Disk /dev/nbd0: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/nbd0p1 1 16450559 8225279+ 82 Linux swap / Solaris /dev/nbd0p2 16450560 20964824 2257132+ 83 Linux Command (m for help): d Partition number (1-4): 2 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (16450560-41943039, default 16450560): Using default value 16450560 Last sector, +sectors or +size{K,M,G} (16450560-41943039, default 41943039): Using default value 41943039 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. root@kvm:~#
-
Соотнесите первое неиспользуемое петлевое устройство со своим файлом образа кфц, как мы это делали на шаге 5:
root@kvm:~# losetup /dev/loop1 debian.img
-
Прочитайте информацию о данном разделе из сопоставленного петлевого устройства и создайте отображение этого устройства:
root@kvm:~# kpartx -av /dev/loop1 add map loop1p1 (252:2): 0 1024 linear 7:1 2048 add map loop1p2 (252:3): 0 41938944 linear 7:1 4096 root@kvm:~#
-
После того как разбиение завершено, осуществите проверку файловой системы:
root@kvm:~# e2fsck -f /dev/mapper/loop1p2 e2fsck 1.42.13 (17-May-2015) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/loop1p2: 21212/655360 files (0.2% non-contiguous), 226115/2620928 blocks root@kvm:~#
-
Измените размер файловой системы в этом корневом разделе данного отображаемого устройства:
root@kvm:~# resize2fs /dev/nbd0p2 resize2fs 1.42.13 (17-May-2015) Resizing the filesystem on /dev/mapper/loop1p2 to 5242368 (4k) blocks. The filesystem on /dev/mapper/loop1p2 is now 5242368 (4k) blocks long. root@kvm:~#
-
Создайте необходимый журнал файловой системы, так как мы удалили его ранее:
root@kvm:~# tune2fs -j /dev/mapper/loop1p2 tune2fs 1.42.13 (17-May-2015) Creating journal inode: done root@kvm:~#
-
Удалите отображение данного устройства:
New-VM -Name VM01 -Generation 2root@kvm:~# kpartx -dv /dev/loop1 del devmap : loop1p2 del devmap : loop1p1 root@kvm:~# losetup -d /dev/loop1 root@kvm:~#
Как это работает…
Изменение размера для ВМ может быть каким- то образом связано с тем, что мы видели во всех шагах предыдущего раздела. Всё может усложниться если в одном и том же образе имеются несколько разделов Linux, тем более, если мы применяем LVM (Logical Volume Management). Давайте пройдём пошагово по всем выполненным нами ранее командам и более подробно объясним почему мы их выполнили и зачем мы это сделали.
На шаге 1 мы подтвердили значение текущего размера своего образа, которое составляет 10 ГБ.
На шаге 2 мы добавили 10 ГБ в самый конец данного образа и удостоверились, что в этом новом размере образа на шаге 3.
Аннулируем тот образ, который мы построили в предыдущих рецептах и который содержал два раздела, подкачки
и корня. Нам нужен способ работать с ними по отдельности. В частности, мы бы желали выделить то дополнительное
пространство, которое мы добавили на шаге 2, в свой корневой раздел. Для того чтобы сделать это, нам необходимо
выставить его как некое блочное устройство, с которым мы просто сможем манипулировать стандартными утилитами
диска и файловой системы. Мы осуществляем это на шаге 5 с применением команды
losetup
, что в результате делает соответствие между нашим образом и
неким новым блочным устройством с именем /dev/loop1
. На шаге 6 мы
выставляем два индивидуальных раздела как два отображения новых устройств. Причём
/dev/mapper/loop1p2
является тем корневым разделом, к которому
мы бы хотели добавить в конец всё неиспользуемое дисковое пространство.
Прежде чем мы сможем изменить размер отведённый под раздел в своём петлевом устройстве, нам необходимо
проверить целостность его файловой системы и именно это мы выполняем на шаге9. Так как мы применяем файловую
систему с журналом, нам необходимо удалить имеющийся журнал, прежде чем мы изменим размер. Мы выполняем это на
шаге 10 и убеждаемся что наш атрибут has_journal
не отображается
после выполнения на шаге 11 команды tune2fs
.
Теперь нам необходимо работать напрямую с основным блочным устройством вместо работы с индивидуальными
разделами. Мы удаляем установленное соответствие на шагах 12 и 13 и ассоциируем некое новое блочное устройство
со своим файлом образа при помощи команды qemu-nbd
на шаге 14. Наше новое
блочное устройство /dev/nbd0
теперь представляет целиком весь диск данной
гостевой ВМ и он напрямую отображает то, что находится внутри данного образа raw. Мы можем применять это
блочное устройство в точности так же как другой обычный диск и, что ещё более важно, можем применять инструмент,
подобный fdisk
для его опроса и манипуляций с расположенными внутри него
разделами.
На шаге 15 мы применяем утилиту fdisk
для удаления своего корневого
раздела и его повторного создания. Это не разрушает никакие данные файловой системы, однако изменяет её
метаданные, выделяя то дополнительное пространство, которое мы добавили ранее как часть своего корневого
раздела.
Теепрь, когда данное блочное устройство имеет всё выделенной нашему корневому разделу дисковое пространство, нам необходимо расширить саму файловую систему, которая располагается поверх него. Мы делаем это вначале повторно создавая индивидуальное отображение раздела, как мы это делали раньше, чтобы выставить свой корневой раздел напрямую так, чтобы мы могли могли вновь манипулировать им. Мы делаем это на шагах 16 и 17.
На шагах 18 и 19 мы проверяем целостность своей корневой файловой системы, затем мы изменяем её размер до максимального значения доступного дискового пространства в том корневом разделе, в котором она расположена.
Наконец, на шаге 20, мы вновь удаляем имеющееся отображение. Теперь данный образ, а именно корневой раздел внутри данного образа, а также его файловая система EXT4 поверх данного раздела Linux изменены в размере до 20 ГБ.
Вы можете проверить имеющийся новый размер корневого раздела запустив новый экземпляр QEMU с использованием данного образа. Мы собираемся проделать именно это в некотором отдельном рецепте данной главы.
Применение предварительно подготовленных образов
В рецепте Установка пользовательской ОС в образ при
помощи debootstrap мы увидели как применять команду debootstrap
для установки Debian в построенный нами образ. Большинство вендоров Linux предоставляют уже построенные
образы своих дистрибутивов для различных архитектур. Устанавливаемые образы также доступны для ручной
установки необходимых гостевых ОС. В данном рецепте мы собираемся продемонстрировать как получить и
опробовать образы CentOS и Debian, которые уже были построены. В следующем рецепте мы собираемся показать
как запускать QEMU/KVM экземпляры с применением тех же самых образов.
Приготовление
Для данного рецепта нам понадобится QEMU, установленный в ОС нашего хоста. Для получения инструкций о том,
как устанавливать QEMU, пожалуйста, воспользуйтесь рецептом Установка и настройка QEMU в этой главе. Нам также потребуется утилита
wget
для загрузки всех образов с наших восходящих общедоступных
репозиториев.
Как это сделать…
Чтобы получить образы Debian Wheezy для использования c QEMU и KVM выполните следующее:
-
Загрузите необходимый образ, воспользовавшись
wget
:root@kvm:~tmp# wget https://people.debian.org/~aurel32/qemu/amd64/debian_wheezy_amd64_standard.qcow2 --2017-03-09 22:07:20-- 2 Resolving people.debian.org (people.debian.org)... 2001:41c8:1000:21::21:30, 5.153.231.30 Connecting to people.debian.org (people.debian.org)|2001:41c8:1000:21::21:30|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 267064832 (255M) Saving to: ‘debian_wheezy_amd64_standard.qcow2’ debian_wheezy_amd64_standard.qcow2 100% . [===================================>] 254.69M 35.8MB/s in 8.3s 2017-03-09 22:07:29 (30.9 MB/s) - ‘debian_wheezy_amd64_standard.qcow2’ saved [267064832/267064832] root@kvm:~#
-
Проинспектируйте тип этого образа:
root@kvm:~# qemu-img info debian_wheezy_amd64_standard.qcow2 image: debian_wheezy_amd64_standard.qcow2 file format: qcow2 virtual size: 25G (26843545600 bytes) disk size: 261M cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false refcount bits: 16 corrupt: false root@kvm:~#
Чтобы получить образы CentOS выполните следующее:
-
Загрузите необходимый образ, воспользовавшись
wget
:root@kvm:/tmp# wget https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 --2017-03-09 22:11:34-- https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 Resolving cloud.centos.org (cloud.centos.org)... 2604:4500::2a8a, 136.243.75.209 Connecting to cloud.centos.org (cloud.centos.org)|2604:4500::2a8a|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1361182720 (1.3G) Saving to: ‘CentOS-7-x86_64-GenericCloud.qcow2’ CentOS-7-x86_64-GenericCloud.qcow2 100%[=========================================>] 1.27G 22.3MB/s in 54s 2017-03-09 22:12:29 (24.0 MB/s) - ‘CentOS-7-x86_64-GenericCloud.qcow2’ saved [1361182720/1361182720] FINISHED --2017-03-09 22:12:29-- Total wall clock time: 54s Downloaded: 1 files, 1.3G in 54s (24.0 MB/s) root@kvm:/tmp#
-
Проинспектируйте тип полученного образа:
root@kvm:~# qemu-img info CentOS-7-x86_64-GenericCloud.qcow2 image: CentOS-7-x86_64-GenericCloud.qcow2 file format: qcow2 virtual size: 8.0G (8589934592 bytes) disk size: 1.3G cluster_size: 65536 Format specific information: compat: 0.10 refcount bits: 16 root@kvm:~#
Как это работает…
Имеется множество общедоступных репозиториев во всемирном Интернете, которые предоставляют образы
различных типов, причём наиболее распространённым является qcow2
для применения с QEMU/ KVM. В предыдущем разделе мы воспользовались официальным репозиторием CentOS для
получения необходимого образа и ещё одним другим, содержащим предварительно построенные образы для
Debian.
Оба образа представлены в формате qcow2
, что подтверждено на
шаге 2.
Также ознакомьтесь…
До сих пор мы только видели как строить, испытывать, манипулировать и загружать образы. Ы следующем рецепте мы собираемся сосредоточиться на том, как на самом деле применять образы для запуска экземпляров QEMU/ KVM/
Дополнительно
Для получения дополнительной информации о том, какие предварительно построенные образы доступны для перечисленных дистрибутивов, опросите следующие ссылки:
Выполнение ВМ при помощи qemu-system-*
В данном рецепте мы собираемся продемонстрировать как запускать виртуальные машины при помощи QEMU. QEMU предоставляет исполняемые файлы, которые могут эмулировать различные архитектуры WGE с применением либо пользовательских, либо предварительно построенных образов для необходимых гостевых ОС.
Если вы выполнили рецепт рецептом Установка и настройка QEMU, вы уже должны иметь хост который содержит следующие исполняемые файлы:
root@kvm:~# ls -la /usr/bin/qemu-system-*
-rwxr-xr-x 1 root root 8868848 Jan 25 12:49 /usr/bin/qemu-system-aarch64
-rwxr-xr-x 1 root root 7020544 Jan 25 12:49 /usr/bin/qemu-system-alpha
-rwxr-xr-x 1 root root 8700784 Jan 25 12:49 /usr/bin/qemu-system-arm
-rwxr-xr-x 1 root root 3671488 Jan 25 12:49 /usr/bin/qemu-system-cris
-rwxr-xr-x 1 root root 8363680 Jan 25 12:49 /usr/bin/qemu-system-i386
-rwxr-xr-x 1 root root 3636640 Jan 25 12:49 /usr/bin/qemu-system-lm32
-rwxr-xr-x 1 root root 6982528 Jan 25 12:49 /usr/bin/qemu-system-m68k
-rwxr-xr-x 1 root root 3652224 Jan 25 12:49 /usr/bin/qemu-system-microblaze
-rwxr-xr-x 1 root root 3652224 Jan 25 12:49 /usr/bin/qemu-system-microblazeel
-rwxr-xr-x 1 root root 8132992 Jan 25 12:49 /usr/bin/qemu-system-mips
-rwxr-xr-x 1 root root 8356672 Jan 25 12:49 /usr/bin/qemu-system-mips64
-rwxr-xr-x 1 root root 8374336 Jan 25 12:49 /usr/bin/qemu-system-mips64el
-rwxr-xr-x 1 root root 8128896 Jan 25 12:49 /usr/bin/qemu-system-mipsel
-rwxr-xr-x 1 root root 3578592 Jan 25 12:49 /usr/bin/qemu-system-moxie
-rwxr-xr-x 1 root root 3570848 Jan 25 12:49 /usr/bin/qemu-system-or32
-rwxr-xr-x 1 root root 8701760 Jan 25 12:49 /usr/bin/qemu-system-ppc
-rwxr-xr-x 1 root root 9048000 Jan 25 12:49 /usr/bin/qemu-system-ppc64
lrwxrwxrwx 1 root root 17 Jan 25 12:49 /usr/bin/qemu-system-ppc64le -> qemu-system-ppc64
-rwxr-xr-x 1 root root 8463680 Jan 25 12:49 /usr/bin/qemu-system-ppcemb
-rwxr-xr-x 1 root root 6894528 Jan 25 12:49 /usr/bin/qemu-system-sh5
-rwxr-xr-x 1 root root 6898624 Jan 25 12:49 /usr/bin/qemu-system-sh5eb
-rwxr-xr-x 1 root root 4032000 Jan 25 12:49 /usr/bin/qemu-system-sparc
-rwxr-xr-x 1 root root 7201696 Jan 25 12:49 /usr/bin/qemu-system-sparc64
-rwxr-xr-x 1 root root 3704704 Jan 25 12:49 /usr/bin/qemu-system-tricore
-rwxr-xr-x 1 root root 3554912 Jan 25 12:49 /usr/bin/qemu-system-unicore32
-rwxr-xr-x 1 root root 8418656 Jan 25 12:49 /usr/bin/qemu-system-x86_64
-rwxr-xr-x 1 root root 3653024 Jan 25 12:49 /usr/bin/qemu-system-xtensa
-rwxr-xr-x 1 root root 3642752 Jan 25 12:49 /usr/bin/qemu-system-xtensaeb
root@kvm:~#
Каждая команда способна запустить экземпляр с эмуляцией QEMU для определённой архитектуры ЦПУ. Для данного
рецепта мы собираемся воспользоваться утилитой qemu-system-x86_64
.
Приготовление
Для завершения данного рецепта вам необходимо следующее:
Давайте взглянем на то какие архитектуры ЦПУ поддерживает QEMU в данной системе хоста:
root@kvm:~# qemu-system-x86_64 --cpu help
x86 qemu64 QEMU Virtual CPU version 2.5+
x86 phenom AMD Phenom(tm) 9550 Quad-Core Processor
x86 core2duo Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
x86 kvm64 Common KVM processor
x86 qemu32 QEMU Virtual CPU version 2.5+
x86 kvm32 Common 32-bit KVM processor
x86 coreduo Genuine Intel(R) CPU T2600 @ 2.16GHz
x86 486
x86 pentium
x86 pentium2
x86 pentium3
x86 athlon QEMU Virtual CPU version 2.5+
x86 n270 Intel(R) Atom(TM) CPU N270 @ 1.60GHz
x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2)
x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2)
x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7)
x86 Westmere Westmere E56xx/L56xx/X56xx (Nehalem-C)
x86 SandyBridge Intel Xeon E312xx (Sandy Bridge)
x86 IvyBridge Intel Xeon E3-12xx v2 (Ivy Bridge)
x86 Haswell-noTSX Intel Core Processor (Haswell, no TSX)
x86 Haswell Intel Core Processor (Haswell)
x86 Broadwell-noTSX Intel Core Processor (Broadwell, no TSX)
x86 Broadwell Intel Core Processor (Broadwell)
x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron)
x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron)
x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron)
x86 Opteron_G4 AMD Opteron 62xx class CPU
x86 Opteron_G5 AMD Opteron 63xx class CPU
x86 host KVM processor with all supported host features (only available in KVM mode)
Recognized CPUID flags:
fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 pn clflush ds acpi mmx fxsr sse sse2 ss ht tm ia64 pbe
pni|sse3 pclmulqdq|pclmuldq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cid fma cx16 xtpr pdcm pcid dca sse4.1|sse4_1 sse4.2|sse4_2 x2apic movbe popcnt tsc-deadline aes xsave osxsave avx f16c rdrand hypervisor
fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f rdseed adx smap pcommit clflushopt clwb avx512pf avx512er avx512cd
syscall nx|xd mmxext fxsr_opt|ffxsr pdpe1gb rdtscp lm|i64 3dnowext 3dnow
lahf_lm cmp_legacy svm extapic cr8legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb
invtsc
xstore xstore-en xcrypt xcrypt-en ace2 ace2-en phe phe-en pmm pmm-en
kvmclock kvm_nopiodelay kvm_mmu kvmclock kvm_asyncpf kvm_steal_time kvm_pv_eoi kvm_pv_unhalt kvmclock-stable-bit
npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pause_filter pfthreshold
xsaveopt xsavec xgetbv1 xsaves
arat
root@kvm:~#
Из предыдущего вывода мы можем увидеть полный список тех ЦПУ, которые могут передаваться в параметрах
через флаг -cpu
для эмуляции этого типа ЦПУ внутри нашей виртуальной
машины.
Как это сделать…
Чтобы запустить некую новую виртуальную машину при помощи утилиты qemu-system
исполните такие шаги:
-
Запустите некую новую виртуальную машину QEMU с использованием архитектуры ЦПУ
x86_64
:root@kvm:~# qemu-system-x86_64 -name debian -vnc 146.20.141.254:0 -cpu Nehalem -m 1024 -drive format=raw,index=2,file=debian.img -daemonize root@kvm:~#
-
Убедитесь что данный экземпляр исполняется:
root@kvm:~# pgrep -lfa qemu 3527 qemu-system-x86_64 -name debian -vnc 146.20.141.254:0 -m 1024 -drive format=raw,index=2,file=debian.img -daemonize root@kvm:~#
-
Завершите экземпляр Debian QEMU:
root@kvm:~# pkill qemu root@kvm:~#
-
Запустите новый экземпляр с применением предварительно построенного образа CentOS:
root@kvm:~# qemu-system-x86_64 -vnc 146.20.141.254:0 -m 1024 -hda CentOS-7-x86_64-GenericCloud.qcow2 -daemonize root@kvm:~#
-
Убедитесь что этот экземпляр исполняется:
root@kvm:~# pgrep -lfa qemu 3546 qemu-system-x86_64 -vnc 146.20.141.254:0 -m 1024 -hda CentOS-7-x86_64-GenericCloud.qcow2 -daemonize root@kvm:~#
-
Завершите экземпляр CentOS QEMU:
root@kvm:~# pkill qemu root@kvm:~#
Замечание Не забудьте заменить соответствующие IP адреса в параметре
-vnc
теми, которые имеются у вашей машины хоста.Как это работает…
Как запустить некую виртуальную машину при помощи QEMU/ KVM зависит в основном от имеющегося типа образа и того, как этот раздел структурирован внутри данного образа.
Мы воспользовались двумя разными типами образа с различными схемами разделов чтобы продемонстрировать это понятие.
На шаге 1 мы применили команду
qemu-system-x86_64
для эмуляции некоторой архитектуры ЦПУx86_64
, в частности, мы передали флаг-cpu Nehalem
, эмулирующий модель определённую модель ЦПУ Nehalem. Флагом-vnc
мы передали в качестве параметра конкретный адрес IP своего сервера. Это запустит какой- то сервер VNC в данной ВМ с тем, чтобы мы могли позже воспользоваться неким клиентом VNC для соединения с данным экземпляром QEMU. Мы определили значение объёма памяти, которая должна быть выделена данному экземпляру, в данном случае, 1 ГБ, при помощи флага-m
. Мы проинструктировали QEMU, что мы собираемся использовать некий образ raw посредством опцииformat=raw
, а также название и расположение реального образа через параметрfile=debian.img
.Напомним, что этот образ содержит два раздела, причём второй раздел содержит корневую файловую систему, в которой содержится начальный загрузчик. Очень важно не забывать это, так как нам необходимо определить какой индекс раздела следует загужать нашей гостевой ОС. Мы делаем это с помощью флага
index=2
. Наконец, мы передаём параметр-daemonize
для установки процесса QEMU в фоновый режим.На шаге 4 мы запускаем другой экземпляр QEMU, в этот раз применив образ CentOS
qcow2
, который мы загрузили ранее. Мы не должны определять из какого раздела нам нужно загружаться в нём на этот раз, так как большинство предварительно построенных образов используют первый раздел, или имеют всего один раздел. Мы также применяем флаг-hda
вместо параметра-drive
, просто чтобы продемонстрировать что оба варианта можно применять с одним и тем же результатом. Этот флаг-hda
сообщает QEMU самый первый диск для данного экземпляра, который следует загрузить с того имени файла, которое следует за ним.
Запуск QEMU при помощи KVM
В данном рецепте мы собираемся запустить некуб виртуальную машину QEMU с ускорением KVM.
KVM
(Kernel-based Virtual Machine) является полной
технологией виртуализации для архитектур ЦПУ, которые поддерживают расширения виртуализации. Для процессоров
на основе Intel это именно Intel VT, а для ЦПУ AMD это аппаратное расширение AMD-V. Главными частями KVM
являются два загружаемых модуля ядра с именами, первый kvm.ko
, который
предоставляет всю основную функциональность виртуализации, а также второй модуль ядра, который определяется
процессором, а именно kvm-intel.ko
и
kvm-amd.ko
для двух основных производителей ЦПУ.
QEMU яляется определённым компонентом пользовательского пространства для создания виртуальных машин, тогда как KVM располагается в пространстве ядра. Если вы выполняли компиляцию в рецепте Выполнение ВМ при помощи qemu-system-*, вы должны были заметить, что основная разница между исполнением виртуальной машины KVM и исполнением экземпляра QEMU бкз ускорения состоит всего в одной опции командной строки.
Приготовление
Чтобы запустить некий экземпляр KVM, вам потребуется следующее:
Чтобы проверить поддерживает ли ваш ЦПУ виртуализацию, исполните такой код:
root@kvm:~# cat /proc/cpuinfo | egrep "vmx|svm" | uniq
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc cqm_occup_llc dtherm arat pln pts
root@kvm:~#
Наличие соответствующего флага vmx
(для Intel) или
svm
(для AMD) является индикатором того, что ваш ЦПУ поддерживает
все необходимые расширения виртуализации.
Замечание | |
---|---|
Данный флаг из вывода команды |
Чтобы вручную загрузить необходимый модуль KVM и гарантировать что он был загружен, выполните следующий код:
root@kvm:~# modprobe kvm
root@kvm:~# lsmod | grep kvm
kvm 455843 0
root@kvm:~#
Как это сделать…
Для запуска некоторого экземпляра KVM, проверки того что он запущен и в конце концов его останова исполните следующее:
-
Запустите некий экземпляр QEMU с поддержкой KVM:
root@kvm:~# qemu-system-x86_64 -name debian -vnc 146.20.141.254:0 -m 1024 -drive format=raw,index=2,file=debian.img -enable-kvm -daemonize root@kvm:~#
-
Убедитесь что это экземпляр работает:
root@kvm:~# pgrep -lfa qemu 4895 qemu-system-x86_64 -name debian -vnc 146.20.141.254:0 -m 1024 -drive format=raw,index=2,file=debian.img -enable-kvm -daemonize root@kvm:~#
Остановите это экземпляр:
root@kvm:~# pkill qemu root@kvm:~#
Как это работает…
Чтобы запустить виртуальную машину QEMU/KVM, всё что нам требуется сделать в отличии от того, что мы
выполняли в нашем рецепте Установка и настройка QEMU,
это передача флага -enable-kvm
в команде
qemu-system-x86_64
.
На шаге 1 мы определили некоторое имя для своей ВМ с помощью флага
-name
, предоставили IP адрес физического хоста в флаг
-vnc
, включили доступ VNC для данного виртуального экземпляра,
выделили 1 ГБ памяти в флаге -m
, определили тот раздел, где размещён
начальный загрузчик с помощью параметра index=2
, задали формат
образа и, наконец, мы разрешили аппаратное ускорение KVM воспользовавшись параметром
-enable-kvm
и демонизировали этот процесс {Прим.
пер.: перевели в фоновый режим} флагом -daemonize
.
На шаге 2 мы убедились, что этот экземпляр исполняется, а на 3 шаге прекратили его.
Также ознакомьтесь…
В качестве альтернативы исполнению напрямую команд qemu-system-*
,
в системе Ubuntu имеется пакет qemu-kvm
, который предоставляет
все исполняемые файлы /usr/bin/kvm
.
Эти файлы обёрнуты в команду qemu-system-x86_64
,
а она передаёт им параметр -enable-kvm
автоматически.
Чтобы установить этот пакет и вместо всего воспользоваться командой
kvm
, исполните следующее:
root@kvm:~# apt install qemu-kvm
...
root@kvm:~# kvm -name debian -vnc 146.20.141.254:0 -cpu Nehalem -m 1024 -drive format=raw,index=2,file=debian.img -daemonize
root@kvm:~# pgrep -lfa qemu
25343 qemu-system-x86_64 -enable-kvm -name debian -vnc 146.20.141.254:0 -cpu Nehalem -m 1024 -drive format=raw,index=2,file=debian.img -daemonize
root@kvm:~#
Вы должны были отметить, что запуск и останов экземпляров QEMU/KVM является неким выполняемым вручную процессом, в особенности необходимость уничтожения запущенного экземпляра процесса для его останова. В Главе 2, Применение libvirt для управления KVM мы пройдёмся по набору рецептов, которые сделают управление общим жизненным циклом виртуальных машин KVM намного более простым за счёт инчтрументов пользовательского пространства , которые предлагает пакет libvirt.
Подключение к исполняемому экземпляру при помощи VNC
В данном рецепте мы собираемся подключиться к некоторому исполняемому экземпляру KVM с использованием клиента VNC. После соединения мы намереваемся зарегистрироваться и проверить тип ЦПУ и доступную память для этого экземпляра. Мы уже видели как запускать экземпляры QEMU/KVM с поддержкой VNC в предыдущих рецептах, но мы собираемся сделать это снова, на случай если вы читаете книгу от корки до корки.
VNC (Virtual Network Computing) применяет пртокол RFB (Remote Frame Buffer) для удалённого управления другой системой. Он передаёт все экраны с такого удалённого компьютера обратно своему клиенту, делая доступным полное управление клавиатурой и мышью.
Имеется множество различных клиентов VNC и реализаций сервера, однако для данного рецепта мы собираемся применять свободно распространяемую версию, именуемую цыплёнком VNC для macOS. Вы можете загрузить этого клиента с https://sourceforge.net/projects/cotvnc/.
Приготовление
Чтобы исполнить данный рецепт, вам понадобится следующее:
Как это сделать…
-
Запустите экземпляр
qemu
с KVM ускорением:root@kvm:~# qemu-system-x86_64 -name debian -vnc 146.20.141.254:0 -cpu Nehalem -m 1024 -drive format=raw,index=2,file=debian.img -daemonize root@kvm:~#
-
Убедитесь что этот экземпляр исполняется:
root@kvm:~# pgrep -lfa qemu 4987 qemu-system-x86_64 -name debian -vnc 146.20.141.254:0 -cpu Nehalem -m 1024 -drive format=raw,index=2,file=debian.img -daemonize root@kvm:~#
-
Запустите какого- то клиента VNC и подключите его к серверу VNC по настроенным на шаге 1 IP адресу и порту отображения:
-
Зарегистрируйтесь на нужном вам экземпляре под пользователем root, затем проверьте тип ЦПУ и доступную память, как это показано здесь:
Как это работает…
На шаге 1 мы запускаем новй экземпляр QEMU с ускорением KVM и включаем сервер VNC в нём с определёнными IP адресом и потром дисплея. Мы определили объём доступной памяти и название данной модели ЦПУ.
На шаге 4 мы регистрируемся в этом экземпляре применяя пользователя root и тот пароль, который мы
создали при построении данного образа, затем получаем необходимую информацию ЦПУ исполнив команду
lscpu
. От метим, что название модели ЦПУ соответствует той, что мы
определяем во флаге -cpu
при запуске данной виртуальной машины.
Далее мы проверяем выделение памяти при помощи команды free
,
которая также соответствует ранее определённому параметром -m
значению.
Как вручную пересоздать файл конфигурация загрузки BCD в Windows 10
Диспетчер загрузки в современных версиях Windows использует файл конфигурации загрузки BCD (Boot Configuration Data) для запуска операционной системы, установленной на компьютере. В этом файле хранятся данные об установленной Windows и параметрах ее загрузки. Если файл BCD удален или поврежден, Windows перестает загружаться. Также вы не сможете загрузить Windows, если повреждена MBR запись на жестком диске. В этой статье мы покажем способ ручного пересоздания файла хранилища данных конфигурации загрузки BCD и Master Boot Record (MBR) на примере Windows 10.
Если файл BCD поврежден, отсутствует, если вы удалили / отформатировали отдельный раздел диска с меткой System Reserved (и размером 500Мб), специальный OEM раздел, то скорее всего при попытке загрузить Windows, пользователь увидит такое сообщение:
Your PC needs to be repaired
The Boot Configuration Data file is missing some required information
File: \Boot\BCD
Error code: 0xc0000034
Также ошибка может выглядеть так:
The Boot Configuration Data for your PC is missing or contain errors. File: \boot\bcd Error Code: 0xc000000f
При повреждении MBR может быть ошибка No operating system found.
Автоматическое восстановление конфигурации загрузчика Windows
При появлении такой ошибки, в первую очередь попытайтесь исправить проблему с загрузкой ОС с помощью режима автоматического восстановления (Startup Repair), который можно запустить из среды восстановления Windows RE.
Если автоматическое восстановление с помощью Startup Repair не помогло решить проблему, вам нужно загрузиться с загрузочного или установочного диска с Windows или в среде WinRe (Repair your computer -> Troubleshoot -> Advanced options -> Command Prompt), запустить командную строку и попытаться создать новый файл конфигурации BCD и обновить MBR запись«с нуля».
В этом примере я буду использовать установочный диск с Windows 10. Выберите в настройках BIOS первичным загрузочным устройство DVD диск или USB флешку (в зависимости от того, с какого устройства вы хотите загрузить компьютер). Загрузитесь с установочного диска и на экране выбора языка установки нажмите сочетание клавиш Shift+F10. Перед вами откроется консоль командной строки.
Попробуйте восстановить BCD файл автоматически, выполнив команду:
bootrec /RebuildBCD
Перезагрузите компьютер и проверьте, загружается ли Windows (не забудьте изменить приоритет загрузочных устройств в BIOS). Если ОС не загружается, еще раз загрузитесь с установочного диска и откройте окно командной строки.
Идентификация разметки дисков и букв томов
Очень важно. Все инструкции, описанные ниже, подходят для обычных MBR+BIOS систем. На системах с UEFI для пересоздания BCD нужно воспользоваться следующими инструкциями по восстановлению загрузчика для Windows 10/8 c EFI или для Windows 7.Как понять, используется ли у вас BIOS или UEFI система? Проще всего проверить тип таблицы разделов на диске, на котором установлена Windows: GPT или MBR. Для этого выполните команду:
diskpart
Затем выполните:
list disk
Если у диска в столбце Gpt указана звездочка (*), значит на диске используется таблица разделов GPT (это значит, что у вас компьютер с UEFI, и для восстановления загрузчика нужно использовать статью по ссылке выше). Если в столбце GPT звездочка отсутствует, значит у вас на диске таблица разделов MBR, и вы можете продолжить следовать данной инструкции.
Далее вам нужно идентифицировать локальные диски и разделы системы (скорее всего назначенные им буквы дисков будут отличаться от дисков, которые вы видели при работе в Windows). Проще всего это сделать с помощью утилиты diskpart. Выполните следующие команды:
diskpart
list vol
Перед вами появится список разделов в системе, назначенные им буквы дисков и их размер. В нашем случае к компьютеру подключен 1 жесткий диск, на котором имеются всего два раздела:
- Раздел System Reserved размером 500 Мб, которому назначена буква диска C:. На этом небольшом служебном разделе по-умолчанию хранится файл конфигурации загрузки BCD (подробнее)
- NTFS раздел размером 39 Гб, которому назначена буква D:. На этом разделе находится установленная Windows, программы и данные пользователя.
Важно. Запомните буквы дисков, назначенные разделам. Данные буквы дисков будут использоваться в последующих командах.
Восстановление загрузочного сектора MBR в Windows 10
С помощью следующих команд мы перезапишем данные в MBR и загрузочном секторе, поместим в них ссылки на загрузчик Windows (bootloader).
bootrec.exe /fixmbr
bootsect.exe /nt60 all /force
bootrec /FixBoot
– команда создает новые загрузочный сектор на системном разделе.bootrec /ScanOs
– сканирование всех дисков и поиск установленных Windows, занесение найденных копий в конфигурацию загрузчика BCD
bootrec /RebuildBcd
После этого перезагрузите компьютер и проверьте загрузку Windows. Если ОС не загружается, следуйте инструкции.
Если команда bootsect.exe не будет найдена, попробуйте указать путь к ней:X:\boot\bootsect.exe /nt60 all /force
Пересоздание BCD файла загрузчика Windows 10
Далее с помощью команды BCDedit нужно создать новый файл с конфигурацией загрузчика (предполагается, что у вас нет резервной копии BCD).
Удалите старый (поврежденный) файл BCD на разделе System Reserved и создайте вместо него новый.del c:\boot\bcd
Запустите: diskpart
Выберите диск (в моем случае в компьютере имеется всего один жесткий диск, а вы можете вывести список дисков командой list disk): select disk 0
Из скриншота выше видно, что раздел с меткой System Reserverd называется Volume 1. Выберите его: select volume 1
Назначьте букву диска (я назначил букву C:, но вы можете использовать любую другую букву, в этом случае измените путь в следующих командах): assign letter C:
exit
Создайте временный пустой файл bcd.tmp:bcdedit /createstore c:\boot\bcd.tmp
Создайте запись для диспетчера загрузки bootmgr:bcdedit.exe /store c:\boot\bcd.tmp /create {bootmgr} /d "Windows Boot Manager"
Импортируйте в BCD настройки из файла bcd.tmp:bcdedit.exe /import c:\boot\bcd.tmp
Укажите, что загрузчик находится на служебном разделе System Reserved (ему назначена буква диска C: )bcdedit.exe /set {bootmgr} device partition=c:
Настройте время ожидания при выборе ОС:bcdedit.exe /timeout 10
Удалите временный файл:del c:\boot\bcd.tmp
Итак, вы создали пустой BCD файл с параметрами загрузчика. Теперь в него нужно добавить записи об установленных на диске Windows .
Создайте в хранилище BCD новую запись для Windows 10:bcdedit.exe /create /d "Windows 10" /application osloader
Команда должна вернуть уникальный идентификатор (GUID) данной записи загрузчика:
The entry {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs} was successfully created.
Укажем, что bootmgr должен использовать данную запись по-умолчанию (после истечения времени ожидания при выборе ОС, для загрузки будет используется именно эта запись).
bcdedit /default {8a7f03d0-5338-11e7-b495-c7fffbb9ccfs}
Теперь в новой записи загрузчика осталось указать пути к имеющейся на диске установленной копии Windows 10. Ранее мы определили, что в среде WinPE диску с установленной Windows присвоена буква D:. Используйте эту букву диска в следующих командах:
bcdedit.exe /set {default}device partition=d:
bcdedit.exe /set {default} osdevice partition=d:
bcdedit.exe /set {default} path \Windows\system32\winload.exe
bcdedit.exe /set {default} systemroot \Windows
Осталось сделать данную загрузочную запись в BCD видимой (по умолчанию она скрыта):bcdedit.exe /displayorder {default} /addlast
Итак, мы полностью пересоздали загрузчик Windows 10 (обновили файл BCD и перезаписали загрузочный сектор в MBR). Теперь вы можете перезагрузить компьютер и убедится, что Windows 10 загружается в штатном режиме.
Запрошенная страница не найдена!
EasyUEFI — Запрошенная страница не найдена!РЕКОМЕНДАЦИИ ПО ГОРЯЧИМ ПРОДУКТАМ Более 10 000 000 замечательных пользователей
Hasleo WinToUSB
БЕСПЛАТНО и мощное программное обеспечение Windows To Go Creator, которое позволяет вам устанавливать или клонировать Windows на USB-накопитель в качестве портативного Windows, и вы можете использовать его для создания установочного USB-накопителя Windows.
УЧИТЬ БОЛЬШЕHasleo Disk Clone
Совершенно бесплатно Программное обеспечение для миграции Windows и клонирования дисков / разделов, которое может помочь вам перенести Windows на другой диск, клонировать один диск на другой или клонировать один раздел в другое место.
УЧИТЬ БОЛЬШЕHasleo BitLocker Anywhere
Лучшее решение BitLocker для Windows, Linux и Mac OS позволяет шифровать том с помощью BitLocker, расшифровывать, монтировать, читать и записывать зашифрованный том BitLocker в операционных системах.
УЧИТЬ БОЛЬШЕHasleo WinToHDD
БЕСПЛАТНО и универсальный инструмент развертывания Windows, который позволяет устанавливать, переустанавливать Windows без использования CD, DVD или USB-накопителя или клонировать текущую установку Windows на другой диск.
УЧИТЬ БОЛЬШЕ
- 30-дневная гарантия возврата денег
- Защищенные транзакции
- Нам доверяют миллионы
- Бесплатная техническая поддержка
Что такое раздел?
Обновлено: 30.11.2020 компанией Computer Hope
При обращении к жесткому диску компьютера, раздел диска или раздел — это раздел жесткого диска, который отделен от других сегментов.Разделы позволяют пользователям разделить физический диск на логические разделы. Например, разрешение работы нескольких операционных систем на одном устройстве.
В более старых таблицах размещения файлов, таких как FAT 16, создание меньших разделов позволяет жесткому диску компьютера работать более эффективно и экономить больше дискового пространства. Однако с новыми таблицами размещения файлов, такими как FAT32, это уже не так.
Какой диск является первым разделом?
На компьютерах Microsoft Windows по умолчанию первый диск (диск 0 или диск 0) содержит первый раздел — это диск C :.
Как выглядит раздел?
Лучший способ увидеть, как выглядит раздел, — это открыть инструмент управления дисками.
Нажмите клавишу Windows , введите Управление дисками , а затем нажмите Введите .
ПримечаниеНебольшой объем дискового пространства, выделенного разделу, непригоден для использования и не может использоваться для хранения данных. Например, на рисунке ниже показан диск или раздел Extra Volume (E 🙂 емкостью 5.86 ГБ, но для хранения данных доступно всего 5,84 ГБ свободного места. Разница в 20 МБ (0,02 ГБ) — это пространство, которое нельзя использовать.
Виды перегородок
Также существует несколько типов разделов. Ниже приведен список некоторых из этих разделов с кратким описанием. Некоторые из этих разделов могут быть недоступны в вашей утилите разделов.
Раздел | Описание |
---|---|
Раздел AIX (загрузочный) | Раздел, используемый в операционной системе AIX. |
Загрузочный раздел | Согласно определению Microsoft, загрузочный раздел — это раздел, содержащий файлы, необходимые для запуска системы. См. Также: Системный раздел |
Раздел BSD / OS (OpenBSD) | Раздел, используемый в операционной системе BSD. |
Раздел DOS (12 бит, 16 бит) | Раздел, используемый в более старых версиях MS-DOS. |
Расширенный раздел DOS | Раздел, расширенный из одного или нескольких исходных разделов MS-DOS. |
DRDOS ( скрытый ) | Раздел, используемый с DR. Операционная система DOS. |
Расширенная перегородка | Раздел, который является расширением одного или нескольких основных разделов. |
Раздел гибернации | Раздел, используемый в старых программах гибернации. |
Раздел HPFS ( OS / 2 IFS ) | Раздел HPFS, используемый с IBM OS / 2 и Microsoft NT 3.х |
Linux ( Linux native , Linux swap , Linux extended , ext2fs ) | Раздел, используемый в различных вариантах операционных систем Linux. |
MINIX | Раздел, используемый в операционной системе MINIX. |
Раздел, не относящийся к DOS | При использовании Microsoft fdisk раздел НЕ-DOS указывает на раздел, который не является собственным для операционной системы Microsoft.Например, это может быть раздел Linux. |
NEC DOS | Раздел, используемый в старом варианте NEC DOS. |
NEXTSTEP | Раздел, используемый в операционной системе NeXTSTEP. |
Novell NetWare | Раздел, используемый в операционной системе Novell NetWare. |
NTFS | Раздел, используемый в Microsoft Windows NT 4.x, Windows 2000 и Windows XP. |
Разделение Magic ( PowerQuest ) | Раздел, созданный с помощью утилиты Partition Magic от PowerQuest. |
ПК-БРОНЯ | Раздел, созданный утилитой безопасности PC ARMOR. При создании этот раздел обычно защищен паролем. |
Первичный | В операционной системе Microsoft первичный раздел относится к основному или первому разделу, используемому для операционной системы Microsoft. |
Солярис X86 | Раздел, используемый в операционной системе платформы Sun Solaris X86. |
Системный раздел | Согласно определению Microsoft, системный раздел — это раздел, содержащий каталог system32. См. Также: загрузочный раздел. |
Тэнди ДОС | Раздел, используемый в старом варианте Tandy DOS. |
Unix System V (SCO, IRIX, ISC, Unix, UnixWare и т. Д…) | Раздел, используемый в различных операционных системах Unix. |
VMware ( VMware Swap ) | Раздел, используемый VMware. |
XENIX ( XENIX / usr ) | Раздел, используемый в операционной системе Xenix. |
Загрузочный сектор, Delpart, FAT, Условия жесткого диска, Условия оборудования, Скрытый раздел, MBR, Виртуальный диск
Окна— поиск активного раздела на конкретном диске из командной строки
Для этого можно использовать wmic
.Вы можете экспортировать его в текстовый файл (> output.txt
) и просматривать без переноса слов, поскольку табличный вывод может быть очень широким.
Чтобы перечислить все разделы (посмотрите на элемент BootPartition
, чтобы проверить, помечен ли он как активный
):
wmic раздел
Чтобы вывести список только активных разделов, отфильтруйте с помощью , где
:
wmic раздел, где BootPartition = true
Чтобы отфильтровать отображаемые столбцы, используйте get
:
wmic раздел, где BootPartition = true получить DeviceID, размер
Также:
wmic раздел получить DeviceID, Size, BootPartition
Для получения дополнительной информации о членах раздела
см. Документацию Win32_DiskPartition.
Загрузочный раздел
Тип данных: логический Тип доступа: только чтение
Раздел — активный раздел. Операционная система использует активный раздел при загрузке с жесткого диска.
Взгляните на синтаксис WQL для получения дополнительной информации об использовании , где
. Взгляните на раздел wmic get /?
для получения дополнительной информации о получите
.
С wmic
вы добавили преимущества удаленного управления с помощью переключателя / node:
(дополнительную информацию см. В wmic / node /?
.Согласно Microsoft:
WMIC можно использовать с любого компьютера с включенным WMIC для удаленного управления любым компьютером с WMI. WMIC не обязательно должен быть доступен на удаленно управляемом компьютере, чтобы WMIC могла им управлять.
Если вы можете найти какой-то способ программного (например, пакетного сценария) получения буквы диска из индекса диска и раздела, вы можете использовать цикл для
с элементами DiskIndex
и Index
(диск и индексы разделов соответственно).
— Как запустить CHKDSK на системном разделе EFI?
Основной причиной этого, скорее всего, являются функции быстрого запуска и гибернации Windows. См. Здесь и здесь для получения информации о том, как отключить эти функции в Windows. В качестве фона эти функции превращают операцию завершения работы в операцию приостановки на диск. Это дает желаемый эффект сокращения времени последующего запуска. К сожалению, нежелательным последствием является то, что совместное использование разделов между ОС становится небезопасным, поскольку они будут находиться в несогласованном состоянии при загрузке ОС, отличной от Windows; а затем, когда Windows загружается, она не будет знать, как обрабатывать любые изменения, внесенные в ОС, отличную от Windows.Это может привести к повреждению файла. Это может повлиять на системный раздел EFI (ESP), где хранятся загрузчики Windows и Ubuntu. В вашем случае я предполагаю, что эти функции были активны (как и по умолчанию), что привело к тому, что Ubuntu выглядит как повреждение файловой системы.
Решение, если я прав, — отключить эти функции. Возможно, вам потребуется перезагрузить Windows, чтобы изменения вступили в силу. После этого вы сможете безопасно читать и писать ESP.
Если после отключения этих функций в разделе все еще видны повреждения, это значит, что для восстановления файловых систем FAT существует собственный инструмент Linux, dosfsck
.Вы можете использовать это вместо CHKDSK
в Windows, но вам нужно либо передать ему параметр -a
, как в sudo dosfsck / dev / sda1
, чтобы проверить / dev / sda1
; или используйте дополнительные параметры для утверждения отдельных изменений. Тем не менее, если вы видите повреждение файловой системы, вы можете сначала создать резервную копию раздела. Использование инструмента резервного копирования на уровне файлов (например, cp
, tar
или zip
) должно быть достаточным. Резервная копия предоставит вам запасной вариант, если операция восстановления файловой системы ухудшит ситуацию.(Это, конечно, предполагает, что все файлы успешно прочитаны и созданы резервные копии!) В этом случае вы можете создать новую файловую систему и восстановить все файлы.
Я никогда не пробовал использовать CHKDSK
на ESP в Windows. Мое подозрение состоит в том, что это можно сделать следующим образом:
- Откройте окно командной строки администратора .
- Введите
mountvol E: / S
, чтобы смонтировать ESP какE:
в этом окне. (ИзменитеE:
на что угодно.) - Введите
CHKDSK E:
, чтобы запустить проверку.
Как я уже сказал, я не пробовал это, поэтому не могу обещать, что это сработает. Если я прав относительно причины вашей проблемы, эта процедура сама по себе будет бесполезной, даже если есть повреждение файловой системы; вам все равно придется отключить быстрый запуск и спящий режим, чтобы сделать систему безопасной для использования в среде с несколькими загрузками.
Linux Mint: как просматривать и управлять системными разделами
Если вы подключаете новое устройство хранения, вы можете с удовольствием отформатировать его и использовать как одно устройство хранения, однако вы также можете предпочесть разделить его на несколько перегородки, каждая из которых предназначена для разного назначения.«Раздел» — это виртуальный сегмент жесткого диска, который может иметь множество применений, в том числе рассматриваться операционной системой как отдельные жесткие диски.
Совет: Вы должны быть очень осторожны при изменении разделов, так как многие изменения могут привести к потере данных. Рекомендуется делать резервные копии перед тем, как что-либо делать, предпринимать действия только тогда, когда вы точно знаете, что произойдет, и никогда не выполнять действия с диском операционной системы, пока он используется.
Чтобы открыть диспетчер дисков и разделов, нажмите клавишу Super, затем введите «Диски» и нажмите Enter.
Совет. Клавиша «Super» — это имя, которое многие дистрибутивы Linux используют для обозначения клавиши Windows или клавиши Apple «Command», избегая при этом любого риска возникновения проблем с торговыми марками.
Нажмите клавишу Super, затем введите «диски» и нажмите Enter.В левом столбце вы можете увидеть список устройств хранения, в котором перечислены как физические диски, так и подключенные разделы на этих дисках. Вы можете увидеть разделы на жестком диске в центральном разделе «Тома».
Вы можете размонтировать раздел, выбрав его, затем нажав кнопку остановки «Размонтировать выбранный раздел» под списком томов, вы можете удалить раздел, нажав кнопку «Удалить выбранный раздел» с минусом.
Если вы хотите полностью сбросить раздел, щелкните значок шестеренки и выберите «Форматировать раздел». Это перезапишет все данные в выбранном разделе, оставив его полностью пустым и готовым к использованию, как если бы он был новым. Вы также можете отформатировать весь жесткий диск, выбрав его в левом столбце, затем щелкнув значок с тремя точками и щелкнув «Форматировать диск».
Диски позволяют отключать и удалять разделы, вы также можете форматировать разделы или целые диски.Чтобы изменить пароль, используемый для шифрования зашифрованного раздела, выберите раздел, затем щелкните шестеренку и «Изменить парольную фразу».Подтвердив старую кодовую фразу, вы можете создать новую.
Если у вас есть место на диске, который в настоящее время не полностью разбит на разделы, вы можете изменить размер существующего раздела, чтобы использовать его, выбрав раздел, щелкнув значок шестеренки, а затем щелкнув изменить размер. Вы также можете использовать этот процесс для уменьшения размера существующих разделов.
Вы можете изменить пароль для зашифрованных разделов LUKS и изменить размер существующих разделов.Как использовать Microsoft DiskPart для отображения информации о диске в среде восстановления для восстановления системы
Проблема
Если на диске восстановления системы не отображаются диски, тома, разделы или другая информация о дисках, можно использовать DISKPART, чтобы определить, видит ли WinPE этот том.
Сообщение об ошибкеЕсли diskpart не видит информацию о диске, возможно, необходимо загрузить драйверы для контроллера диска. Пожалуйста, обратитесь к руководству пользователя, чтобы узнать, как это сделать. Если diskpart показывает диски, а среда восстановления — нет, могут быть ошибки разделов, диск не является допустимой целью для восстановления и т. Д.
Решение
Утилита Microsoft DiskPart обеспечивает быстрый способ определения обозначений номеров дисков при загрузке в WinPE.После загрузки с диска восстановления системы щелкните АНАЛИЗ, откройте командную строку. В командной строке введите DISKPART. Ниже приведены несколько наиболее распространенных команд, используемых для определения информации о диске:
СПИСОК ДИСКОВ — отображает список дисков и информацию о них, такую как их размер, объем доступного свободного пространства, является ли диск базовым или динамическим и использует ли диск основную загрузочную запись (MBR). или стиль раздела таблицы разделов GUID (GPT).Диск, отмеченный звездочкой (*), находится в фокусе.
ПОДРОБНЫЙ ДИСК — отображает свойства выбранного диска и томов на этом диске.
СПИСОК РАЗДЕЛОВ — отображает разделы, перечисленные в таблице разделов текущего диска. На динамических дисках эти разделы могут не соответствовать динамическим томам на диске. Это несоответствие возникает из-за того, что динамические диски содержат записи в таблице разделов для системного тома или загрузочного тома (если они есть на диске).Динамические диски также содержат раздел, который занимает оставшуюся часть диска и резервирует пространство для использования динамическими томами.
ПОДРОБНЫЙ РАЗДЕЛ — Отображает свойства выбранного раздела.
СПИСОК ТОМОВ — отображает список базовых и динамических томов на всех дисках.
ПОДРОБНЫЙ ТОМ — отображает диски, на которых находится текущий том.
EXIT — Выход из интерпретатора команд DiskPart.
Дополнительную информацию о дополнительных командах Microsoft DiskPart можно найти на следующей веб-странице Microsoft:
https://technet.microsoft.com/en-us/library/cc766465.aspx
Ссылки
https://technet.microsoft .com / ru-ru / library / cc766465.aspx
10 команд для проверки дисковых разделов и дискового пространства в Linux — BinaryTides
В этом посте мы рассмотрим некоторые команды, которые можно использовать для проверки разделов в вашей системе.
Команды проверяют, какие разделы есть на каждом диске, и другие детали, такие как общий размер, использованное пространство, файловая система и т. Д.
Такие команды, как fdisk, sfdisk и cfdisk, являются общими инструментами разделения, которые могут не только отображать информацию о разделах, но и изменять их.
1. fdisk
Fdisk — это наиболее часто используемая команда для проверки разделов на диске. Команда fdisk может отображать разделы и подробную информацию, например, тип файловой системы.Однако он не сообщает размер каждого раздела.
$ sudo fdisk -l Диск / dev / sda: 500,1 ГБ, 500107862016 байт 255 головок, 63 сектора / дорожка, 60801 цилиндр, всего 976773168 секторов Единицы = секторы 1 * 512 = 512 байт Размер сектора (логический / физический): 512 байт / 512 байт Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт Идентификатор диска: 0x30093008 Система идентификаторов конечных блоков начала загрузки устройства / dev / sda1 * 63 146801969 73400953+ 7 HPFS / NTFS / exFAT / dev / sda2 146802031 976771071 414984520+ f W95 Ext'd (LBA) / dev / sda5 146802033 351614654 102406311 7 HPFS / NTFS / exFAT / dev / sda6 351614718 556427339 102406311 83 Linux / dev / sda7 556429312 560427007 1998848 82 Обмен Linux / Solaris / dev / sda8 560429056 976771071 208171008 83 Linux Диск / dev / sdb: 4048 МБ, 4048551936 байт 54 головки, 9 секторов / дорожка, 16270 цилиндров, всего 7907328 секторов Единицы = секторы 1 * 512 = 512 байт Размер сектора (логический / физический): 512 байт / 512 байт Размер ввода-вывода (минимальный / оптимальный): 512 байт / 512 байт Идентификатор диска: 0x0001135d Система идентификаторов конечных блоков начала загрузки устройства / dev / sdb1 * 2048 7907327 3952640 b W95 FAT32
Каждое устройство сообщается отдельно с подробной информацией о размере, секундах, идентификаторе и отдельных разделах.
2. sfdisk
Sfdisk — это еще одна утилита, аналогичная fdisk, но с большим количеством функций. Он может отображать размер каждого раздела в МБ.
$ sudo sfdisk -l -uM Диск / dev / sda: 60801 цилиндр, 255 головок, 63 сектора / дорожка Предупреждение: расширенный раздел не начинается на границе цилиндра. DOS и Linux интерпретируют содержимое по-разному. Единицы = мебибайты по 1048576 байтов, блоки по 1024 байта, считая от 0 Начало загрузки устройства Конец MiB #blocks Id System / dev / sda1 * 0+ 71680-71681-73400953+ 7 HPFS / NTFS / exFAT / dev / sda2 71680+ 476938 405259-414984520+ f W95 Ext'd (LBA) / dev / sda3 0 - 0 0 0 Пусто / dev / sda4 0 - 0 0 0 Пусто / dev / sda5 71680+ 171686-1000007-102406311 7 HPFS / NTFS / exFAT / dev / sda6 171686+ 271693-1000007-102406311 83 Linux / dev / sda7 271694 273645 1952 1998848 82 Обмен Linux / Solaris / dev / sda8 273647 476938 203292 208171008 83 Linux Диск / dev / sdb: 1020 цилиндров, 125 голов, 62 сектора / дорожка Предупреждение: таблица разделов выглядит так, как будто она была сделана для C / H / S = * / 54/9 (вместо 1020/125/62).Для этого списка я предполагаю, что геометрия. Единицы = мебибайты по 1048576 байтов, блоки по 1024 байта, считая от 0 Начало загрузки устройства Конец MiB #blocks Id System / dev / sdb1 * 1 3860 3860 3952640 б W95 FAT32 начало: (c, h, s) ожидается (4,11,6) найдено (0,32,33) конец: (c, h, s) ожидается (1023,53,9) найдено (492,53,9) / dev / sdb2 0-0 0 0 Пусто / dev / sdb3 0-0 0 0 Пусто / dev / sdb4 0-0 0 0 Пусто
3.cfdisk
Cfdisk — это редактор разделов Linux с интерактивным пользовательским интерфейсом, основанный на ncurses. Его можно использовать для вывода списка существующих разделов, а также для их создания или изменения.
Вот пример того, как использовать cfdisk для вывода списка разделов.
Cfdisk работает с одним разделом одновременно. Поэтому, если вам нужно увидеть детали конкретного диска, передайте имя устройства в cfdisk.
$ sudo cfdisk / dev / sdb
4. расстались
Parted — еще одна утилита командной строки для вывода списка разделов и их изменения при необходимости.
Вот пример, в котором перечислены детали раздела.
$ sudo parted -l Модель: ATA ST3500418AS (scsi) Диск / dev / sda: 500 ГБ Размер сектора (логический / физический): 512Б / 512Б Таблица разделов: msdos Номер Начало Конец Размер Тип Файловая система Флаги 1 32,3 КБ 75,2 ГБ 75,2 ГБ основная загрузка NTFS 2 75,2 ГБ 500 ГБ 425 ГБ расширенный lba 5 75,2 ГБ 180 ГБ 105 ГБ логические NTFS 6 180 ГБ 285 ГБ 105 ГБ логический ext4 7 285 ГБ 287 ГБ 2047 МБ логический linux-swap (v1) 8 287 ГБ 500 ГБ 213 ГБ логический ext4 Модель: Sony Storage Media (scsi) Диск / dev / sdb: 4049 МБ Размер сектора (логический / физический): 512Б / 512Б Таблица разделов: msdos Номер Начало Конец Размер Тип Файловая система Флаги 1 1049 КБ 4049 МБ 4048 МБ первичная загрузка fat32
5.df
Df не является утилитой для создания разделов, а выводит сведения только о смонтированных файловых системах. Список, сгенерированный df, включает даже файловые системы, которые не являются настоящими разделами диска.
Вот простой пример
$ df -h Используемый размер файловой системы Доступность% Установлено на / dev / sda6 97 ГБ 43 ГБ 49 ГБ 48% / нет 4.0K 0 4.0K 0% / sys / fs / cgroup udev 3.9G 8.0K 3.9G 1% / dev tmpfs 799M 1,7M 797M 1% / запуск нет 5./ dev / dev / sda6 97 ГБ 43 ГБ 49 ГБ 48% / / dev / sda8 196G 154G 33G 83% / media / 13f35f59-f023-4d98-b06f-9dfaebefd6c1 / dev / sda5 98 ГБ 37 ГБ 62 ГБ 38% / media / 4668484A68483B47
Чтобы отображать только реальные разделы диска вместе с типом раздела, используйте df, как это
$ df -h --output = source, fstype, size, used, avail, pcent, target -x tmpfs -x devtmpfs Тип файловой системы Размер Используется Доступность Использование% Установлено на / dev / sda6 ext4 97 ГБ 43 ГБ 49 ГБ 48% / / dev / sda8 ext4 196G 154G 33G 83% / media / 13f35f59-f023-4d98-b06f-9dfaebefd6c1 / dev / sda5 fuseblk 98G 37G 62G 38% / media / 4668484A68483B47
Обратите внимание, что df показывает только смонтированные файловые системы или разделы, а не все.
6. pydf
Улучшенная версия df, написанная на python. Распечатывает все разделы жесткого диска в удобном для чтения виде.
$ pydf Используемый размер файловой системы Доступность% Установлено на / dev / sda6 96G 43G 48G 44,7 [#### .....] / / dev / sda8 195G 153G 32G 78.4 [####### ..] / media / 13f35f59-f023-4d98-b06f-9dfaebefd6c1 / dev / sda5 98G 36G 61G 37.1 [### ......] / media / 4668484A68483B47
Опять же, pydf ограничивается отображением только смонтированных файловых систем.
7. lsblk
Перечисляет все блоки хранения, включая разделы дисков и оптические приводы. Подробная информация включает общий размер раздела / блока и точку монтирования, если таковая имеется.
Не сообщает об используемом / свободном дисковом пространстве в разделах.
$ lsblk НАЗВАНИЕ ГЛАВНОЕ: МИН.РМ РАЗМЕР RO ТИП ГОРКА sda 8: 0 0 465,8 ГБ 0 диск ├─sda1 8: 1 0 70G 0 часть ├─sda2 8: 2 0 1K 0 часть ├─sda5 8: 5 0 97.7G 0 часть / носитель / 4668484A68483B47 ├─sda6 8: 6 0 97.7G 0 часть / ├─sda7 8: 7 0 1.9G 0 часть [SWAP] └─sda8 8: 8 0 198.5G 0 часть / media / 13f35f59-f023-4d98-b06f-9dfaebefd6c1 sdb 8:16 1 3.8G 0 диск └─sdb1 8:17 1 3.8G 0 часть SR0 11: 0 1 1024M 0 ROM
Если MOUNTPOINT отсутствует, это означает, что файловая система еще не смонтирована. Для cd / dvd это означает, что диска нет.
Lsblk — это возможность отображать дополнительную информацию о каждом устройстве, такую как этикетка и модель. Дополнительную информацию см. На странице руководства
Отображение UUID и модели устройства
Параметр «-o» может использоваться для указания отображаемых столбцов.В следующем примере показаны столбцы UUID и имени модели вместе с другими столбцами.
$ lsblk -o ПУТЬ, РАЗМЕР, RO, ТИП, ТОЧКА, UUID, МОДЕЛЬ РАЗМЕР ПУТИ RO ТИП MOUNTPOINT UUID МОДЕЛЬ / dev / loop0 96,5M 1 цикл / snap / core / 9436 / dev / loop1 229,6M 1 цикл / snap / atom / 257 / dev / loop2 55M 1 цикл / оснастка / core18 / 1880 / dev / loop3 54,8M 1 цикл / оснастка / gtk-common-themes / 1502 / dev / loop4 156.2M 1 петля / snap / chromium / 1213 / dev / loop5 55M 1 петля / оснастка / core18 / 1754 / dev / loop6 62.1M 1 петля / snap / gtk-common-themes / 1506 / dev / loop7 230.6M 1 петля / snap / atom / 258 / dev / loop8 158,4M 1 петля / snap / chromium / 1229 / dev / loop9 97M 1 петля / snap / core / 9665 / dev / sda 465.8G 0 диск Samsung_Portable_SSD_T5 / dev / sda1 420G 0 часть 757dcceb-3e17-4ca8-9ba1-b0cf68fb0134 / dev / sdb 111.8G 0 диск Samsung_SSD_840_EVO_120GB / dev / sdb1 95.4G 0 часть / 19d84ceb-8046-4f8d-a85a-cda49515d92c / dev / sdc 111.8G 0 диск Samsung_SSD_850_EVO_120GB / dev / sdc1 95.8G 0 часть f41b21a7-e8be-48ac-b10d-cad641bf709bдолл. США
В приведенных выше выходных данных содержится вся необходимая информация обо всех запоминающих устройствах, имеющихся в системе или подключенных через USB. Вы можете увидеть имя устройства, размер, точку монтирования, uuid, название модели и т. Д.
Это лучшая команда для просмотра всей информации об устройствах хранения в одном месте.
8. blkid
Печатает атрибуты блочного устройства (разделы и носители), такие как uuid и тип файловой системы. Не сообщает место на разделах.
$ sudo blkid / dev / sda1: UUID = "5E38BE8B38BE6227" TYPE = "ntfs" / dev / sda5: UUID = "4668484A68483B47" TYPE = "ntfs" / dev / sda6: UUID = "6fa5a72a-ba26-4588-a103-74bb6b33a763" TYPE = "ext4" / dev / sda7: UUID = "94443023-34a1-4428-8f65-2fb02e571dae" TYPE = "swap" / dev / sda8: UUID = "13f35f59-f023-4d98-b06f-9dfaebefd6c1" TYPE = "ext4" / dev / sdb1: UUID = "08D1-8024" TYPE = "vfat"
9.hwinfo
hwinfo — это инструмент общего назначения для получения информации об оборудовании, который можно использовать для распечатки списка дисков и разделов.
Выходные данные, однако, не печатают подробную информацию о каждом разделе, как в приведенных выше командах.
$ hwinfo --block --short диск: / dev / sda ST3500418AS / dev / sdb Носители данных Sony раздел: / dev / sda1 Раздел / dev / sda2 Раздел / dev / sda5 Раздел / dev / sda6 Раздел / dev / sda7 Раздел / dev / sda8 Раздел / dev / sdb1 Раздел cdrom: / dev / sr0 SONY DVD RW DRU-190A
Чтобы узнать больше о команде Hwinfo, прочтите этот пост:
Проверьте информацию об оборудовании в Linux с помощью команды hwinfo