Disk to vhd linux

Как создать образ диска VHD из живой системы Linux?

Еще раз, я должен прибегнуть к экспертам здесь в SuperUser, так как мои другие источники (в основном Google ;-)) не оказались очень полезными .

В общем, я хотел бы создать VHD-образ физического диска, который будет заархивирован / доступен / даже смонтирован на виртуальной машине. Сейчас в Интернете есть десятки статей и учебных пособий о том, как это сделать, но ни одна не отвечает именно тем условиям, которых я хотел бы достичь:

  • Мне бы хотелось, чтобы конечный файл представлял собой образ VHD , поскольку Windows 7 может монтировать его непосредственно, даже по сети, и многие другие программы могут его использовать (VirtualBox, . )
  • Диск, на котором я пытаюсь создать образ, содержит установку Windows XP, поэтому теоретически я мог бы использовать эту disk2vhd утилиту, но я бы хотел найти решение, которое не требует загрузки при установке Windows XP (то есть оставить диск доступным только для чтения )
  • Поэтому я искал решение, включающее какую-то живую систему (работающую с USB-накопителя или по сети).

Однако все решения, с которыми я сталкивался, либо используют, disk2vhd либо используют dd команду под linux, которая делает полную копию диска (то есть даже пустые блоки) и не выводит файл VHD. Есть ли инструмент / программа под Linux, которая может напрямую создавать VHD-файл? Или возможно преобразовать необработанный образ диска, созданный с помощью dd, в файл VHD, не выделяя место для пустых блоков? Как бы вы поступили?

Как всегда, любой совет или комментарий высоко ценится!

Для дальнейшего использования, вот как я, наконец, поступил, с несколькими комментариями по различным возникшим проблемам или ловушкам:

1. Загрузите машину с работающей системой Linux

Первым шагом была загрузка компьютера, содержащего диск в образ, с использованием живой системы Linux.

ПРИМЕЧАНИЕ. Моей первой идеей было использование USB-диска Ubuntu Live, но машина не поддерживала загрузку с USB, поэтому мне было проще использовать старый Knoppix live CD .

2. Создайте образ диска dd и передайте данные через него ssh

Затем я скопировал все содержимое диска в образ файла на локальном сервере, используя dd и передавая данные через ssh :

$ dd if = / dev / hdX bs = 4k conv = noerror, sync | ssh -c blowfish myuser @ myserver ‘dd of = myfile.dd’

Несколько комментариев здесь: этот метод будет читать все содержимое диска, поэтому это может занять очень много времени (мне потребовалось 5 часов для диска 80 Гб). Узким местом является не сеть, а скорость чтения с диска. Перед запуском копии я советую проверить параметры BIOS / диска / системы, чтобы убедиться, что диск и материнская плата работают с максимально возможной скоростью (это можно проверить с помощью команды hdparm -i и с помощью теста hdparm -Tt /dev/hdX ).

ПРИМЕЧАНИЕ: dd не выводит ход операции, но мы можем заставить его сделать это, отправив сигнал USR1 в dd PID процесса с другого терминала:

3. Восстановите неиспользуемое пространство

На этом этапе исходный компьютер больше не нужен, и мы будем работать исключительно на конечном сервере (также под управлением Linux). VirtualBox будет использоваться для преобразования необработанного образа диска в формат VHD, но перед этим мы можем обнулить неиспользуемые блоки, чтобы VirtualBox не выделял для них место в конечном файле.

Читайте также:  Планшетные компьютеры управлением windows

Для этого я смонтировал изображения как устройство с обратной связью:

ПРИМЕЧАНИЕ. Смещение, обозначающее начало раздела в образе диска, можно получить с помощью parted файла образа:

ПРИМЕЧАНИЕ 2. Драйвер NTFS для ядра Linux по умолчанию обеспечивает доступ только для чтения, поэтому необходимо установить и использовать ntfs-3g драйвер пространства пользователя, иначе запись на диск вызовет ошибку!

4. Создайте образ VHD с помощью VBoxManage

На этом этапе мы можем использовать утилиты VirtualBox для преобразования необработанного изображения в файл VHD:

Я пытался сделать то же самое, что и OP (спасая установку Windows), и закончил тем, что создал для нее новый инструмент ntfsclone2vhd .

Вы бы тогда просто сделали что-то вроде этого:

Одним из подходов является использование нескольких удобных технологий: VirtualBox и ntfsprogs пакета.

Последние версии VirtualBox позволяют создавать файлы жесткого диска VHD, в то время как ntfsprogs предоставляет ntfsclone утилиту. Как следует из названия, ntfsclone клонирует файловые системы NTFS, и я считаю, что это происходит на уровне файловой системы, пропуская неиспользуемые блоки диска.

Итак, для начала создайте новую виртуальную машину в VirtualBox и предоставьте для нее новый пустой диск VHD-файла. Диск VHD должен иметь размер, равный размеру данных, используемых на физическом диске, который вы хотите клонировать (ну, на самом деле, сделайте его немного больше, чтобы обеспечить некоторое пространство для маневра).

Затем найдите Linux live CD, который содержит ntfsprogs пакет, а также openssh-server . Мне нравится System Rescue CD для этого, но почти все живые CD на основе Debian или Ubuntu также должны работать.

Загрузите виртуальную машину VirtualBox с живого компакт-диска Linux и запустите ее sshd на виртуальной машине, чтобы вы могли выполнять команды на ней удаленно. Разделите пустой VHD-диск по назначению, используя любой инструмент для создания разделов, который вы предпочитаете (мне нравится старый fdisk , но я немного староват).

Загрузите компьютер, содержащий физический диск, который вы хотите клонировать, с другой копией живого компакт-диска Linux. Я предполагаю, что виртуальная машина VirtualBox и эта машина доступны друг другу по сети. На этом компьютере выполните следующую команду (все в одной строке):

  • /dev/sdXX является именем устройства (на локальной машине) физического диска, который вы хотите клонировать, и
  • /dev/sdYY это имя устройства (в виртуальной машине) целевого диска VHD.

Объяснение: Первая ntfsclone команда в конвейере извлекает образ исходной файловой системы NTFS и отправляет его через туннель ssh, а вторая ntfsclone команда получает образ и восстанавливает его на диск VHD.

После завершения операции файл VHD должен содержать точный клон файлового файла исходного физического диска (за исключением любых аппаратных ошибок, таких как поврежденные сектора, которые могут привести к преждевременному прерыванию процесса).

Последнее, что вы можете захотеть сделать, — это запустить Windows chkdsk на VHD-диске, просто чтобы убедиться, что клонирование не принесло никаких проблем (этого не должно быть, но эй, я немного параноидален в этих вещах).

Источник

Как создать виртуальный том жесткого диска с помощью файла в Linux

Виртуальный жесткий диск (VHD) – это формат файла образа диска, который представляет собой виртуальный жесткий диск, способный хранить все содержимое физического жесткого диска.

Это контейнерный файл, который действует подобно физическому жесткому диску.

Образ диска копирует существующий жесткий диск и включает в себя все данные и структурные особенности.

Как и физический жесткий диск, VHD может содержать файловую систему, и вы можете использовать ее для хранения и запуска операционной системы, приложений, а также для хранения данных.

Одно из типичных применений виртуальных жестких дисков в VirtualBox Virtual Machines (VM) для хранения операционных систем, приложений и данных.

В этой статье мы покажем, как создать том виртуального жесткого диска, используя файл в Linux.

Это руководство полезно для создания виртуальных жестких дисков в целях тестирования в вашей ИТ-среде.

В этом руководстве мы создадим том VHD размером 1 ГБ и отформатируем его в файловой системе EXT4.

Читайте также:  Dr salmans windows power tools

Создайте новый образ для хранения тома виртуального диска

Есть несколько способов сделать это, но самый простой способ – использовать нашу любимую команду dd.

В этом примере мы будем создавать том VHD размером 1 ГБ.

  • if = /dev/zero: входной файл для предоставления символьного потока для инициализации хранилища данных
  • of = VHD.img: файл образа, который будет создан как том хранения
  • bs = 1M: чтение и запись до 1M одновременно
  • count = 1200: копировать только 1200M (1GB) входных блоков

Далее нам нужно отформатировать тип файловой системы EXT4 в файле образа VHD с помощью утилиты mkfs.

Ответьте y, когда будет предложено, что /media/VHD.img не является блочным специальным устройством, как показано на следующем снимке экрана.

Чтобы получить доступ к тому VHD, нам нужно подключиться к каталогу (точка монтирования).

Выполните эти команды, чтобы создать точку монтирования и смонтировать том VHD соответственно.

-O используется для указания опций для монтирования, здесь цикл опций указывает узел устройства в каталоге /dev/.

Примечание. Файловая система VHD будет оставаться подключенной только до следующей перезагрузки. Чтобы подключить ее при загрузке системы, добавьте эту запись в файл /etc/fstab.

Теперь вы можете проверить вновь созданную файловую систему VHD с точкой монтирования, используя следующую команду df.

Удаление тома виртуального диска

Если вам больше не нужен том VHD, выполните следующие команды для размонтирования файловой системы VHD, а затем удалите файл образа:

Используя ту же идею, вы также можете создать область / пространство подкачки, используя файл в Linux.

Источник

Как создать образ диска VHD из живой системы Linux?

Еще раз, я должен прибегнуть к экспертам здесь в SuperUser, так как другие мои источники (в основном Google ;-)) не оказались очень полезными .

В общем, я хотел бы создать VHD-образ физического диска, который будет заархивирован / доступен / даже смонтирован на виртуальной машине. Сейчас в Интернете есть десятки статей и учебных пособий о том, как это сделать, но ни одна из них не отвечает именно тем условиям, которых я хотел бы достичь:

  • Я хотел бы, чтобы конечный файл представлял собой образ VHD, поскольку Windows 7 может монтировать его непосредственно, даже по сети, и многие другие программы могут использовать его (VirtualBox, . )
  • Диск, который я пытаюсь создать образ, содержит установку Windows XP, поэтому теоретически я мог бы использовать утилиту disk2vhd , но я бы хотел найти решение, которое не требует загрузки при установке Windows XP (т. Е. Сохранить диск на только)
  • Поэтому я искал решение, включающее какую-то живую систему (работающую с USB-накопителя или по сети).

Однако все решения, с которыми я сталкивался, либо используют disk2vhd либо используют команду dd в linux, которая делает полную копию диска (то есть даже пустые блоки) и не выводит файл VHD. Есть ли инструмент / программа под Linux, которая может напрямую создавать VHD-файл? Или возможно преобразовать необработанный образ диска, созданный с помощью dd, в файл VHD, не выделяя место для пустых блоков? Как бы вы поступили?

Как всегда, любой совет или комментарий высоко ценится!

6 ответов 6

Для дальнейшего использования, вот как я, наконец, поступил, с несколькими комментариями по различным возникшим проблемам или ловушкам:

1. Загрузите машину с работающей системой Linux

Первым шагом была загрузка машины с диском в образ с использованием живой системы Linux.

ПРИМЕЧАНИЕ. Моей первой идеей было использование USB-диска Ubuntu Live, но машина не поддерживала загрузку с USB, поэтому мне было проще использовать старый Knoppix live CD.

2. Создайте образ диска с помощью dd и передайте данные через ssh

Затем я скопировал все содержимое диска в образ файла на моем локальном сервере, используя dd и передав данные через ssh :

$ dd if =/dev/hdX bs = 4k conv = noerror, sync | ssh -c blowfish myuser @ myserver ‘dd of = myfile.dd’

Несколько комментариев здесь: этот метод будет читать все содержимое диска, поэтому это может занять очень много времени (мне потребовалось 5 часов для диска 80 Гб). Узким местом является не сеть, а скорость чтения с диска. Перед запуском копии я советую проверить параметры BIOS/ диска / системы, чтобы убедиться, что диск и материнская плата работают с максимально возможной скоростью (это можно проверить с помощью команды hdparm -i и запустив тест с помощью hdparm -Tt /dev/hdX ).

Читайте также:  Cmak что это за папка windows 10

ПРИМЕЧАНИЕ: dd не выводит ход операции, но мы можем заставить его сделать это, отправив сигнал USR1 в PID процесса dd с другого терминала:

3. Восстановить неиспользуемое пространство

На этом этапе исходный компьютер больше не нужен, и мы будем работать исключительно на конечном сервере (также под управлением Linux). VirtualBox будет использоваться для преобразования необработанного образа диска в формат VHD, но перед этим мы можем обнулить неиспользуемые блоки, чтобы VirtualBox не выделял для них место в конечном файле.

Для этого я смонтировал изображения как устройство с обратной связью:

ПРИМЕЧАНИЕ. Смещение, обозначающее начало раздела в образе диска, можно получить, используя parted в файле образа:

ПРИМЕЧАНИЕ 2. Драйвер NTFS для ядра Linux по умолчанию обеспечивает доступ только для чтения, поэтому необходимо установить и использовать драйвер ntfs-3g userspace, иначе запись на диск вызовет ошибку!

4. Создайте образ VHD с помощью VBoxManage

На этом этапе мы можем использовать утилиты VirtualBox для преобразования необработанного изображения в файл VHD:

Я пытался сделать то же самое, что и OP (спасая установку Windows), и закончил тем, что создал для него новый инструмент, ntfsclone2vhd .

Вы бы тогда просто сделали что-то вроде этого:

Одним из подходов является использование нескольких удобных технологий: VirtualBox и пакета ntfsprogs .

Последние версии VirtualBox позволяют создавать файлы жесткого диска VHD, в то время как ntfsprogs предоставляет утилиту ntfsclone . Как следует из его названия, ntfsclone клонирует файловые системы NTFS, и я считаю, что он делает это на уровне файловой системы, пропуская неиспользуемые блоки диска.

Итак, для начала создайте новую виртуальную машину в VirtualBox и предоставьте для нее новый пустой диск VHD-файла. Диск VHD должен иметь размер, равный размеру данных, используемых на физическом диске, который вы хотите клонировать (ну, на самом деле, сделайте его немного больше, чтобы обеспечить некоторое пространство для маневра).

Затем найдите Linux live CD, который содержит пакет ntfsprogs , а также openssh-server . Мне нравится System Rescue CD для этого, но почти все живые CD на основе Debian или Ubuntu также должны работать.

Загрузите виртуальную машину VirtualBox с живого компакт-диска Linux и запустите sshd внутри виртуальной машины, чтобы вы могли выполнять команды на ней удаленно. Разделите пустой VHD-диск по назначению, используя любой инструмент для создания разделов, который вы предпочитаете (мне нравится обычный старый fdisk , но я немного староват).

Загрузите компьютер, содержащий физический диск, который вы хотите клонировать, с другой копией Live CD. Я предполагаю, что виртуальная машина VirtualBox и эта машина доступны друг другу по сети. На этом компьютере выполните следующую команду (все в одной строке):

  • /dev/sdXX — имя устройства (на локальном компьютере) физического диска, который вы хотите клонировать, и
  • /dev/sdYY — имя устройства (в виртуальной машине) целевого диска VHD.

Объяснение: Первая команда ntfsclone в конвейере извлекает образ исходной файловой системы NTFS и отправляет его через туннель ssh, а вторая команда ntfsclone получает образ и восстанавливает его на диске VHD.

После завершения операции файл VHD должен содержать точный клон файлового файла исходного физического диска (за исключением любых аппаратных ошибок, таких как поврежденные сектора, которые могут привести к преждевременному прерыванию процесса).

Последнее, что вы можете сделать, это запустить Windows chkdsk на диске VHD, просто чтобы убедиться, что клонирование не принесло никаких проблем (этого не должно быть, но, эй, я немного параноидален в этих вещах),

Источник

Оцените статью