Аналог disk2vhd для linux

Обновлено: 07.07.2024

есть ли способ загрузить систему Linux с VHD в Windows 7?

Если есть способ, как я могу поставить его там в первую очередь?

EDIT: чтобы уточнить, я не пытаюсь запустить Linux на виртуальной машине. Я пытаюсь загрузить его на своей физической машине с VHD, как я могу сделать с Windows 7.

нельзя. В Windows поддержка VHD интегрирована в процесс загрузки, и Linux такой поддержки не предлагает. Кроме того, я не знаю, что Linux поддерживает загрузку с любого другого типа виртуального диска.

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

вы можете найти более подробную информацию здесь:

1 Linux как реальное устройство

с VBoot для Linux, вы можете предварительно установить и предварительно настроить ОС Linux и ее приложений, затем распространить полученный файл виртуального диска в формате VHD. Vhd может загрузить реальный компьютер, с конфигурацией и приложениями, доступными мгновенно. Таким образом, операционные системы действительно управляемы, так же просто, как файлы. Мы называем такой виртуальный жесткий диск Linux реальным устройством в том смысле, что он загружает физические компьютеры.

очень легко настроить и загрузить компьютер с vhd-файлом. Загрузите файл vhd, поместите его в файловую систему Windows или Linux, затем настройте загрузчик и перезагрузить компьютер.

2 Linux как виртуальное устройство

точно такой же файл vhd также работает как виртуальная машина с помощью программного обеспечения виртуализации, таких как Vmlite Workstation, VirtualBox, Xen и Virtual PC и Hyper-V и т.д. По умолчанию он оптимизирован для рабочей станции VMLite.

Если Vmlite Workstation установлена, вы можете просто дважды щелкнуть ubuntu-910-desktop-i386.файл mop для запуска виртуального жесткого диска в качестве виртуальной машины с Vmlite Workstation.

образец Ubuntu VHD пакет готов для загрузки:

загрузить, извлечь, затем дважды щелкните настройка.exe на Windows, перезагрузка На Linux, нужно настроить загрузчики.

сначала создайте загрузочный Win 7 VHD с помощью этой известной процедуры из Keith Combs.

загрузки операционной системы Win 7 на VHD.

иди бесплатного установщика Wubi.

из Windows 7, установить Ubuntu Установщик Wubi, но убедитесь, что вы устанавливаете файлы на основной раздел физического HD (не раздел C: windows VHD)

перезагрузка при запросе сделать это, но не выбирайте Ubuntu еще из меню загрузки (он не будет работать), вам нужно запустить Windows 7 в последний раз.

теперь важный бит: В Windows 7 убедитесь, что вы измените настройки просмотра папок на "Показать все файлы" и убедитесь, что файлы ОС не скрыты. Как только вы сделали это, перейдите к C: диск. Вы увидите два важные файлы: wubildr и wubildr.mbr

скопируйте эти два файла в корень физического раздела (т. е. раздела, где Windows7.vhd файл находится и папку Ubuntu, которая была создана при установке wubi выше). Просто убедитесь, что вы копируете файлы в нужный раздел, убедитесь, что вы можете видеть, что есть файл подкачки.sys bootmgr и bootsect.файл bak.

вот оно! перезагрузитесь и выберите Ubuntu из Windows загрузчик.

можно использовать образ диска в качестве корневого устройства, но при компиляции в ядро или загрузчик несколько сложнее. Поскольку спецификация VHD находится в свободном доступе, расширение lilo или grub или ядра linux, чтобы дать vhd тот же статус, что и a .iso или .img или другой файл образа диска должен быть простым делом программирования, занимая у вас не более года или двух выходных и вечеров. Тогда вы будете героем, и после того, как ваши патчи будут приняты в основной источник ядра линии вы имеете право получить татуировку смокинга.

lol это поздний ответ, но вы можете попробовать установщик WUBI или unetbootin. Они не используют файлы VHD, хотя они позволяют загружать несколько дистрибутивов linux без каких-либо разделов, пока у вас есть копия компакт-диска или iso.

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

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

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

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

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

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

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

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

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

ПРИМЕЧАНИЕ: 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 и эта машина доступны друг другу по сети. На этом компьютере выполните следующую команду (все в одной строке):

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

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

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

Установка Windows привязана к аппаратной конфигурации компьютера. С помощью наших советов вы сможете создать снимок состояния реальной системы и превратить его в виртуальную машину, чтобы запускать с помощью любой удобной программы-гипервизора.

Как превратить реальную установку Windows или Linux в виртуальную машину

У VMware есть бесплатная утилита VMware vCenter Converter , позволяющая превратить реальную установку Windows или Linux в виртуальную машину, совместимую с программным обеспечением VMware. Такую виртуальную машину можно запускать в бесплатном приложении VMware Player, так что за весь этот проект не придется заплатить ни копейки. Хотя, конечно, при желании можно использовать и платные VMware Workstation или VMware Fusion.

Скачайте vCenter Converter с сайта VMware и запустите на компьютере, который хотите превратить в виртуальную машину. Нажмите в панели инструментов кнопку «Convert machine» («Преобразовать машину») и выберите текущий компьютер в качестве источника, а в качестве цели – виртуальную машину VMware Workstation, VMware Player или VMware Fusion. Задайте настройки виртуальной машины.

После этого утилита создаст на основе текущей установки Windows виртуальную машину, оптимизировав ее для запуска в программе-гипервизоре. Сохраните получившийся файл на внешний накопитель – и можете запускать его на другом компьютере.

Как превратить реальную установку Windows или Linux в виртуальную машину

Microsoft Hyper-V: только для Windows

У Microsoft есть утилита Disk2vhd – один из множества полезных инструментов от SysInternals. Она позволяет превратить текущую установку Windows в виртуальный жесткий диск (VHD) для использования в гипервизорах Microsoft, таких как платформа Hyper-V, которая входит в состав профессиональных изданий Windows 8 и 8.1.

Запустите Disk2vhd на компьютере, который хотите превратить в виртуальную машину, и выберите, какие разделы и диски включить в состав VHD. Утилита создаст копию текущей установки Windows в виде VHD-файла, который можно будет запустить в Hyper-V на другом компьютере. Созданная система загрузится без проблем – главное использовать именно гипервизор Microsoft Hyper-V.

Как превратить реальную установку Windows или Linux в виртуальную машину

Parallels: для Windows и Linux

У Parallels есть собственная утилита Parallels Transporter Agent для Windows и Linux. С ее помощью можно превратить реальную систему в виртуальную машину для запуска в гипервизоре Parallels под Mac. Виртуальную машину, созданную из физической системы, можно сохранить на внешний накопитель или передать на Mac (если там установлено приложение Parallels) прямо по локальной сети.

Скачайте Parallels Transporter Agent с официального сайта и запустите в Windows или Linux. Следуя указаниям мастера, превратите реальную установку в виртуальную машину, выбрав, что должно войти в ее состав, и сохраните получившийся файл на внешний накопитель или передайте по сети на Mac.

Как превратить реальную установку Windows или Linux в виртуальную машину

VirtualBox: настройка вручную

У VirtualBox нет простой утилиты с графическим интерфейсом для превращения реальной системы в виртуальную машину. Если очень тянет на эксперименты, можно воспользоваться инструкциями для создания виртуальной машины из физической установки Windows, но надо иметь в виду, что на официальную техническую поддержку от VirtualBox в процессе рассчитывать не приходится. Необходимо внести кое-какие изменения в реестр, выключить компьютер, а затем вручную создать копию диска и конвертировать ее в файл VDI для запуска в VirtualBox. В Linux порядок действий аналогичный, только в реестре ковыряться не нужно. Вообще, Linux гораздо проще переносить с одного компьютера на другой, даже при отличающихся аппаратных конфигурациях.

Короче говоря, процедура для сильных духом, и мы упоминаем здесь о ней только ради полноты описания. Даже если вы уже пользуетесь VirtualBox, лучше все-таки попробовать VMware или Microsoft Hyper-V. Но если наши предупреждения вас не напугали – к вашим услугам страница « Migrate Windows » в вики-справочнике VirtualBox.

Автор: Chris Hoffman
Перевод SVET


Оцените статью: Голосов

Пересмотрел таргеты (LIO, istgt, STGT, IET, SCST), но ничего похожего не увидел.
Может в Linux это реализуется не сервисом iscsi, а на уровне файловой системы ?

Подскажите, пожалуйста, в какую сторону копать.

  • Вопрос задан более двух лет назад
  • 343 просмотра

Средний 3 комментария

Все-таки немного не то.

Сейчас у меня есть 30 виртуальных диска для VDI (каждый по 70-80гб), каждый диск в виде файла. В конфиге iSCSI Таргета прописаны пути до этих файлов.

Вот я и хочу сделать один "универсальный" чистый образ, назначить его readonly, и чтобы изменения которые будут делаться каждой конкретной станцией - хранились отдельно от главного образа.

По сути это именно дедупликация, но рабочего решения под unix еще не нашел.
Предлагают смотреть в сторону zfs, но логика работы мне пока не ясна.

Немного не то в чем, поконкретнее опишите?

Вот я и хочу сделать один "универсальный" чистый образ, назначить его readonly, и чтобы изменения которые будут делаться каждой конкретной станцией - хранились отдельно от главного образа.

Вот это как раз AUFS и UnionFS. Есть readonly образ, а изменения, которые пишет станция сохраняются отдельно. aufs и unionfs это средства для разграничения внутри файловой системы.
а тут просят действо на уровне файла образа диска. тут юнионы не смогут диф сделать. Предположу что под капотом оно подключает два диска, один на ОС, второй на пользовательские данные.
В теории в линуксе можно организовать подобное Если я правильно понял, есть базовый неизменный образ который используют все машины, а изменения характерные для каждой машины хранятся отдельно? Если так, то почитайте про AUFS и UnionFS, эти файловые системы давно появились, так что может уже и еще чтото новое есть.

смотря что понимать под словом линукс
в proxmox такое есть (linked clone)

А вообще есть хранение в LVM когда нет "образов" дисков, а есть и дедупликация на уровне FS (ZFS)
но нужно понимать, что это не будет бесплатно в плане производительности.. равно как и в MS.

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

unix way - не пытайтесь найти готовый комбаин, собирайте ваше решение из кирпичиков. Пусть за iscsi отвечает тот же istgt а за снапшоты - btrfs.

Если закрыть глаза именно на iscsi (мало ли вы виртуальные машины через них подключаете локально, видел я такие конструкции) У qemu/kvm есть опции когда можно подключить диск но все изменения пишутся в отдельный файл. То же самое есть у всех крупных систем виртуализации, правда называется везде по разному.

Если универсально, то исторически lvm позволяет делать снапшоты на блочных устройствах, но за счет значительного понижения производительности, т.е. вы можете создать 100500 снапшотов на основе вашего базового диска, и каждый отдать в свою отдельную машину. Не рекомендую для вашего случая 256 активных снапшотов это будет фейл.

Вы можете воспользоваться copy on write файловыми системами например btrfs или zfs (хуже в linux работает), в них создание снапшота не понижает производительность (т.е. за это не приходится платить), правда сами файловые системы менее шустрые, так как сильно фрагментируют контент, но если сравнивать с lvm то на порядок эффективнее.

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

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

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

1. Загрузите машину с ОС Linux видео

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

Примечание: моя первая идея была использовать Ubuntu на USB с диска, но машина не поддерживает загрузку с USB, поэтому мне было проще использовать старый жесткий диск прямо с компакт-диска.

2. Образ диска с помощью " ДД " и передать данные через СШ

Затем я скопировал все содержимое диска в файл образа на моем локальном сервере, используя " ДД " и передачи данных через СШ :

Примечание: ДД не выходе ходом операции, но мы можем заставить его сделать это, отправив USR1 сигнал ДД PID процесса из другого терминала:

$ убить -USR1 PIDofdd

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

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

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

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

Примечание 2: драйвер ядра Linux NTFS обеспечивает доступ только для чтения, при этом необходимо установить и использовать инструменты `нтфс-3г драйвера или записи на диск выдает ошибку!

4. Создать образ виртуального диска с помощью VBoxManage

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

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

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

Один подход заключается в использовании пары удобных технологий: [мужской голос](), и пакет ntfsprogs .

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

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

Во-вторых, в Linux живой компакт-диск, содержащий пакет ntfsprogs , а также пакет OpenSSH-сервер . Мне нравится система загрузочного CD для этого, но практически любой на Debian или Ubuntu на основе живой компакт-диск должен работать.

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

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

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

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

Читайте также: