Учебный стенд курса: виртуальные машины с Windows 11 и Debian 13 и то, как установщик размечает диск
diskpart и sfdisk, не рискуя настоящимВиртуальная машина (ВМ) — программная имитация компьютера: у неё свой процессор, память, диск и сеть, и в неё устанавливается обычная ОС. Её называют гостевой, а ОС настоящего компьютера — хостовой. Управляет ВМ гипервизор: он делит между ними настоящий процессор и память и не даёт ВМ видеть друг друга.
Для учёбы ВМ — главный инструмент: в ней можно разметить диск, сломать загрузку, удалить системную папку — и за минуту вернуться к снимку. На своём компьютере так не поэкспериментируешь.
| Тип | Как работает | Где применяют | Примеры |
|---|---|---|---|
| 1 тип (bare-metal) | Работает прямо на оборудовании, ОС управления — тоже одна из ВМ | Серверы, центры обработки данных | Hyper-V, VMware ESXi, KVM (Proxmox и российские системы виртуализации на его основе) |
| 2 тип (hosted) | Обычная программа поверх хостовой ОС | Рабочий компьютер, учёба, тестирование | VirtualBox, VMware Workstation |
Hyper-V в Windows 10 и 11 тоже гипервизор 1 типа: после его включения сама Windows начинает работать как особая ВМ поверх гипервизора. Поэтому на компьютере с Hyper-V VirtualBox работает медленнее — ему приходится делить процессор через Hyper-V.
Чтобы ВМ работала быстро, процессор должен уметь аппаратную виртуализацию — Intel VT-x или AMD-V (SVM). Она включается в настройках UEFI и часто выключена по умолчанию. Проверить: Диспетчер задач → Производительность → ЦП, строка «Виртуализация: Включено».
Как понять, что вы уже внутри ВМ? Гипервизор показывает гостю свою модель «компьютера». Примеры этого курса сняты в ВМ на KVM — Windows и Linux это видят:
PS> Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, HypervisorPresent
Manufacturer Model HypervisorPresent
------------ ----- -----------------
QEMU Standard PC (Q35 + ICH9, 2009) True
PS> systeminfo | Select-String "Hyper-V", "низкоуровнев"
Требования Hyper-V: Обнаружена низкоуровневая оболочка. Функции, необходимые для Hyper-V,
отображены не будут.
Производитель QEMU, «Standard PC» — так KVM называет виртуальную плату. Строка «Обнаружена низкоуровневая оболочка» в Windows означает: эта Windows сама работает под гипервизором. В Linux то же сообщает systemd-detect-virt:
$ systemd-detect-virt
kvm
$ cat /sys/class/dmi/id/sys_vendor /sys/class/dmi/id/product_name
QEMU
Standard PC (i440FX + PIIX, 1996)
Прежде чем установить ОС, диск делят на разделы — независимые области, у каждой своя файловая система и назначение. Где какой раздел, записано в таблице разделов в начале диска. Таблиц две.
| MBR | GPT | |
|---|---|---|
| Появилась | 1983, вместе с BIOS | 2000-е, вместе с UEFI |
| Размер диска | До 2 ТБ | Практически без ограничения |
| Число разделов | 4 основных; больше — через расширенный раздел с логическими внутри | 128 в Windows |
| Надёжность | Одна копия таблицы в первом секторе | Две копии (в начале и в конце диска) и контрольные суммы |
| Загрузка | BIOS (режим Legacy) | UEFI; Windows 11 ставится только на GPT |
Так выглядит диск установленной Windows 11 — разметку сделал установщик:
PS> Get-Disk | Select-Object Number, FriendlyName, PartitionStyle, @{n="ГБ"; e={[math]::Round($_.Size/1GB)}}
Number FriendlyName PartitionStyle ГБ
------ ------------ -------------- --
0 QEMU HARDDISK GPT 64
PS> Get-Partition -DiskNumber 0 | Select-Object PartitionNumber, DriveLetter, @{n="МБ"; e={[math]::Round($_.Size/1MB)}}, Type
PartitionNumber DriveLetter МБ Type
--------------- ----------- -- ----
1 200 System
2 16 Reserved
3 C 64413 Basic
4 904 Recovery
PS> Get-Volume | Where-Object DriveType -eq Fixed | Select-Object DriveLetter, FileSystemLabel, FileSystem, @{n="МБ"; e={[math]::Round($_.Size/1MB)}}
DriveLetter FileSystemLabel FileSystem МБ
----------- --------------- ---------- --
C NTFS 64413
NTFS 904
FAT32 196
| Раздел | Размер | Зачем |
|---|---|---|
| System (EFI, ESP) | 100–300 МБ, FAT32 | Загрузчики .efi — его читает UEFI (раздел 02) |
| Reserved (MSR) | 16 МБ, без файловой системы | Служебный резерв Windows для операций с диском |
| Basic, буква C: | Всё остальное, NTFS | Сама Windows, программы, данные |
| Recovery | Около 1 ГБ, NTFS | Среда восстановления: запускается, если Windows не загружается |
Буква есть только у C:: служебные разделы не видны в Проводнике, чтобы их случайно не удалили. Увидеть их можно в Управлении дисками (Win+X → Управление дисками) или командами выше.
Для сравнения — диск учебного сервера Debian, установленного в старом режиме BIOS с таблицей MBR:
$ lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS /dev/sda
NAME SIZE TYPE FSTYPE MOUNTPOINTS
sda 32G disk
├─sda1 30,3G part ext4 /
├─sda2 1K part
└─sda5 1,7G part swap [SWAP]
sda1 — основной раздел с корневой файловой системой. sda2 размером 1 КБ — расширенный раздел, «контейнер» для логических, а sda5 внутри него — раздел подкачки. Номера логических разделов в MBR всегда начинаются с 5. При установке в режиме UEFI на GPT такого не бывает: все разделы равноправны.
Разметку можно сделать и без установщика. Чтобы не рисковать настоящим диском, тренируемся на виртуальном диске — файле .vhdx, который Windows подключает как обычный диск. Скрипт для diskpart создаёт такой диск размером 1 ГБ и размечает его так же, как установщик Windows:
create vdisk file="C:\tl\os\run\lab.vhdx" maximum=1024 type=expandable
select vdisk file="C:\tl\os\run\lab.vhdx"
attach vdisk
convert gpt
select partition 1
delete partition override
create partition efi size=100
format fs=fat32 quick label=SYSTEM
create partition msr size=16
create partition primary size=800
format fs=ntfs quick label=Windows
create partition primary
format fs=ntfs quick label=Recovery
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
list partition
detach vdisk
PS> (diskpart /s disk.txt) -notmatch "Завершено|^\s*$"
Microsoft DiskPart, версия 10.0.26100.1150
(C) Корпорация Майкрософт (Microsoft Corporation).
На компьютере: PC-01
Файл виртуального диска успешно создан с помощью программы DiskPart.
Файл виртуального диска успешно выбран с помощью программы DiskPart.
Файл виртуального диска успешно присоединен с помощью программы DiskPart.
DiskPart: выбранный диск успешно преобразован к формату GPT.
Выбран раздел 1.
DiskPart: выбранный раздел успешно удален.
DiskPart: указанный раздел успешно создан.
Программа DiskPart успешно отформатировала том.
DiskPart: указанный раздел успешно создан.
DiskPart: указанный раздел успешно создан.
Программа DiskPart успешно отформатировала том.
DiskPart: указанный раздел успешно создан.
Программа DiskPart успешно отформатировала том.
Программа Diskpart успешно задала идентификатор раздела.
Раздел ### Тип Размер Смещение
------------- ---------------- ------- -------
Раздел 1 Система 100 Mб 64 Kб
Раздел 2 Зарезервировано 16 Mб 100 Mб
Раздел 3 Основной 800 Mб 116 Mб
* Раздел 4 Восстановление 107 Mб 916 Mб
Файл виртуального диска успешно отсоединен с помощью программы DiskPart.
По шагам: create vdisk создал файл, attach подключил его как диск, convert gpt записал таблицу GPT. Эта команда сама создаёт раздел MSR в начале диска, а Windows ставит его после ESP — поэтому его удаляем (delete partition override) и создаём разделы по порядку: ESP с FAT32, MSR, основной с NTFS и раздел восстановления, которому задаём тип Recovery (set id). detach отключил диск. Итог совпал с разметкой настоящей Windows выше.
diskpart не спрашивает подтверждения. select disk 0 вместо виртуального диска и команда clean за секунду стирают таблицу разделов системного диска. Всегда начинайте с list disk и проверяйте номер и размер выбранного диска. На учебных ПК работайте только с файлами .vhdx.Скрипт запускается так: сохраните команды в файл disk.txt и в терминале администратора выполните diskpart /s disk.txt. Без /s diskpart работает в диалоге, и команды вводятся по одной. Подключённый виртуальный диск видно в Управлении дисками; файл .vhdx подключается и двойным щелчком.
В Linux разметку делает sfdisk, и тоже можно тренироваться на файле. Схема — как предлагает установщик Debian: раздел EFI, подкачка, корневой раздел (размеры уменьшены):
$ truncate -s 2G disk.img
$ cat layout.txt
label: gpt
size=512MiB, type=uefi, name="EFI"
size=1GiB, type=swap, name="swap"
type=linux, name="root"
$ sfdisk disk.img < layout.txt
Checking that no-one is using this disk right now ... OK
Disk disk.img: 2 GiB, 2147483648 bytes, 4194304 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
>>> Script header accepted.
>>> Created a new GPT disklabel (GUID: E3EF9320-93DA-4129-B1BD-A3B73724E4D5).
disk.img1: Created a new partition 1 of type 'EFI System' and of size 512 MiB.
disk.img2: Created a new partition 2 of type 'Linux swap' and of size 1 GiB.
disk.img3: Created a new partition 3 of type 'Linux filesystem' and of size 510 MiB.
disk.img4: Done.
New situation:
Disklabel type: gpt
Disk identifier: E3EF9320-93DA-4129-B1BD-A3B73724E4D5
Device Start End Sectors Size Type
disk.img1 2048 1050623 1048576 512M EFI System
disk.img2 1050624 3147775 2097152 1G Linux swap
disk.img3 3147776 4192255 1044480 510M Linux filesystem
The partition table has been altered.
$ sfdisk -l disk.img
Disk disk.img: 2 GiB, 2147483648 bytes, 4194304 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
Disklabel type: gpt
Disk identifier: E3EF9320-93DA-4129-B1BD-A3B73724E4D5
Device Start End Sectors Size Type
disk.img1 2048 1050623 1048576 512M EFI System
disk.img2 1050624 3147775 2097152 1G Linux swap
disk.img3 3147776 4192255 1044480 510M Linux filesystem
Для настоящего диска вместо disk.img указывают устройство, например /dev/sdb, и нужны права администратора (sudo). В диалоговом режиме то же делают fdisk и cfdisk.
| ВМ | Процессоры | Память | Диск | Особенности |
|---|---|---|---|---|
| Windows 11 | 2 | 4 ГБ | 64 ГБ, динамический | UEFI, Secure Boot и TPM 2.0 — без них установщик откажется ставить Windows 11 |
| Debian 13 | 1–2 | 2 ГБ | 20 ГБ, динамический | Без графической среды хватит и 1 ГБ |
Динамический диск занимает на хосте столько места, сколько записано данных, и растёт до заданного размера. Это экономит место, но если диск хоста заполнится, ВМ остановится — следите за свободным местом.
Образы: Windows 11 — с сайта Microsoft или от преподавателя (в колледже может быть свой образ с лицензией), Debian 13 — образ netinst с debian.org (около 700 МБ, остальное скачивается при установке).
VirtualBox:
win11, образ ISO, тип Microsoft Windows, версия Windows 11 (64-bit). VirtualBox сам включит UEFI, Secure Boot и TPM 2.0.Hyper-V: включается в Панель управления → Программы → Включение или отключение компонентов Windows → Hyper-V (нужна перезагрузка). Затем Диспетчер Hyper-V → Создать → Виртуальная машина: поколение 2 (только оно умеет UEFI), память 4096 МБ, сеть Default Switch, новый диск 64 ГБ, установка с ISO. До первого запуска в Параметры → Безопасность включите доверенный платформенный модуль (TPM), а в Процессор поставьте 2.
При ручной установке:
Проверка после установки: winver и systeminfo из раздела 01, разделы — в Управлении дисками.
ВМ создаётся так же: тип Linux, версия Debian (64-bit), 2 ГБ памяти, диск 20 ГБ; в Hyper-V — поколение 2, а в Безопасность шаблон безопасной загрузки «Центр сертификации Microsoft UEFI» (иначе загрузчик Debian не запустится). Автоматическую установку VirtualBox для Debian лучше не включать — пройдём установщик сами, в нём видны все решения.
debian, домен — пусто.sudo — так работают и на серверах.student./ с ext4, раздел подкачки — как в примере sfdisk выше → Закончить разметку и записать изменения → Да.deb.debian.org.Проверка: cat /etc/os-release, uname -r, lsblk и sudo whoami — последняя должна ответить root.
Гостевая ОС сначала видит только простое «универсальное» оборудование: экран низкого разрешения, без общего буфера обмена. Дополнения гостевой ОС — драйверы, которые знают о гипервизоре:
VBoxWindowsAdditions.exe с этого диска, в Debian — пакеты build-essential и linux-headers-$(uname -r), затем sudo sh /media/cdrom/VBoxLinuxAdditions.run. После перезагрузки работают изменение разрешения, общий буфер и общие папки.Снимок (в Hyper-V — контрольная точка) сохраняет состояние ВМ: диск, а если ВМ включена, то и память. Откат к снимку возвращает ВМ ровно к этому моменту. Правило курса: снимок перед каждой практической работой, которая меняет систему, — разметка, загрузка, права, службы.
diskpart не переспрашивает: тренируйтесь на виртуальном диске .vhdx и начинайте с list disk