Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: нужна помощь с синтаксисом утилиты dd  (Прочитано 806 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
привет народ, сидел я дома в 2 системы, Windows и Kubuntu. кончилась подписка на геймпас и Windows стала не нужна, ну и так уж исторически ложилось что Windows стояла на nvme, а Kubuntu на саташном диске(тоже ssd, того же объема).
в общем вчера я винду забэкапил акронисом(ну так, на всякий) и освободил nvme накопитель, ща думаю через загрузочную флешку утилитой по управлению дисками(KDEшной) перекину вначале таблицу разделов, а потом и разделы и вроде как все нормально перекинулось, но видимо загрузочную область не создало т.к. биос диск как загрузочный не определил.
ну и тут я вспомнил о команде dd, знаю я о ней мало, узнал первый раз когда читал мануал по orange pi, там через нее можно систему накатывать. в общем даже мануал нашел на арчвики. но есть вопросы:
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress  1. параметр bs, в мануале по dd есть ссылка на статью где чел тестит разные размеры блоков и по его тестам выходит что 128К самый по сути оптимальный, и вопт вопрос - это будет константой, или от диска к диску может быть разный выхлоп?
  2. в мануале по апельсинке dd нужно применять на "живую", то есть на загруженной системе - это правильное применение? может вопрос и глупый, но в мануале по dd я не нашел на это ответа и не пользовался не разу.
  3. у кого был опыт клонирования диска, как все после этого работает, есть смысл заморачиваться, или лучше поставить все с нуля(не хотелось бы конечно)?
  4. на сколько обязательны параметры conv=noerror и sync, если я например не хочу продолжать при наличии ошибок, то логично не использовать данную конструкцию и смотреть лог?
ну собственно ссылка на ман на который я ссылаюсь и статью по размерам блоков:
https://wiki.archlinux.org/title/Dd_(Русский)
http://blog.tdg5.com/tuning-dd-block-size/
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Онлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7983
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #1 : 28 Января 2025, 06:44:46 »
...видимо загрузочную область не создало т.к. биос диск как загрузочный не определил.
БИОС? Где-ж ты его откопал? Во времена БИОС-ов не сущестивовало слова nvme...

Не совсем по твоему вопросу. Если кратко, не нужны никакие dd.
Смотри здесь или здесь. Хоть с "картинками", хоть с "формулами".

Да и по dd, на форуме найдёшь все ответы.
« Последнее редактирование: 28 Января 2025, 06:49:58 от andytux »

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #2 : 28 Января 2025, 07:08:21 »
andytux,
БИОС?
да ладно тебе, не придирайся уж к словам, uefi пусть будет, но в сердечке аббревиатура биос - навсегда)
за статью спасибо, ща почитаю!
но dd по любому нужна, на апельсине надо переставить систему и закатить уже готовую, а это только через dd к сожалению, так что без вариантов вопрос надо изучить - оно вторым этапом пойдет
« Последнее редактирование: 28 Января 2025, 07:10:41 от i Vtec »
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Оффлайн Morisson

  • СуперМодератор
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 384
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #3 : 28 Января 2025, 07:13:28 »
conv=noerror это чтобы не переносить ошибки файловой системы. sync, чтобы синхронизировать, чтобы данные из кэша дозаписались на носитель.

Пользователь добавил сообщение 28 Января 2025, 07:15:13:
bs- blocksize, чем больше, тем быстрее запиштся, чем меньше, тем надежней.Я флешки пишу с bs=8M.
dd if=/dev/sda of=/dev/sdb bs=8M conv=noerror status=progress && syncТак
« Последнее редактирование: 28 Января 2025, 07:16:56 от Morisson »

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #4 : 28 Января 2025, 07:29:52 »
чтобы не переносить ошибки файловой системы
вот теперь понятнее стало за этот параметр, благодарю!
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Оффлайн Morisson

  • СуперМодератор
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 384
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #5 : 28 Января 2025, 07:46:12 »
Даже не так.
Цитировать
Клонирование всего диска

Копирование физического диска /dev/sda в диск /dev/sdb:

# dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress

Эта команда скопирует диск целиком, в том числе таблицу разделов, загрузчик, разделы, UUID и данные.

    bs= устанавливает размер блока. По умолчанию 512 байт, что является «классическим» размером блока для жёстких дисков с начала 1980-х годов, но не самым удобным. Используйте большее значение, 64K или 128K. Также прочитайте предупреждение ниже, потому что это не просто «размер блока» — это также влияет на обработку ошибок чтения. Смотрите [1] и [2] для получения подробной информации и определения наилучшего значения bs для вашего случая.
    noerror указывает dd продолжить работу, игнорируя все ошибки чтения. По умолчанию dd прекращает работу при любой ошибке.
    sync заполняет входные блоки нулями, если были ошибки чтения, чтобы смещения данных оставались правильными.
    status=progress показывает статистику передачи данных, которая позволяет оценить время завершения.

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

Утилита dd технически имеет «размер входного блока» (IBS) и «размер выходного блока» (OBS). Когда вы устанавливаете bs, вы фактически устанавливаете и IBS, и OBS. Обычно, если размер блока, скажем, 1 МиБ, dd считывает 1024×1024 байт и записывает столько же байт. Но если произойдет ошибка чтения, всё пойдет не так. Многие думают, что dd «заполнит ошибки чтения нулями», если вы используете опции noerror,sync, но это не так. dd, согласно документации, дополнит размер OBS до размера IBS после завершения чтения, что означает добавление нулей в конце блока. То есть, весь 1 МиБ будет испорчен из-за одной ошибки чтения в 512 байт в начале чтения: 12ERROR89 станет 128900000 вместо 120000089.

