Клонирование Windows или Linux с HDD на меньший SSD с помощью dd
Зачем это нужно
Клонирование диска полезно, когда вы хотите перенести установленную систему со всеми программами и настройками на более быстрый SSD. Метод пригоден, если разделы целевой SSD могут вместить весь используемый объём исходных разделов, которые вы копируете. Этот подход сохраняет загрузчик и таблицу разделов в границах копируемой области.
Важно: если исходный диск использует сложную MBR-схему с расширенными и логическими разделами или разделы идут не по порядку, лучше использовать gddrescue (ddrescue) или специализированные инструменты для миграции.
Определения в одну строку
- dd: утилита «копировать и преобразовать» для поблочного чтения и записи дисков.
- pv: прогресс-бар для потоков данных в Linux.
- bs: размер блока для чтения/записи в байтах.
- count: количество блоков для копирования.
Предупреждение и правила безопасности
Важно: Ошибочный выбор дисков при dd приведёт к потере данных. Дважды проверьте идентификаторы /dev/sdX работы с командами fdisk -l и lsblk. Всегда делайте резервную копию критичных данных перед операцией.
Важно: Не загружайте систему с обоими дисками подключёнными после клонирования, пока не уверены в порядке загрузки, чтобы избежать путаницы загрузчика.
Шаг 1 — Уменьшение размера раздела
Перед клонированием уменьшите файловую систему до минимально необходимого размера. Это ускорит работу dd, потому что dd копирует и незанятое пространство внутри копируемых областей.
Как уменьшить:
- Используйте GParted с Live-образа Ubuntu Desktop или иной live-дистрибутив.
- В Windows можно использовать встроенный Disk Management (diskmgmt.msc) для уменьшения NTFS-разделов.
- Коммерческие утилиты: Partition Wizard, Parted Magic.
Почему это важно
- dd копирует поблочно. Если раздел физически велик (например, 500 ГБ), но занято только 40 ГБ, dd без сжатия всё равно будет читать и писать весь диапазон, если вы копируете до конца раздела или до указанного сектора. Сжатие уменьшает объём копируемых блоков.
Примечание: Если файл-система повреждена или есть bad-блоки, используйте gddrescue (gddrescue) для безопасного клонирования с обработкой ошибок.
Шаг 2 — Подключение и определение границ копирования
- Физически подключите SSD к SATA/SCSI-контроллеру.
- Загрузитесь с Live-Linux в RAM (например, Ubuntu Live).
- Откройте терминал.
- Выполните
sudo fdisk -l /dev/sda(замените /dev/sda на ваш диск) илиlsblk -f. - Найдите раздел, до которого нужно копировать — запомните поле “End” (номер сектора).
Пример вывода и что с ним делать: в примерах ниже показаны реальные сценарии.
Пример 1 — Клонирование диска с MBR, Windows в 2-м разделе
В тестовой конфигурации: исходный Windows диск — /dev/sdb, пустой SSD — /dev/sda.

Установите pv, если хотите видеть прогресс:
sudo apt install pvВычисление параметров:
- bs = 512 (стандартный размер сектора, смотрите вывод fdisk)
- count = последний сектор (End) + 1 — количество 512-байтных блоков для копирования
Пример команды:
sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G | sudo dd of=/dev/sdaРасшифровка:
- if — входной файл (исходный диск)
- of — выходной файл (целевой диск)
- conv=sync,noerror — продолжаем при ошибках, синхронизируем блоки
- | — pipe: передаём поток в pv, затем в конечный dd
- pv -s 21G — приблизительный объём данных для отслеживания
Важно: целевой диск должен быть по размеру не меньше суммарного занятого пространства до выбранного сектора, в противном случае вы перезапишете заголовки или потеряете данные.
Ускорение через увеличение bs
Можно увеличить bs в 2×, 4×, 8× и т. д. Обычно увеличение до 2048 или 4096 даёт выигрыш в скорости. При увеличении bs нужно делить count на тот же множитель (целочисленное деление).
Пример: bs = 2048 (512×4) — тогда count = (End+1) / 4
sudo dd if=/dev/sda bs=2048 count=11224576 conv=sync,noerror | pv -s 21G | sudo dd of=/dev/sdbПример 2 — Клонирование GPT, Windows в 4-м разделе
Задача: скопировать всё до конца 4-го раздела (включая загрузчик и все предыдущие разделы), но не копировать данные после него (например, D:).
В примере выбран bs = 4096 (512×8). Если End для sda4 = 19855359, то count = (19855359 + 1) / 8 = 2481920.
sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G | sudo dd of=/dev/sdb
После такого частичного копирования может потребоваться удалить лишний 5-й раздел на целевом диске (если он образовался) — сделайте это с помощью cgdisk или fdisk.
cgdisk /dev/sdb
# затем удалите ненужный раздел и запишите таблицуПроверьте таблицу разделов на обоих дисках командой fdisk -l.


Шаг 3 — Тестирование клонированного диска
- Выключите машину.
- Отключите исходный HDD физически.
- Подключите только SSD и включите машину.
- Если система загружается — поздравляю.
Если не загружается:
- Проверьте SATA-провода и питание.
- Проверьте порядок загрузки в BIOS/UEFI.
- Попробуйте сменить порт SATA (иногда контроллеры имеют приоритет).
- Для UEFI убедитесь, что раздел EFI присутствует и на нём правильные записи.
После успешной загрузки расширьте файловую систему, чтобы занять оставшееся нераспределённое пространство с помощью GParted или соответствующих утилит (resize2fs для ext4, ntfsresize для NTFS и т. д.).
Критерии приёмки
- Целевая система корректно загружается с SSD.
- Все нужные разделы до выбранного сектора скопированы и монтируются.
- Данные и программы доступны и работают.
- Не осталось несанкционированного дублирования UUID разделов или конфликтов загрузчика (при необходимости исправьте вручную).
Когда этот метод не подходит (контрпримеры)
- Исходный диск сильно фрагментирован и содержит много повреждённых блоков — используйте gddrescue.
- MBR со сложными логическими разделами вне порядкового расположения — рискованно; лучше использовать специализированные инструменты.
- Если вам нужно снизить объём занимаемого места без рисков — лучше создать чистую установку и перенести данные вручную.
Альтернативные подходы
- gddrescue (gddrescue) — копирует только использованные блоки и лучше обрабатывает ошибки.
- Clonezilla — облегчённый интерфейс для клонирования и восстановления; поддерживает сжатие и файл-ориентированные операции.
- Специальные миграционные утилиты от производителей SSD (часто умеют перенести OS, поправив загрузчик).
- Создание образа раздела и восстановление его на SSD с последующей подгонкой размеров.
Риски и смягчения
- Ошибочный of/if: всегда перепроверяйте
lsblkиfdisk -lперед запуском. - Повреждение таблицы разделов: имейте резервную копию (
sfdisk -d /dev/sda > sda-table.backup). - Конфликты UUID: при клонировании UUID сохраняются; при необходимости пересоздавайте UUID и обновляйте /etc/fstab.
Резервные команды:
sudo sfdisk -d /dev/sda > sda-table.backup
sudo dd if=/dev/sda of=/path/to/image.img bs=1M status=progressЧек-лист перед запуском dd (оператор)
- Сделана полная резервная копия важных данных.
- Отключены ненужные внешние диски.
- [ ] Проверены идентификаторы дисков
lsblk,fdisk -l. - Подготовлен расчёт bs и count.
- Установлен pv для контроля прогресса (опционально).
- Целевой диск подходит по физическому объёму.
- План отката составлен и резервная таблица разделов сохранена.
Playbook: пошаговая инструкция
- Подключите SSD.
- Загрузитесь с Live-USB.
- Откройте терминал и выполните
sudo fdisk -l. - Определите номер сектора End раздела, до которого нужно копировать.
- Сожмите файловую систему до меньшего размера (GParted или соответствующий инструмент).
- Сделайте бэкап таблицы разделов:
sudo sfdisk -d /dev/sda > sda-table.backup. - Установите pv:
sudo apt install pv. - Рассчитайте bs и count.
- Запустите dd-пайп с pv (пример выше).
- Дождитесь завершения, проверьте
fdisk -lна целевом диске. - Выключите компьютер, отключите исходный HDD и загрузитесь с SSD.
- Расширьте разделы при необходимости.
Дерево решений (простое Mermaid)
flowchart TD
A[Нужна миграция OS на SSD?] --> B{Исходный диск простой?
'MBR без логических разделов
или GPT с обычными разделами'}
B -- Да --> C[Использовать dd по секторам]
B -- Нет --> D[Использовать gddrescue или Clonezilla]
C --> E{Есть ошибки/бэд-блоки?}
E -- Да --> D
E -- Нет --> F[Клонировать, затем тестировать]Советы: типичные ошибки и как их избежать
- Не используйте
ddс неправильным порядкомif/of— это обычная причина потерь данных. - Не доверяйте размерам по наитию — пользуйтесь
fdisk/partedдля точных чисел. - Если копируете систему с UEFI, убедитесь, что раздел EFI включён в область копирования.
- При клонировании Windows возможно потребуется восстановить загрузчик через Windows Recovery Environment.
Совместимость и локальные особенности
- Для Windows на GPT/UEFI: убедитесь, что на целевом диске есть EFI System Partition и записи в NVRAM корректны.
- Для Linux с LVM: если корень в LVM, клонирование поблочно может потребовать обновления UUID и initramfs.
- Производители SSD иногда требуют выравнивания разделов по 1MB; GParted по умолчанию делает выравнивание корректно.
Краткая методология проверки (тест-кейсы)
- TC1: Система загружается в OS после отключения исходного HDD.
- TC2: Все разделы монтируются и содержат ожидаемые файлы.
- TC3: Размеры разделов соответствуют ожидаемым после расширения файловой системы.
- TC4: Отсутствие ошибок в dmesg, связанных с файловой системой.
Примеры команд (шпаргалка)
- Просмотр дисков и разделов:
sudo fdisk -l
lsblk -f
sudo parted -l- Создание резервной копии таблицы разделов:
sudo sfdisk -d /dev/sda > sda-table.backup- Базовый dd с pv:
sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G | sudo dd of=/dev/sda- dd с увеличенным bs:
sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G | sudo dd of=/dev/sdbИтог
Метод с dd легко воспроизводим и быстрый для простых сценариев, когда вы копируете непрерывную область диска, содержащую загрузчик и все необходимые разделы. Всегда предварительно уменьшайте файловые системы и проверяйте границы копирования. При сложной схеме разделов или плохом состоянии носителя отдайте предпочтение gddrescue или Clonezilla.
Короткие ключевые рекомендации:
- Всегда делайте бэкап перед операцией.
- Дважды проверяйте /dev/идентификаторы.
- Используйте pv для контроля прогресса.
- При сбоях используйте специализированные инструменты.

Описание изображения: схема объясняющая поток данных между исходным диском и целевым через dd и pv.

Описание изображения: пример вывода sfdisk для сравнения таблиц разделов исходного и целевого дисков.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone