0

dd (dataset definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD (Dataset Definition) из языка JCL[1][2].

В OS X диски монтируются автоматически, а при попытке отмонитровать, что стандартной unix-командой umount, что из UI устройство пропадает из /dev, а сделать dd на примонитрованное устройство не разрешает. Как это всё обойти — ниже.

Шаг 1: смотрим командой diskutil диски до того, как вставить usb-хранилище в порт:

diskutil list                                                                                       
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.1 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +499.0 GB   disk1
                                 Logical Volume on disk0s2
                                 5CE61117-8117-4CE4-97F1-CBA5B943E5C5
                                 Unlocked Encrypted

Шаг 2: вставляем флешку или usb-диск и снова смотрим список дисков.

diskutil list

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.1 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +499.0 GB   disk1
                                 Logical Volume on disk0s2
                                 5CE61117-8117-4CE4-97F1-CBA5B943E5C5
                                 Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *4.0 GB     disk2
   1:                 DOS_FAT_32                         4.0 GB     disk2s1

Видим, что появился /dev/disk2, 1 — размеченный слайс, теперь с этим можно работать.

Волшебная команда для отмонтирования, которая позволит не удалить устройство из /dev, отмонтируем слайс 1 диска 2:

sudo diskutil unmount /dev/disk2s1

Теперь заливаем образ обычной юниксовой командой:

sudo dd if=image.iso of=/dev/disk2 bs=1m

Clone

клонирование дисков:

dd if=/dev/diskX of=/dev/diskX bs=32m status=progress

Копирование содержимого диска в образ

dd if=/dev/sda of=/home/user/image.img

В этом примере утилита dd копирует содержимое диска /dev/sda в файл /home/user/image.img. Этот файл будет содержать полный образ диска, включая файловую систему и данные.

Создание загрузочного USB-накопителя

dd if=/path/to/iso/file.iso of=/dev/sdb bs=4M status=progress

Этот пример демонстрирует, как создать загрузочный USB-накопитель из образа диска ISO. Утилита dd записывает содержимое файла ISO на накопитель /dev/sdb, используя блочный размер 4M и отображая прогресс операции.

Запись образа на диск

dd if=/home/user/image.img of=/dev/sda

В этом примере утилита dd записывает содержимое образа /home/user/image.img на диск /dev/sda. Это может быть полезно, если вы хотите быстро восстановить диск из образа или скопировать содержимое диска на другой диск.

Удаление данных с диска

dd if=/dev/urandom of=/dev/sda bs=4M status=progress

В этом примере утилита dd записывает случайные данные с /dev/urandom на диск /dev/sda. Это может быть полезно, если вы хотите полностью удалить данные с диска перед его утилизацией или продажей.

Клонирование с помощью dd на удаленный сервер.

1. Клонировать раздел диска, используя dd через SSH

Попробуем клонировать весь раздел диска Linux с помощью dd через ssh с сервера A на сервер B.

Предположим, вы используете пользователя root.

Выполните эту команду на сервере A (источник):

# dd bs=16M if=/dev/sda | ssh root@serverB "dd bs=16M of=/dev/sda"

Если вы хотите клонировать только какой-то определенный раздел, просто выберите раздел, который вы хотите клонировать, как показано ниже, например, мы будем клонировать раздел /dev/sda3.

Запустите эту команду на сервере A (источник):

# dd bs=16M if=/dev/sda3 | ssh root@serverB "dd bs=16M of=/dev/sda3"

2. Клонировать раздел диска, используя dd через telnet со сжатием bzip

Клонирование с использованием telnet и bzip имеет преимущества, позволяющие сократить время клонирования, но убедитесь, что вы используете безопасную сеть.

Предположим, что сервер-B имеет IP-адрес 192.168.100.2.

Запустите эту команду на сервере B (пункт назначения):

# nc -l -p 19000 | bzip2 -d | dd bs=16M of=/dev/sda

Запустите эту команду на сервере A (источник):

# dd bs=16M if=/dev/sda | bzip2 -c | nc 192.168.100.2 19000

Основываясь на этих 2 командах выше, мы подключимся к серверу-B через порт 19000.

ВНИМАНИЕ! Параметр of=/dev/sda перезапишет диск sda на целевом сервере, если нужно записать в файл, укажите путь к нему of=/home/user/file1.bz2 (к примеру так)

Облачная платформа

Свежие комментарии

Подписка

Лучшие статьи

Рубрики

Популярное

Previous Story

Cтатический IP-адрес в Ubuntu Server 20.04

tcpdump
Next Story

> tcpdump

Latest from Blog

UPS. Настраиваем централизованное управление электропитанием в сети при помощи NUT

Структурно NUT состоит из трех основных частей: Важный момент! Сервер NUT никак не связывается с клиентами и не передает им никаких команд, все решения принимает клиент, который при помощи службы мониторинга получает с

Бэкап данных в автоматическом режиме с применением rsync и cron

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

Интеграция Asterisk и Битрикс24

В сети есть разные варианты интеграции IP-АТС Asterisk и CRM Битрикс24, но мы, все таки, решили написать свою. По функционалу все стандартно: Под катом расскажу как все настроить у себя и дам

Nextcloud migrate to PostgreSQL

Also getting the famous “1213 Deadlock found when trying to get lock; try restarting transaction”? A few users reported switching to PostgreSQL fixed it. While I did not believe at first… Yes…

Автоматизированные бэкапы postgresql

Всем привет! Я бы сказал что эта статья cookbok по которому можно создать простое и эффективное решение для создания бэкапов базы данных. Казалось бы довольно очевидная задача но тем не менее когда
Go toTop