LINUX.ORG.RU

Знаете ли вы команду dd?

 


0

0

Команда dd практически ровесник ОС Unix, однако ее синтаксис кардинально отличается от синтаксиса большинства остальных команд этой ОС. В статье Алексея Дмитриева "dd: Команда, которая не похожа на другие" даны практические рекомендации по использованию команды dd.

>>> Подробности

★★★

Проверено: maxcom ()
Ответ на: комментарий от one_more_hokum

> http://rus-linux.net/ -- так верстают только му@@ки! Кошмар какой-то!

Артемий Татьянович, перелогиньтесь.

anonymous
()
Ответ на: комментарий от I3rain

>Сиськи не обнаружены, смотреть не на что ;(.

Андрей, разлогинься!

Любителям копировать диски с помощью dd: а чем вам не нравится просто сделать образ?

wyldrodney
()

dd Наше Все... Статья понравилась, автору Спасибо.

srgaz
()
Ответ на: комментарий от wyldrodney

> Любителям копировать диски с помощью dd: а чем вам не нравится просто сделать образ?

А чем делать образ и в чем разница?

skwish ★★
()

Статья хорошая, но заголовок такой, словно написан копирастами-шпионами.

GFORGX ★★★
()
Ответ на: комментарий от Praporshik

> А еще ею хорошо симулировать работу правительства: dd if=/dev/zero of=/dev/null

Вот у них как раз таки random, а не zero.

anonymous
()
Ответ на: комментарий от Dubrovsky

>это не будет работать во многих случаях, формально точно также можно сделать cat /dev/cdrom >image.iso, никакой разницы. Я не знаю почему, но в таком случае размер образа получится больше чем у оригинала, поэтому я прежде чем делать дамп монтирую диск и смотрю размер в df и указываю его: count=N, если кто знает как сделать проще буду благодарен.

Ибо диск можно писать в режиме tao или dao/sao + плс есть опция pad

В случае записи в режиме sao и последнем случае хвост будет подбит нулями и таким образом размеры сойдутся. В в режиме записи треков размер образа на диске указывается примерно.

AVL2 ★★★★★
()
Ответ на: комментарий от sabbakka

>Хотя делать резервное копирование разделов диска можно и в dd и в Акронис. Только ведь Акронис, его покупать нужно (вариант использования пиратского софта я не рассматриваю, бо сам не юзаю и другим не советую), уж лучше по старинке dd if= of= bs=. Дешево и сердито.

Вот кстати об Акронисе. Хочу сделать имидж своего винта, раздела home. Пол-терабайта, занято около 30%. Хочу снять с винта только значимые данные, а "пустое" пространство заполнить нулями, чтобы потом єтот имидж зажать архиватором. В Акронисе, кажется, такая шняга есть. Как сделать то же самое силами dd или чего-то аналогичного? (никак не наезд на dd, охренительная команда)

Как вариант, приходило в голову сделать так скриптиком: создаем пустой имидж, размером с раздел, потом копируем туда файлы стандартным cp. имидж архивируем. Получится ли потом путем dd if=image.img of=/dev/sda3 восстановить раздел?

Ingwar ★★★★★
()

Не нашел как ей грабить корованы.

anonymous
()

Чувствуется, народ не особо пользуется этой утлитой. А то бы знали, что указание bs=4096M или даже больше сильно укоряет выполнение операции.

Кстати, в наше время в дос была утилита diskdupe. Она как раз делала тоже самое.

AVL2 ★★★★★
()
Ответ на: комментарий от Ingwar

> Как вариант, приходило в голову сделать так скриптиком: создаем пустой имидж, размером с раздел, потом копируем туда файлы стандартным cp. имидж архивируем. Получится ли потом путем dd if=image.img of=/dev/sda3 восстановить раздел?

Получится, но к чему выпендрёж? tar/cpio + gzip/bzip2 чем не угодили?

const86 ★★★★★
()
Ответ на: комментарий от const86

> Получится, но к чему выпендрёж? tar/cpio + gzip/bzip2 чем не угодили?

К архиваторам star добавьте.

skwish ★★
()

Отличная статья. Спасибо.

anonymous
()

>Пример 5. Создание образа оптического диска:

>dd if=/dev/cdrom of=image.iso bs=2k

>При желании, с помощью полученного образа image.iso можно будет "прожечь" полноценный загрузочный диск (если, конечно, оригинал был загрузочным). Если копировать командой ср, то загрузочного диска не получишь.

ойли?

JLarky
()
Ответ на: комментарий от Ingwar

>Как вариант, приходило в голову сделать так скриптиком: создаем пустой имидж, размером с раздел, потом копируем туда файлы стандартным cp. имидж архивируем. Получится ли потом путем dd if=image.img of=/dev/sda3 восстановить раздел?

а не проще в данном случае использовать tar + mkfs

alt0v14 ★★★
()

надеюсь статья принесет пользы новичкам)неужто след. ждать статьи по vi?

AliSFeN
()
Ответ на: комментарий от szh

Кому надо, тот про dd и так знал! Давайте теперь сюда еще все маны с опеннета поместим в новости

