Linux снять образ диска: Как снять образ жесткого диска в Linux. Форензика в Linux

Содержание

Как снять образ (бекап) Linux-а и восстановить его на другом железе. Есть несколько простых способов.

05/08/2019

7.2 K

linux, бекап, виртуальная, железо, копирование, машина, образ

Всем здравствуйте! Возникла такая задача — нужно снимать образ Linux-а и восстановить его на другом железе. Есть ли быстрый и лёгкий способ?

Нажмите для увеличения изображения

Многие сразу ответят: используй dd. Но у dd есть недостаток — вы не можете развернуть образ на диск меньшего объема чем тот с которого вы делали образ.

Хотелось бы скопировать в ISO, но если это образ рабочей системы, а не live cd на основе какой-то минимальной системы. Если систему на время бэкапа можно полностью останавливать и загружаться в другую ОС для снятия консистентного бэкапа — всё что вам нужно, это DD для посекторного образа, или tar для получения архива, и скрипт для переустановки загрузчика, и опционально, правки UUID-дисков в конфигах, и изменения привязки сетевых к hwaddr(если у вас такое практикуется, то нужно делать обязательно), после разворачивания архива. Или даже rsync на целевую тачку + восстановление загрузчика. Если тачку останавливать нельзя — вам нужен LVM или ZFS/BTRFS на тачке-источнике для получения консистеногого снэпшота, с последующим снятием образа, и формированием с него тарбола, или синком с него же файлов сразу на сервак-источник. В случае с BTRFS есть возможность дампить снэпшот на одной тачке, и по ssh сразу разворачивать его на другой, используя конвейер. Что удобно, когда нет места или желания хранить промежуточный образ где-то на бэкап-сервере. Если система большая и файлов много, рекомендую не гонять всё это безобразие по сети, а гонять только разницу между текущим состоянием системы на тачке-приёмнике, и тем, что на источнике. Проще всего реализовать это с помощью всё того же rsync.

Способ номер раз — Сlonezilla

Сlonezilla — это программа для создания бэкапов и копий дисков подобная True Image® и Norton Ghost®. С её помошью можно сохранить, а потом восстановить систему. Скачать можно здесь. Сlonezilla сохраняет и восстанавливает только использованные блоки на жестком диске. Это повышает эффективность клонирования. На оборудовании высокого класса достигается скорость в 8 ГБ/минуту.

Способ номер два — tar

Для debian-based систем Linux используйте примерно следующее:

tar -cvpzf /home/backup.tar.gz —exclude={/home/backup.tar.gz,/dev/*,/proc/*,/sys/*,/run/*,/media/*,/mnt/*,/var/run/*,/tmp/*} / У вас может быть более широкий список исключений.

При развороте на другом железе:

  1. Загружаемся с любого livecd (например www.system-rescue-cd.org), разбиваете нужные разделы (обычно /, /home и /var) на диске и монтируете их в какой-нибудь /tmp/target и распаковываете архив.
  2. mount --bind /dev /tmp/target/dev
  3. mount --bind /sys /tmp/target/sys
  4. mount --bind /proc /tmp/target/proc
  5. chroot /tmp/target
  6. Редактируем /etc/fstab чтобы у вас были правильные разделы — я использую LABEL в /etc/fstab и назначаю метки при создании разделов поэтому чаще всего мне ничего редактировать не приходится.
  7. grub-install /dev/sda
  8. update-initramfs -uk all
  9. update-grub

Для redhat-based систем алгоритм слегка другой.

Способ номер три — dd_rescue

Разве что если диск где-то сыпется. И то не лучший вариант, т.к. сыпаться может и там где файлов нет. Вот если ddrescue в связке с partclone, то тогда еще можно как вариант. Если все нормально с диском, то rsync за исключением некоторых каталогов.

Способ номер четыре — apt-clone

Если кратко, то использовать apt-clone, остальное tar и перелить на новое железо.

Теги этой статьи
  • linux
  • бекап
  • виртуальная
  • железо
  • копирование
  • машина
  • образ
  • пространство
  • система

Близкие по теме статьи:

Вирус на флешке стёр, скрыл файлы и папки. Что делать? Как восстановить?

6.8 K

вирус, восстановить, обезвредить, папки, скрытые, удалить, файлы

Читать

Как записать на компьютере mp3 диск в машину?

5. 1 K

disk, dvd, mp3, rom, write, диск, записать

Читать

Как скопировать диск DVD Video в программе Nero Burning ROM.

1.8 K

burning, dvd, nero, rom, video, диск, запись

Читать

Как установить Windows XP второй операционной системой после Windows 7/Vista.

3.4 K

microsoft, vista, windows, второй, операционная, после, проблема

Читать

Как установить драйвер на звук в Windows XP, Windows Vista, Windows 7?

2.9 K

ac97, audio, driver, install, realtek, setup, драйвер

Читать

Интересное в новостях

25/12/2022 11:38

753

Сначала у их подвала было два выхода – во второй и четвертый подъезд. Но к середине марта выходы уже были завалены, и люди пробирались в укрытие и выбирались из него через узкий лаз. Старикам и детям…

Читать полностью

01/12/2022 12:00

589

Момент бомбового удара авиации российских оккупантов по драматическому театру 16 марта 2022 г. в городе Мариуполь, Украина, унёсшего жизни нескольких сотен горожан (женщин и детей).

Читать полностью

04/08/2022 12:50

971

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

Читать полностью

Как создать образ диска в Linux с несколькими разделами, не имея физического образца / Хабр

Здравствуй дорогой читатель данного руководства. Меня зовут Андрей, и нет, я не алкоголик, а разработчик встраиваемых систем на базе Linux.

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

Для чего это нужно? Все процессорные платы, разрабатываемые нашим предприятием, обладают слотом для sdcard и установленной на плате mmc. Загрузка системы производится либо с sd, либо c mmc. sd-карта является, как правило, временным решением, подкупает простотой установки. А mmc является постоянным решением, куда устанавливается уже финальное программное обеспечение. Переключение между способами загрузки осуществляется перемычками (джамперами на плате).

В случае, когда мы говорим о заказчике на этапе разработки, ему необходима самостоятельная возможность работать с устройством. Для этого ему предоставляется само устройство и ссылка для скачивания образа, с инструкцией, как установить образ на sdcard и загрузить с неё систему. Далее заказчик иницирует либо установку с sd-карты, либо запускает диагностическое программное обеспечение, но это уже конкретные детали работы с заказчиком.

В случае, когда мы говорим о производстве, и выпуске устройства, то мы знаем, что люди которые будут устанавливать на mmc конечный продукт, как правило, не умеют подключаться через терминал и работать с командной строкой u-boot или Linux, да и просто может не быть на это времени. В их задачи должны входить осуществление простого производственного цикла, например:

  1. получить устройство;

  2. подключить к стенду;

  3. установить джамперы и sd-карту;

  4. подать питание;

  5. дождаться сообщений об окончании установки ПО;

  6. выключить устройство;

  7. снять джамперы и извлечь sd-карту;

  8. подать питание;

  9. дождаться диагностических сообщений;

  10. выключить устройство и передать дальше…

Конечно, образ можно разместить, например на сервере, и накатывать через сеть, но такой вариант, все равно, требует, как минимум, наличие загрузчика на mmc.

Для того, чтобы не мучаться с каждой sd-картой для каждого варианта, можно заранее подготовить несколько образов. И тут возникает вопрос — каким образом? Подготовку можно даже автоматизировать, но это совсем другая история.

Что потребуется для понимания и осуществления происходящего:

  • ОС GNU/Linux Debian;

  • умение пользоваться командной строкой на уровне ввода команд;

  • понимать что такое переменная окружения и как ее значение использовать в командной строке.

Создаем образ:

  1. Создаём файл образа диска заданного размера:

    dd if=/dev/zero of=${FILENAME} bs=${BYTES} count=${NUMBER_OF_BYTES}
    # или
    truncate -s ${SIZE} ${FILENAME}
  2. Подключаем диск к системе, разбиваем и форматируем:

    fdisk ${FILENAME} # как делить диск и на какое количество разделов, личное дело каждого
    DEVLOOP=$(sudo losetup --show -fP ${FILENAME})
    # форматируем разделы, если образ диска включает два раздела, то:
    sudo mkfs.${FSTYPE} ${DEVLOOP}p1
    sudo mkfs.${FSTYPE} ${DEVLOOP}p2
  3. Монтируем разделы и записываем информацию:

    sudo mount ${DEVLOOP}p${N} ${MOUNTPOINT}${N}
    sudo cp -aR /rootfs/* ${MOUNTPOINT}${N}/ # что записываем и куда, каждый решает сам
    # если вам также как и мне требуется на диске u-boot, то не забываем установить:
    sudo dd if=u-boot.img of=${DEVLOOP} bs=1k seek=1
  4. Отключаем диски в обратном порядке:

    sudo umount ${MOUNTPOINT}${N}
    sudo losetup -d ${DEVLOOP}
  5. Записываем полученный образ на соотвествующее устройство, если есть необходимость, например, для проверки и тестирования:

    sudo dd if=${FILENAME} of=${BLKDEV} conv=fsync

    Передаём полученный ${FILENAME} заказчику или производству, с инструкцией, как пользоваться.

Заключение

Подготовить образ диска можно двумя способами:

  • сделав образ с реального физического носителя при помощи программы dd;

  • создав изначально целиком виртуальный образ, который может быть установлен на любой внешний носитель при помощи той же dd.

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

UPD: Руководство исправлено в соответствии с замечаниями комментаторов. Спасибо.

Как легко клонировать и восстановить образ диска Linux с помощью dd

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

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

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

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

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

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

Связано: Как форматировать накопители с помощью терминала Linux

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

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

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

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

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

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

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

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

 dd if=/dev/sdX of=/dev/sdY 

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

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

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

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

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

 dd if=/dev/sdX of=path/to/your-backup.img 

Для экономии места вы можете использовать dd для сжатия резервной копии.

 дд, если=/dev/sdX | gzip -c > path/to/your-backup.img.gz 

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

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

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

 dd if=/dev/sdY of=/dev/sdX 

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

 dd if=path/to/your-backup.img of=/dev/sdX 

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

 gunzip -c /path/to/your-backup.img.gz | dd of=/dev/sdX 

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

Параметры для рассмотрения

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

 dd if=/dev/sdX of=/dev/sdY bs=64 

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

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

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

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

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

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

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

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

Как создавать образы дисков в Linux с помощью команды DD

Когда дело доходит до очистки, резервного копирования или восстановления файлов Linux, у вас есть несколько инструментов. Хотя есть одна альтернатива, которая все еще работает, независимо от используемого вами дистрибутива Linux, и это команда DD. Создание образа раздела или клонирование всего жесткого диска — это просто действия по созданию копии всего диска или раздела, и это очень просто с помощью команды dd. Команда DD удобна, среди прочего, для клонирования дисков, резервного копирования и восстановления. В этом руководстве мы увидим, как создать образ диска с помощью команды DD. Убедитесь, что у вас установлена ​​система Ubuntu Linux.

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

Установить утилиту LSSCSI

Откройте терминал командной строки системы Ubuntu 20.04 Linux. Убедитесь, что в вашей системе установлена ​​утилита lsscsi. Если он не установлен, попробуйте установить его с помощью приведенной ниже команды «apt», за которой следует ключевое слово «install» и «lsscsi». Установка займет не более 5 минут, и все готово.

$ sudo apt install lsscsi

После установки утилиты «lsscsi» пришло время использовать ее для получения списка всех устройств хранения нашей системы Linux. Чтобы вывести список накопителей и DVD-дисков, выполните приведенную ниже команду. Вы можете видеть, что у нас есть один дисковод и одно устройство CD/DVD в нашей системе.

$ lsscsi

Проверить информацию о диске

Во-первых, мы должны узнать некоторую информацию о диске «/dev/sda». И по этой причине мы должны использовать инструкцию «fdisk» в нашей командной оболочке с привилегиями sudo, как показано ниже.

$ sudo fdisk /dev/sda

Он перейдет к своей командной теме. Введите «p», чтобы проверить информацию о дисках, как показано ниже. Вы можете видеть, что он показывает общую память диска «/dev/sda», его секторов и байтов. Он показывает тип диска как DOS. С другой стороны, последние три строки снимка показывают разделы диска /dev/sda и их дополнительную информацию.

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

Теперь у вас есть практически вся информация о диске «/dev/sda». Нажмите «q», чтобы выйти из командной темы. Теперь вы готовы создать образ диска с помощью команды DD. Итак, дайте себе понять, что команде DD всегда нужны привилегии «sudo» для выполнения. Как мы уже знаем из приведенного выше образа, «/dev/sda» имеет три раздела, и мы создадим образ одного из них. Итак, мы выбираем «sda1» для создания его клона. Вы должны выполнить приведенную ниже команду «DD», за которой следует путь «if» и путь «of». Путь «если» относится к входному диску, который предназначен для клонирования, а путь «из» — к диску выходного устройства, куда он будет скопирован как образ. Итак, из этого вы можете понять, что «sda1.img» — это клонированный файл для диска, а sda1 — это фактический диск. Мы указали количество байтов в секунду для копирования из одного места в другое. Мы присвоили ему значение 1000. Команда выглядит следующим образом:

$ sudo dd if=/dev/sda1 of=/tmp/sda.img bs=1k conv=noerror

Вывод показывает количество записей, введенных и выведенных из двух мест, например, источника и назначения. Он также показывает количество байтов со временем в секундах, скопированных в пункт назначения в МБ. Это означает, что клон был эффективно сделан.

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

$ ls –lh /tmp/sda1.img

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

Чтобы увидеть дополнительную информацию о файле образа диска, вы должны попробовать приведенную ниже команду «fdisk», за которой следует флаг «-l», как показано ниже.

$ fdisk –l /tmp/sda1.img

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

Восстановление диска из образа клона

Теперь, если вы хотите восстановить исходный диск вместе со всеми данными, которые на нем есть, вам нужно снова использовать команду DD для этого. При использовании команды DD в ней есть небольшие изменения. На этот раз вы должны провести входной и выходной пути. Это означает, что вы должны поместить путь к файлу образа на диске в путь «если», а в выходном пути «из» вы должны указать место, где вы хотите восстановить данные файла изображения. Вот команда для восстановления данных диска из файла образа:

$ sudo dd if=/tmp/sda1.img of=/dev/sda1 bs=1k conv=noerror

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