Создать образ диска Linux

Обновлено: 21.11.2024

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

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

Сначала создайте пустой файл:

Это просто создаст пустой файл размером 512 МБ. В Ubuntu, если щелкнуть по нему правой кнопкой мыши и выбрать «Открыть с помощью», а затем выбрать «Средство монтирования образа диска», ничего не произойдет: это все еще просто файл!

Следующий шаг — превратить этот файл в «виртуальный диск», добавив к нему файловую систему; сделать это очень просто:

Это вызовет у вас вопрос: "image.iso не является блочным специальным устройством. Все равно продолжить? (y,n)". Вопрос в том, что обычно вы создаете файловую систему на физическом диске, а не в файле.

Если вам интересно, ext4 — это обычная файловая система, используемая GNU/Linux, но это не единственный вариант: через минуту вы поймете, почему.

После запуска команды вы, наконец, можете "монтировать" свой файл: щелкните его правой кнопкой мыши, выберите "Открыть с помощью", а затем выберите "Средство монтирования образа диска". Вы увидите, что ваш файл "смонтирован", как это происходит с USB-накопителями, когда вы подключаете их к компьютеру.

Подождите. что происходит?

На самом деле здесь происходит то, что вы обрабатываете файл (в данном случае image.iso ) точно так же, как диск. Когда вы копируете файл на смонтированный диск, вы фактически изменяете файл image.iso. Вы можете (и должны) «извлечь» диск, когда закончите, точно так же, как если бы вы делали это с внешним диском.

Файл был "смонтирован", как это происходит с USB-диском

Когда вы запустили mkfs.ext4 в файл, произошло волшебство: вы установили на него файловую систему и, следовательно, превратили его во что-то, способное хранить информацию.

Теперь вы можете брать файл image.iso куда угодно: люди смогут монтировать его и просматривать его содержимое. пока они используют GNU/Linux. Если вы хотите превратить его во что-то более универсальное, вам нужно будет создать файловую систему, которую поймет любая система. Самая универсальная файловая система — старая жирная от Microsoft. Итак, последняя команда будет выглядеть так:

Внимание! поскольку вы создаете новую файловую систему для файла, все, что в ней хранилось ранее, будет удалено. Теперь ваш файл image.iso можно смонтировать в Windows, OS X или GNU/Linux. Есть только одна проблема: файловая система FAT не любит большие толстые файлы размером более 4 Гб (как это ни парадоксально звучит). Эта проблема решена с помощью новой файловой системы ExFat .

Если это проблема для вас, прежде всего установите exfat-utils (в Ubuntu просто введите sudo apt-get install exfat-utils ), а затем запустите:

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

Следующий шаг — создать зашифрованную файловую систему, которая сделает ваш виртуальный диск безопасным и неуязвимым. Об этом будет рассказано в завтрашней статье. Оставайтесь с нами!

Лицензия

Дословное копирование и распространение всей этой статьи разрешено во всем мире без авторских отчислений на любом носителе при условии сохранения этого уведомления.

Я новый пользователь Linux. Я переустанавливал свой Wubi с нуля не менее десяти раз за последние несколько недель, потому что при настройке и запуске системы (драйверы, разрешение и т. д.) я что-то сломал (X, grub, неизвестные ) и я не могу заставить его работать. Особенно для новичка, такого как я, проще (и намного быстрее) просто переустановить весь шебанг, чем пытаться устранить несколько уровней неудачных попыток «исправления».

Исходя из Windows, я ожидаю, что есть какая-то утилита "образ диска", которую я могу запустить, чтобы сделать снимок моей установки Linux (и загрузочного раздела!!), прежде чем я буду вмешиваться в дела. Затем, после того, как я заблокировал свою машину, я каким-то образом восстановил свою машину до этого рабочего снимка.

Что такое Linux-эквивалент образов дисков Windows, таких как Acronis True Image или Norton Ghost?

Torben, в папке Wubi (обычно C:\UBUNTU, но может быть и другой диск и папка) вы найдете не только образы петлевых дисков, созданные для вашей установки Ubuntu, но и некоторые другие важные файлы (например, загрузчик Wubi). Извините, если это предположение, но я думаю, что это образованный.;-) Возможно (потому что я действительно никогда не пробовал - извините - но не повредит, если вы попробуете - я бы сделал), если вы сделаете резервную копию этой папки, пока система находится в хорошем состоянии, вы можете вернуть Wubi, заменив хорошее состояние по сравнению с нефункциональным.

Пожалуйста, опубликуйте это как ответ, потому что это звучит как хороший способ, особенно для установок Wubi! После моего последнего фубара я установил «настоящую» Ubuntu, а не Wubi, так что этот маленький трюк останется у меня в ящике до следующего раза, когда я окажусь в этом месте.

Acronis True Image может создать точную резервную копию во время работы системы. Все приведенные ниже ответы, кроме того, в котором упоминается Ghost для Linux, терпят неудачу, потому что они фактически не заменяют функциональные возможности Acronis и Ghost. Существует распространенное мнение, что резервные копии можно делать в системе, в которой они работают. Несмотря на это, созданные резервные копии рискуют не восстановиться должным образом из-за изменения файлов в файловой системе во время создания резервной копии, что делает резервную копию несовместимой с самой собой.

12 ответов 12

dd — это низкоуровневая утилита, которую можно использовать для выполнения этой задачи. По сути, это низкоуровневая утилита побайтового копирования. Если вам нужен способ "UNIX" для достижения этой цели, читайте дальше.

Все ссылки на файловую систему и жесткие диски расположены локально в виртуальной файловой системе /dev/. В /dev/ есть множество «узлов», которые являются интерфейсами практически для всех устройств на вашем компьютере. Например, /dev/hda или /dev/sda будет ссылаться на первый жесткий диск в вашей системе (hda или sda зависит от жесткого диска), а /dev/hda1 будет ссылаться на первый раздел на вашем жестком диске.< /p>

Самый простой способ создать необработанный образ ваших разделов — использовать dd для создания дампа всего раздела в один файл (помните, что ОС получает доступ к разделам /dev/sda1 через файловый интерфейс). Убедитесь, что вы находитесь в разделе большего размера или на дополнительном диске, и выполните следующую команду:

dd if=/dev/hda1 of=./part1.image для резервного копирования (повторить для разных разделов) dd if=./part1.image of=/dev/hda1 для восстановления

Ту же команду можно использовать для резервного копирования всего жесткого диска (замените hda1 на hda ). Затем вы можете использовать любую программу сжатия (gunzip, zip, bzip), чтобы сжать файл для хранения. Вы можете использовать этот же метод для создания механических копий целых разделов для создания клонов вашего компьютера.

Однако существует одно ограничение при восстановлении резервной копии: раздел должен быть того же размера (или больше), что и раздел, из которого вы взяли образ, поэтому это ограничивает ваши возможности в случае восстановления. Однако вы всегда можете расширить раздел после восстановления резервной копии с помощью gparted или parted . Картина становится еще более мутной, когда вы пытаетесь восстановить целые копии диска. Однако если вы восстанавливаете резервную копию на тот же жесткий диск, вам вообще не о чем беспокоиться.

Однако, если вам нужна более "дружественная" утилита в стиле Norton Ghost, то это предложение может вам не подойти.

Если вы хотите стереть, создать резервную копию или восстановить данные в Linux, вы можете выбрать несколько приложений. Но какую бы операционную систему Linux вы ни использовали, всегда работает одна команда — dd.

Когда придет время стереть, создать резервную копию или восстановить данные в Linux, вы можете выбрать несколько приложений. GParted — один из самых проверенных вариантов. Диски GNOME — это более современная альтернатива, которая отлично смотрится в среде рабочего стола GNOME. Но независимо от того, какую операционную систему Linux вы используете, всегда работает один вариант — dd.

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

Зачем использовать дд?

Независимо от того, работаете ли вы на компьютере или на сервере, dd просто работает. dd начиналась как команда Unix, поэтому, помимо Linux, она поддерживает другие Unix-подобные операционные системы, такие как FreeBSD и macOS.

dd также занимает всего несколько секунд, чтобы инициировать очистку или создать образ диска. Когда вы знаете, что вводить, вы можете открыть терминал и стереть диск за время, необходимое для поиска инструкций в Интернете.

С большой силой приходит большая ответственность. Команда для клонирования диска не сильно отличается от команды для его стирания. Вам нужно уделять особое внимание тому, что вы вводите при работе с командами, которые могут удалять файлы.

Ты нервничаешь? Хорошо. Даже если вы являетесь экспертом по dd, вам всегда нужно внимательно вводить команды. Отсутствующий разум может в худшем случае испортить оборудование и, что более вероятно, привести к потере данных. Теперь приступим.

Клонирование диска с помощью dd

Клонирование диска — это надежный способ сделать резервную копию вашего компьютера. Вы можете создавать резервные копии данных на переносном жестком диске или в Dropbox, но это сохранит только ваши файлы.

Чтобы сохранить свои приложения, вам нужно научиться создавать резервные копии каждого отдельного приложения.Для некоторых это означает экспорт определенного файла. Для других это означает копирование скрытой папки. Кроме того, есть приложения, для которых вы вообще не можете создавать резервные копии.

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

Чтобы клонировать диск, вам понадобится второй диск, на котором больше места, чем на том, который вы копируете. Скорее всего, это будет переносной жесткий диск или большая флешка.

Начните с открытия терминала. Вам потребуются права администратора для выполнения любых команд dd. Вы можете ввести su, чтобы войти в систему как администратор, или ввести sudo в начале команды dd.

Когда вы будете готовы к копированию, введите команду ниже. Обратите внимание, что при этом будут удалены все ранее существовавшие данные на втором диске, поэтому обязательно сделайте резервную копию всех данных заранее.

А теперь давайте разберемся, что происходит. дд это команда. если это вход, как в месте, которое вы хотите скопировать. of — это результат или место, которое вы заменяете своей копией.

sdX и sdY относятся к дискам, с которыми вы взаимодействуете. Дискам часто присваиваются имена, такие как /dev/sda, /dev/sdb или /dev/sdc. Узнать имена можно с помощью редактора разделов. Или, поскольку вы уже находитесь в терминале, вы можете использовать команду lsblk.

Создание образа диска

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

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

Для экономии места резервную копию можно сжать с помощью dd.

Эта команда сжимает вашу резервную копию в файл IMG.GZ, один из многих форматов сжатия, поддерживаемых Linux.

Восстановление диска с помощью dd

Что хорошего в резервных копиях, если вы не можете их использовать? Когда вы будете готовы восстановить образ с помощью dd, у вас есть два варианта. Если вы использовали первый подход, просто поменяйте местами два места назначения.

При восстановлении из файла изображения применяется та же концепция:

Если ваш файл изображения сжат, все обстоит немного иначе. Вместо этого используйте эту команду:

Для ясности, gunzip — это "g unzip", а не "g zip". Эта команда распаковывает вашу резервную копию. Затем dd заменяет существующий диск этим образом.

Параметры, которые следует учитывать

Вы можете изменить свою команду, вставив параметр в конце. По умолчанию dd может занять некоторое время для передачи данных. Вы можете ускорить процесс, увеличив размер блока. Для этого добавьте bs= в конце.

В этом примере размер блока по умолчанию увеличивается с 512 байт до 64 килобайт.

conv=noerror указывает dd продолжать работу, несмотря на возникающие ошибки. Поведение по умолчанию — остановка, что приводит к неполному файлу. Имейте в виду, что игнорирование ошибок не всегда безопасно. Полученный файл может быть поврежден.

conv=sync добавляет блоки ввода с нулями всякий раз, когда возникают какие-либо ошибки чтения. Таким образом, смещения данных остаются синхронизированными.

Последние два параметра можно объединить как conv=noerror,sync, если хотите. После запятой нет пробела.

Знакомство с дд

Если вам интересно, имя dd относится к оператору языка управления заданиями IBM. Если вы не понимаете, что там происходит, не парьтесь. Это не усложняет использование команды.

Нужна дополнительная информация, чтобы помочь с dd? Вики-страница довольно подробная. На вики Arch Linux также есть отличная статья. Опять же, не имеет значения, используете вы Arch или нет. dd работает одинаково независимо от вашей операционной системы Linux.

Если окажется, что dd не для вас, вам не повезло. Есть и другие способы клонирования жесткого диска!

Функция пользовательских образов DigitalOcean позволяет переносить настраиваемые образы виртуальных дисков Linux и Unix из локальной среды или другой облачной платформы в DigitalOcean и использовать их для запуска дроплетов DigitalOcean.

Как описано в документации по пользовательским изображениям, следующие типы изображений изначально поддерживаются инструментом загрузки пользовательских изображений:

Хотя образы в формате ISO официально не поддерживаются, вы можете узнать, как создавать и загружать совместимые образы с помощью VirtualBox, следуя статье Как создать дроплет DigitalOcean из образа Ubuntu в формате ISO.

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

Начнем с того, что наше изображение соответствует требованиям к пользовательским изображениям. Для этого мы настроим систему и установим необходимое программное обеспечение. Затем мы создадим образ с помощью утилиты командной строки dd и сожмем его с помощью gzip.После этого мы загрузим этот сжатый файл изображения в DigitalOcean Spaces, откуда мы сможем импортировать его как пользовательское изображение. Наконец, мы загрузим дроплет, используя загруженное изображение.

Предпосылки

По возможности следует использовать в качестве основы один из образов, предоставленных DigitalOcean, или официальный облачный образ, предоставляемый дистрибутивом, например Ubuntu Cloud. Затем вы можете установить программное обеспечение и приложения поверх этого базового образа, чтобы создать новый образ, используя такие инструменты, как Packer и VirtualBox. Многие облачные провайдеры и среды виртуализации также предоставляют инструменты для экспорта виртуальных дисков в один из совместимых форматов, перечисленных выше, поэтому, если возможно, вам следует использовать их для упрощения процесса импорта. В тех случаях, когда вам необходимо вручную создать образ диска вашей системы, вы можете следовать инструкциям в этом руководстве. Обратите внимание, что эти инструкции были протестированы только с системой Ubuntu 18.04, и шаги могут различаться в зависимости от операционной системы и конфигурации вашего сервера.

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

Система типа Linux или Unix, отвечающая всем требованиям, перечисленным в документации по продукту Custom Images. Например, ваш загрузочный диск должен иметь:

  • Максимальный размер – 100 ГБ.
  • Таблица разделов MBR или GPT с загрузчиком grub
  • Драйверы VirtIO установлены

Пользователь без полномочий root с правами администратора, доступными вам в системе, которую вы создаете. Чтобы создать нового пользователя и предоставить ему административные привилегии в Ubuntu 18.04, выполните нашу первоначальную настройку сервера с Ubuntu 18.04. Чтобы узнать, как это сделать в Debian 9, обратитесь к разделу Initial Server Setup with Debian 9.

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

Пространство DigitalOcean и утилита передачи файлов s3cmd, настроенные для использования с вашим пространством. Чтобы узнать, как создать пространство, обратитесь к краткому руководству по Spaces. Чтобы узнать, как настроить s3cmd для использования в Space, обратитесь к Руководству по установке s3cmd 2.x.

Шаг 1. Установка Cloud-Init и включение SSH

Для начала мы установим пакет инициализации cloud-Init. Cloud-init — это набор скриптов, которые запускаются при загрузке для настройки определенных свойств облачного экземпляра, таких как язык по умолчанию, имя хоста, ключи SSH и сетевые устройства.

Этапы установки cloud-init зависят от установленной операционной системы. Как правило, пакет cloud-init должен быть доступен в диспетчере пакетов вашей ОС, поэтому, если вы не используете дистрибутив на основе Debian, вам следует заменить apt в следующих шагах командой диспетчера пакетов вашего дистрибутива.

Установка облачной инициализации

В этом руководстве мы будем использовать сервер Ubuntu 18.04, поэтому будем использовать apt для загрузки и установки пакета cloud-init. Обратите внимание, что cloud-init может быть уже установлен в вашей системе (некоторые дистрибутивы Linux устанавливают cloud-init по умолчанию). Для проверки войдите на свой сервер и выполните следующую команду:

Если вы видите следующий вывод, cloud-init уже установлен на вашем сервере, и вы можете продолжить его настройку для использования с DigitalOcean:

Если вместо этого вы видите следующее, вам необходимо установить cloud-init :

Чтобы установить cloud-init , обновите индекс пакета, а затем установите пакет с помощью apt :

Теперь, когда мы установили cloud-init, мы настроим его для использования с DigitalOcean, убедившись, что он использует источник данных ConfigDrive. Источники данных Cloud-init определяют, как cloud-init будет искать и обновлять конфигурацию и метаданные экземпляра. Капли DigitalOcean используют источник данных ConfigDrive, поэтому мы проверим, стоит ли он первым в списке источников данных, которые выполняет поиск cloud-init при каждой загрузке капли.

Перенастройка cloud-init

По умолчанию в Ubuntu 18.04 cloud-init сначала настраивается на использование источника данных NoCloud. Это вызовет проблемы при запуске образа в DigitalOcean, поэтому нам нужно перенастроить cloud-init для использования источника данных ConfigDrive и обеспечить повторный запуск cloud-init при запуске образа в DigitalOcean.

В командной строке перейдите в каталог /etc/cloud/cloud.cfg.d:

Используйте команду ls, чтобы вывести список файлов конфигурации cloud-init, присутствующих в каталоге:

В зависимости от вашей установки некоторые из этих файлов могут отсутствовать. Если он есть, удалите файл 50-curtin-networking.cfg, который настраивает сетевые интерфейсы для вашего сервера Ubuntu. Когда образ запускается в DigitalOcean, cloud-init запустится и автоматически перенастроит эти интерфейсы, поэтому этот файл не нужен. Если этот файл не удалить, дроплет DigitalOcean, созданный из этого образа Ubuntu, будет иметь неправильно настроенные интерфейсы и не будет доступен из Интернета:

Далее мы запустим dpkg-reconfigure cloud-init, чтобы удалить источник данных NoCloud, чтобы убедиться, что cloud-init ищет и находит источник данных ConfigDrive, используемый в DigitalOcean:

Вы должны увидеть следующее графическое меню:

Источник данных NoCloud изначально выделен. Нажмите ПРОБЕЛ, чтобы отменить выбор, затем нажмите ВВОД .

Наконец, перейдите в /etc/netplan:

Удалите файл 50-cloud-init.yaml, созданный на основе удаленного ранее сетевого файла cloud-init:

Последний шаг – очистить конфигурацию от первоначального запуска cloud-init, чтобы он запускался повторно при запуске образа в DigitalOcean.

Для этого запустите cloud-init clean :

На данный момент вы установили и настроили cloud-init для использования с DigitalOcean. Теперь вы можете перейти к включению SSH-доступа к вашему дроплету.

Включить доступ по SSH

После того, как вы установили и настроили cloud-init , следующим шагом будет убедиться, что на вашем компьютере доступны пользователь и пароль администратора без полномочий root, как указано в предварительных требованиях. Этот шаг необходим для диагностики любых ошибок, которые могут возникнуть после загрузки вашего изображения и запуска вашей капли. Если существующая сетевая конфигурация или неправильная конфигурация cloud-init делает ваш дроплет недоступным по сети, вы можете использовать этого пользователя в сочетании с консолью дроплета DigitalOcean для доступа к вашей системе и диагностики любых проблем, которые могли возникнуть.

После того как вы настроили администратора без полномочий root, последним шагом будет убедиться, что у вас установлен и работает SSH-сервер. SSH часто предустановлен во многих популярных дистрибутивах Linux. Процесс проверки того, запущена ли служба, зависит от операционной системы вашего сервера... Если вы не знаете, как это сделать, обратитесь к документации вашей ОС по управлению службами. В Ubuntu вы можете убедиться, что SSH запущен и работает, используя следующую команду:

Вы должны увидеть следующий вывод:

Если SSH не запущен и не работает, вы можете установить его с помощью apt (в дистрибутивах на основе Debian):

По умолчанию сервер SSH запускается при загрузке, если не указано иное. Это желательно при запуске системы в облаке, поскольку DigitalOcean может автоматически скопировать ваш открытый ключ и предоставить вам немедленный доступ SSH к вашей капле после создания.

После того как вы создали пользователя с правами администратора без полномочий root, включили SSH и установили cloud-init, вы готовы перейти к созданию образа загрузочного диска.

Шаг 2 — Создание образа диска

На этом шаге мы создадим образ диска в формате RAW с помощью утилиты командной строки dd и сожмем его с помощью gzip . Затем мы загрузим изображение в DigitalOcean Spaces с помощью s3cmd .

Для начала войдите на свой сервер и проверьте расположение блочных устройств в вашей системе с помощью lsblk :

Вы должны увидеть примерно следующее:

В этом случае мы замечаем, что наш основной загрузочный диск — это /dev/vda, диск объемом 25 ГБ, а основной раздел, смонтированный в /, — это /dev/vda1. В большинстве случаев диск, содержащий раздел, смонтированный в /, будет исходным диском для образа. Мы собираемся использовать dd для создания образа /dev/vda .

На этом этапе вам следует решить, где вы хотите сохранить образ диска. Один из вариантов — подключить еще одно блочное запоминающее устройство, желательно такого же размера, как диск, образ которого вы собираетесь создать. Затем вы можете сохранить изображение на прикрепленный временный диск и загрузить его в DigitalOcean Spaces.

Если у вас есть физический доступ к серверу, вы можете добавить к машине дополнительный диск или подключить другое запоминающее устройство, например внешний USB-диск.

Еще один вариант, который мы продемонстрируем в этом руководстве, — копирование образа по SSH на локальный компьютер, с которого его можно загрузить в Spaces.

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

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

Вариант 1. Локальное создание изображения

Синтаксис команды dd, которую мы собираемся выполнить, выглядит следующим образом:

В этом случае мы выбираем /dev/vda в качестве входного диска для образа и устанавливаем размер блока ввода/вывода на 4 МБ (по умолчанию 512 байт). Обычно это немного ускоряет процесс.Кроме того, мы используем флаг conv=sparse, чтобы минимизировать размер выходного файла, пропуская пустое пространство. Чтобы узнать больше о параметрах dd, обратитесь к справочной странице dd.

Затем мы передаем вывод в утилиту просмотра канала pv, чтобы мы могли визуально отслеживать ход передачи (этот канал является необязательным и требует установки pv с помощью диспетчера пакетов). Если вы знаете размер начального диска (в данном случае это 25 ГБ), вы можете добавить -s 25 ГБ в канал pv, чтобы получить ожидаемое время прибытия, когда передача будет завершена.

Затем мы передаем все это в gzip и сохраняем в файл с именем ubuntu.gz на томе временного блочного хранилища, который мы присоединили к серверу. Замените /mnt/tmp_disk на путь к внешнему запоминающему устройству, которое вы подключили к серверу.

Вариант 2. Создание образа через SSH

Вместо того, чтобы выделять дополнительное хранилище для удаленного компьютера, вы также можете выполнить копирование через SSH, если на вашем локальном компьютере достаточно места на диске. Обратите внимание, что в зависимости от доступной вам пропускной способности это может быть медленным, и вы можете понести дополнительные расходы на передачу данных по сети.

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

В этом случае мы подключаемся к нашему удаленному серверу по SSH, выполняем там команду dd и передаем вывод в gzip . Затем мы передаем вывод gzip по сети и сохраняем его локально как ubuntu.gz. Перед выполнением этой команды убедитесь, что на вашем локальном компьютере доступна утилита dd:

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

После того, как вы создали сжатый файл изображения, вы можете перейти к его загрузке в DigitalOcean Spaces с помощью s3cmd .

Шаг 3 — Загрузка изображения в пространства и пользовательские изображения

Как описано в предварительных требованиях, у вас должен быть установлен и настроен s3cmd для использования с вашим DigitalOcean Space на компьютере, где находится сжатый образ.

Найдите сжатый файл изображения и загрузите его в свой Space с помощью s3cmd :

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

В правой части списка изображений нажмите раскрывающееся меню "Дополнительно", затем нажмите "Управление разрешениями":

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

Предупреждение. Во время этого процесса ваше изображение будет временно доступно для всех, у кого есть путь к Spaces. Если вы не хотите временно публиковать свое изображение, вы можете создать свое собственное изображение с помощью API DigitalOcean. Не забудьте установить для своего изображения статус "Личное" с помощью описанной выше процедуры после того, как ваше изображение будет успешно перенесено в Пользовательские изображения.

Получите URL-адрес Spaces для вашего изображения, наведя указатель мыши на имя изображения на панели управления и нажав «Копировать URL-адрес» в появившемся окне.

Теперь перейдите к изображениям на левой панели навигации, а затем к пользовательским изображениям.

Отсюда загрузите изображение, используя этот URL, как описано в документации по продукту Custom Images.

Затем вы можете создать каплю из этого изображения. Обратите внимание, что вам необходимо добавить SSH-ключ к дроплету при создании. Чтобы узнать, как это сделать, ознакомьтесь с разделом «Как добавить ключи SSH в капли».

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

Отладка

Если вы пытаетесь подключиться к дроплету по SSH и не можете подключиться, убедитесь, что ваш образ соответствует перечисленным требованиям и что у него установлены и правильно настроены как cloud-init, так и SSH. Если вы по-прежнему не можете получить доступ к дроплету, вы можете попытаться использовать консоль дроплета DigitalOcean и созданного ранее пользователя без полномочий root, чтобы изучить систему и отладить настройки сети, облачной инициализации и SSH. Другой способ отладки вашего образа — использовать инструмент виртуализации, такой как Virtualbox, для загрузки образа диска внутри виртуальной машины и отладки конфигурации вашей системы внутри виртуальной машины.

Заключение

В этом руководстве вы узнали, как создать образ диска системы Ubuntu 18.04 с помощью утилиты командной строки dd и загрузить его в DigitalOcean в качестве пользовательского образа, из которого можно запускать капли.

Этапы в этом руководстве могут различаться в зависимости от вашей операционной системы, существующего оборудования и конфигурации ядра, но в целом образы, созданные из популярных дистрибутивов Linux, должны работать с использованием этого метода.Внимательно следуйте инструкциям по установке и настройке cloud-init и убедитесь, что ваша система соответствует всем требованиям, перечисленным в разделе «Предварительные требования» выше.

Чтобы узнать больше о пользовательских изображениях, обратитесь к документации по продукту пользовательских изображений.

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

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