Если вы уверены, что ваш диск не содержит ошибок, вы можете использовать больший размер блока, что увеличит скорость копирования в несколько раз. Например, изменение bs с 512 до 64K изменило скорость копирования с 35 МБ/с до 120 МБ/с на простой системе Celeron 2,7 ГГц. Но имейте в виду, что ошибки чтения на исходном диске будут в конечном итоге выглядеть как ошибки блоков на целевом диске, то есть одна ошибка чтения 512 байт испортит весь выходной блок размером 64 КиБ.

Онлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7983
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #6 : 28 Января 2025, 08:00:23 »
Дело не в конкретной аббревиатуре.
Раз уж речь о nvme, то и не всякий УЕФИ умеет грузиться с nvme, не во всяком есть разъем, для его подключения.
Если переходить к dd.
Начинать с "if=/dev/sda". В данной конкретной сессии, точно убедиться, что sda - именно тот диск, который должен быть источником. Канонические имена устройств могут меняться каждую загрузку.
Так же, по одной из ссылок, что я привёл выше, единственный диск сразу получал имя sde.
Nvme получит имя никак не /dev/sd*, а /dev/nvme*.
"status=progress" есть далеко не во всех версиях dd.

Цитировать
1. параметр bs...- это будет константой, или от диска к диску может быть разный выхлоп?
Зависит от данного конкретного устройства.

Второй вопрос вообще непонятен.

Цитировать
3. у кого был опыт клонирования диска, как все после этого работает...
На форуме немало примеров. Видел только мучения тех, кто пытался пользоваться. Поэтому себя не мучал.
Начать с размеров. Приемник должен быть больше источника.
Если на источнике есть ошибки, всё это получишь на приемнике.
Получишь одинаковые УУИД-ы, значит подлючать нужно либо один диск, либо другой. При подключении обоих, результат непредсказуем.
« Последнее редактирование: 28 Января 2025, 08:05:24 от andytux »

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #7 : 28 Января 2025, 08:21:58 »
Получишь одинаковые УУИД-ы
но я же могу потом рандомизировать уиды и получить на целевом уникальный уид с nvme маской?

второй вопрос про использование утилиты. перефразирую: можно ли использовать(на сколько я понял можно, но штатно ли отработает?) dd на исходной системе копирования? то есть я загружаюсь не с загрузочной флешки, а прям в систему которую собрался скопировать и копирую ее на другой носитель.
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Оффлайн Morisson

  • СуперМодератор
  • Заслуженный пользователь
  • Активист
  • *
  • Сообщений: 384
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #8 : 28 Января 2025, 08:31:08 »
Цитировать
Работать будет. Но dd копирует байт в байт и не весь диск сразу, так что если в тот момент на него будет идти запись, то образ битый получится.

Пользователь добавил сообщение 28 Января 2025, 08:33:40:
Я так пеезжал
https://archlinux.org.ru/forum/topic/14140/
Только потом нужно будет сменить UUID в fstab и восстановить загрузчик.
Так скопируются только данные без ошибок файловой системы. Если делать постоянные бэкапы, то лучше rsync. Он будет записывать только изменения.
« Последнее редактирование: 28 Января 2025, 08:33:40 от Morisson »

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #9 : 28 Января 2025, 08:35:24 »
Morisson, понял, ну это в принципе решаемо.

будем пробовать!
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Онлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7983
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #10 : 28 Января 2025, 09:41:50 »
но я же могу потом рандомизировать уиды и получить на целевом уникальный уид с nvme маской?
Обычно, за dd хватаются те, кто не умеет исправлять УУИД-ы. Придётся исправлять УУИД-ы в конфигах, зачем тогда вообще заморачиваться с dd.

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #11 : 28 Января 2025, 11:49:54 »
andytux, да потому что кроме dd вариантов нет вот и пытаюсь разобраться как утилита работает. мне на 2х машинах нужно проделать и если на ПСшнике еще туда-сюда и есть варианты(хотя тестить на нем определенно удобнее), то вот на одноплатнике нет ни bios, ни uefi, ни загрузчика grub. там либо идти в магазин и покупать usb-usb(потому что не помню куда дел старый), либо *.img разворачивать на sd карту, загружаться в эту sdшку и клонировать на emmc.
при чем это не я такое придумал, а прям в факе по железке все это прописано
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Оффлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3325
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #12 : 28 Января 2025, 11:58:17 »
И dd хорошо и clonezilla хорошо.
А вот тебе ещё инструмент по переносу систем на другой носитель:
https://rescuezilla.com
Лично сам ей пробовал, удобная штуковина, проще в обращении чем clonezilla хотя основывается именно на ней.
Ну естественно конечный диск должен быть не менее исходного как и во всех программах кроме проприетарных.
А чего это вы тут делаете, а?

Оффлайн i Vtec

  • Автор темы
  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #13 : 28 Января 2025, 13:09:24 »
Usermaster, о, нифига себе. полноценный графический интерфейс аля акронис - вот это мы одобряем однозначно! прямо "press f to win"
msi tomahawk b550\5600\32RAM\RX6700xt\KDE
orangePI 5pro\RK3588S\8gb LPDDR5\eMMC 256gb\CIL

Онлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7983
    • Просмотр профиля
Re: нужна помощь с синтаксисом утилиты dd
« Ответ #14 : 28 Января 2025, 13:57:33 »
либо *.img разворачивать на sd карту, загружаться в эту sdшку и клонировать на emmc.
Похоже, отсюда твой второй вопрос. Клонировать не sd-карту, а образ *.img.

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.