anonymous
()
Ответ на: комментарий от SilentLexx

>dd if=/dev/zero of=/dev/hda >dd if=/dev/zero of=/dev/sda

omg, hivemind!1

DOKA
()
Ответ на: комментарий от Dubrovsky

> я прежде чем делать дамп монтирую диск и смотрю размер в df и указываю его: count=N, если кто знает как сделать проще буду благодарен.

man readcd

anonymous
()

Внесу и я свою лепту:

sudo sh -c 'nohup dd if=/dev/random of=/dev/mem > /dev/null 2>&1 &'

Deleted
()
Ответ на: комментарий от const86

> Получится, но к чему выпендрёж? tar/cpio + gzip/bzip2 чем не угодили?

Рецепт клонирования 20 винтов с оффтопиком в студию!
Средствами архиваторов не перенесешь загрузчик и прочую дребедень из первых секторов, а с помощью dd устанешь копировать весь образ 80Гб винта, если занято только 5. Причем система фрагментирована по всему диску. Нужно что-нибудь более высокоуровневое...

slacker
()

>Пример 6. Ускорениe работы некоторых Live CD.

>На "слабых" машинах современные Live CD работают медленно, иногда очень медленно. Если на жестком диске выделить раздел, скажем hda7 размером в 900Мб (для CD) и скопировать в этот раздел весь CD целиком, то во многих случаях, при загрузки с CD загрузчик примет наш раздел жесткого диска за сам CD и начнет загрузку с него. В этом случае скорость работы сильно повышается, ведь работа с жесткого диска намного быстрее, чем с любого CD привода.

># dd if=/dev/cdrom of=/dev/hda bs=2k

Пыщ-пыщ :D

Minoru ★★★
()
Ответ на: комментарий от slacker

>Рецепт клонирования 20 винтов с оффтопиком в студию! Средствами архиваторов не перенесешь загрузчик и прочую дребедень из первых секторов, а с помощью dd устанешь копировать весь образ 80Гб винта, если занято только 5. Причем система фрагментирована по всему диску. Нужно что-нибудь более высокоуровневое

вы, молодой человек, не в теме, товарищ ingwar решает проблему резервирования данных а не кланирования. И уберите свой заносчивый тон, вам никто ничего не обязан "в студию".

alt0v14 ★★★
()
Ответ на: комментарий от slacker

> Рецепт клонирования 20 винтов с оффтопиком в студию!

Вот над этим не задумывался.

> Средствами архиваторов не перенесешь загрузчик и прочую дребедень из первых секторов,

А и не надо. Система 'упала' для меня равносильно замене железа. В таком случае производится установка. Если нужно быстро и масштабно - конфиг типовой установки и сеть.

Бекапить на самом деле нужно самое ценное - у *nix'оидов это полезные данные, а не система.

skwish ★★
()

Да, знаем!

Статья хорошая тока про то что размер блока можно указать побольше сказать стоило....

Slackware_user ★★★★★
()

А где тег история_успеха?

anonymous
()

Как узнать тип четвертого раздела на диске /dev/sda с таблицей разделов DOS, *без* fdisk?

Легко! printf "%.2X\n" "'`dd if=/dev/sda bs=1 count=1 skip=$((0x1BE + (4 - 1) * 0x10 + 0x4))`"

SPB_NICK
()
Ответ на: комментарий от skwish

>> Рецепт клонирования 20 винтов с оффтопиком в студию!
>Вот над этим не задумывался.
А призрак Нортона задумался и решил задачу. ;)

>Если нужно быстро и масштабно - конфиг типовой установки и сеть.
Если сравнивать по скорости установку с нуля и полное копирование средствами dd, то да, разницы не видно. Не флейма ради, но dd не пригоден для "умного" создания образа. А в целом утилита полезная и нужная. :)

>Бекапить на самом деле нужно самое ценное - у *nix'оидов это полезные данные, а не система.
У десктопных линуксоидов это /home, у серверных - /etc. =)

slacker
()

реквестирую мануал по netcat :)

anonymous
()
Ответ на: комментарий от slacker

>у серверных - /etc. =)

а как же /var?

anonymous
()

А как сжать получившийся образ?

Thrawn
()

> Поскольку мы не задали в командной строке размер блока, то программа использовала размер блока по умолчанию, равный 512 байт

> Например, запись bs=512 означает, что нами установлен размер блока (буфера) в 512 байт. Кстати это значение и используется по умолчанию.

> Если величина блока не указана, dd использует блоки по 512 байт, что подходит для абсолютного большинства задач.

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

Автор туп как Цой.

anonymous
()
Ответ на: комментарий от Dubrovsky

>это не будет работать во многих случаях, формально точно также можно сделать cat /dev/cdrom >image.iso, никакой разницы. Я не знаю почему, но в таком случае размер образа получится больше чем у оригинала, поэтому я прежде чем делать дамп монтирую диск и смотрю размер в df и указываю его: count=N, если кто знает как сделать проще буду благодарен.

И в каких таких многих случаях это не будет работать? Сколько раз делал - всегда было нормально. Грубо говоря, скачал образ, проверил md5sum, записал, dd if=/dev/sr0 of=image.iso && ma5sum image.iso - всё нормально.

aix27249
()
Ответ на: комментарий от anonymous

> Кому надо, тот про dd и так знал! Давайте теперь сюда еще все маны с опеннета поместим в новости

Кому надо, тот квантовую физику знает. Зачем нам коллайдер?

anonymous
()

Знаю!

А можно потом результаты опроса где-нить посмотреть?

valich ★★★
()
Ответ на: комментарий от Praporshik

>А еще ею хорошо симулировать работу правительства: dd if=/dev/zero of=/dev/null

скопировано 9145526272 байта (9.1 GB), 15.2409 c, 600 MB/c отличный способ занять процессор

anonymous
()

Где "история успеха"?!

anonymous
()

А я знаю как будет называться следующая статья!

Всё что вы хотели знать об ls но стеснялись спросить.

Sherak ★☆
()
Ответ на: комментарий от anonymous

>readcd из пакета cdrecord

Тоже не фонтан.

На самом деле я так и не нашел утилиты, которая умеет копировать диски просто и надежно.

Если диск фирмовый, то есть наштампованный в режиме sao и с одной сессией, то readcd работает одинаково с dd.

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

AVL2 ★★★★★
()
Ответ на: комментарий от anonymous

> указание bs=4096M или даже больше сильно укоряет выполнение операции.

Много - не мало. ;)

Я делал системку для автоматического восстановления венды в учебном классе. Ставил и 8 мегов. Проблем никаких.Если размер не кратный количеству секторов, то в конце пишет, что последний блок не дописан. И все. Но проблем.

Зато чем больше буфер, тем быстрее пишет. 20 гигов без опции bs писалось больше часа, с 4 мегами - 20 минут. ДА и по индикатору винта видно. ТАк он стрекочет и моргает, а так горит и вообще не гаснет.

AVL2 ★★★★★
()

> Интересно, что с русскими буквами конвертация не осуществляется, видимо что-то нужно изменить в переменной окружения LC_CTYPE.

ага, заменить юникод на однобайтную кодировку

anonymous
()
Ответ на: комментарий от slacker

>Рецепт клонирования 20 винтов с оффтопиком в студию! Средствами архиваторов не перенесешь загрузчик и прочую дребедень из первых секторов, а с помощью dd устанешь копировать весь образ 80Гб винта, если занято только 5. Причем система фрагментирована по всему диску. Нужно что-нибудь более высокоуровневое...

Проще простого. Таблицу разделов и загрузчик записывать средствами dd. А сам раздел с вендой средствами partimage - http://www.partimage.org/Main_Page

Оно умеет бэкапить только данные, сжимать образ, верифицировать. И работать через сеть. Правда у нас нужно было восстанавливать сразу пару десятков машин и 100 мбит сетка сильно проседала, так что проще было подрубить усб диск с образом и запустить восстановление с ливсд. А еще быстрее было поставить в соседний раздел линукс в минимальной комплектации и записать образ прямо туда. Тогда быстренько пробежал, загрузил в линукс и выбрал восстановление и через 10-20 минут все готово. Весь класс, как муха не сидела, ломайте, господа ученики.

Для восстановления линукса интереснее простой tar. Тогда можно менять рамер раздела или использовать другу fs.

AVL2 ★★★★★
()
Ответ на: комментарий от alt0v14

>вы, молодой человек, не в теме, товарищ ingwar решает проблему резервирования данных а не кланирования. И уберите свой заносчивый тон, вам никто ничего не обязан "в студию".

нет. я немного неправильно указал проблему, речь идет именно о клонировании. для резервирования есть куча прекрасных способов, в том числе и rsync, и tar и даже тупой cp на сетевой диск.

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

Пока, как это не смешно, самым приемлемым способом вижу предложеный tar + mkfs + dd для копирования загрузочных данных, если таковые имеются. Надо подумать на досуге. Имиджем это, конечно, не будет, зато все что нужно останется. Пожалуй так.

Ingwar ★★★★★
()
Ответ на: комментарий от slacker

>> Если нужно быстро и масштабно - конфиг типовой установки и сеть.

> Если сравнивать по скорости установку с нуля и полное копирование средствами dd, то да, разницы не видно. Не флейма ради, но dd не пригоден для "умного" создания образа. А в целом утилита полезная и нужная. :)

На разных машинах не заработает.

skwish ★★
()
Ответ на: комментарий от AVL2

Похоже старик AVL2 на ЛОРЕ самый толковый парень. Все что не отвечает по делу и без пизды. Предлагаю сделать его самым главным модератором сайта.

anonymous
()
Ответ на: комментарий от Ingwar

> нет. я немного неправильно указал проблему, речь идет именно о клонировании. для резервирования есть куча прекрасных способов, в том числе и rsync, и tar и даже тупой cp на сетевой диск.

А нафиг? С этим клонированием не забудь вовремя сделать lvm snapshot, чтобы не получит фс в несогласованном состоянии.

skwish ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.