LINUX.ORG.RU

почему именно dd?

 


0

1

часто встречаю, что для записи iso-образа на флешку советуют команду

dd if=image.iso of=/dev/sdb

почему не

cat image.iso > /dev/sdb
?

почему не

cp image.iso /dev/sdb
?

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

★★★★★

Во втором случае, если нужны права рута, то придется либо через tee, либо сначала sudo -s, неудобно. А почему бы и нет, в самом деле?

Valdor ★★
()

для записи iso-образа на флешку

cat, bar и pv вполне сгодятся для этого

vxzvxz ★★★
()

последний вариант тупо не прокатит.
ты точно понимаешь разницу между образом диска и простым файлом?
второй прокатит.
а dd потому что это утилитка для работы с образами дисков, коим, в том числе, является iso

megabaks ★★★★
()

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

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

диск это диск, флешка это флешка. вещи разные. и на диск нужно только софтом прожигать, угу.

конечно megabaks товарищ умный, но сегодня я как раз при помощи cp тупо скопировал файлик в /dev/sdb, а после чего успешно загрузился с этого образа. не знаю, в каком месте оно не работает. попробуйте сами, м?

Spoofing ★★★★★
() автор топика

cp image.iso /dev/sdb

получишь копию файла содержащего образ на корне флешки, а не загрузочную флэшку.

mbivanyuk ★★★★★
()
$dd --help
$cat --help

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

ogiel
()
Ответ на: комментарий от Debasher

Извиняюсь, поинтересовался сейчас, ты прав, если без слэша просто /dev/sdb то всё работает. Но меня как научили использовать dd я так и делаю уже много лет.

mbivanyuk ★★★★★
()

dd можно задать размер порции перемещаемых данных. Экспериментально было установлено что порции 512K и 1M копируются наиболее быстро. Так же у dd есть ещё опции.

man dd

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

Не факт, при 1M замораживается периодически даже мышка на пару секунд. Не знаю, что там по умолчанию в dd, но тормоза не видны. Вообще, конечно, свинство ,в 21-м веке.

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

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

1K

64K

128K

256K

512K

Ну и сообщи какой у тебя чипсет и дистрибутив. Потому что я наблюдал выигрыш от 1M на intel чипсетах.

rezedent12 ☆☆☆
()

Потому, что у dd больше возможностей.

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

получишь копию файла содержащего образ на корне флешки, а не загрузочную флэшку.

4.2. Debian официально советует создавать загрузочные флешки именно так, что я всегда успешно и делал.

eugeno ★★★★★
()

потому что dd, она рулит и педалит, и да, посмотри историю Unix

amorpher ★★★★★
()
Последнее исправление: amorpher (всего исправлений: 1)

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

ну как ты для cp укажешь bs? А без него долго копировать...

emulek
()
Ответ на: комментарий от rezedent12

Экспериментально было установлено что порции 512K и 1M копируются наиболее быстро.

4.2

зависит от устройства (точнее от обоих).

Но по сути — да, cp не умеет вообще никак это задавать.

emulek
()

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

с тех пор только cat image.iso > /dev/sdz

cp image.iso /dev/sdb

есть нюансы

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

с тех пор только cat image.iso > /dev/sdz

А дыдой было бы быстрее значительно! Ставишь размер блока мегабайт 10 — и все в ажуре!

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

Ерунда.

Если там есть буфферизация - то вообще пофиг.

А если там нет буфферизации - тогда тем более пофиг.

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

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

с тех пор только cat image.iso > /dev/sdz

проблема в том, что cat умеет только копировать. Dd умеет копировать что угодно и куда угодно. И как угодно. Ну не сможешь ты вырезать с 12345го сектора по 12783й, и скопировать начиная с 987го, блоками по 1024 байта с помощью кошки.

emulek
()
Ответ на: комментарий от feofil

У меня есть даже подозрение, что dd будет медленнее.

а ты проверь, и удивись.

К тому же, остаются проблемы с хвостами, при каком количестве ключей они отваливаются :)

какие ещё проблемы придумают теоретики на диване?

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

Замечательно. Но мне это и не требуется. Когда мне требуется dd - я пользуюсь dd, его ключи я знаю. А запись на raw-устройство - только через cat, потому что эта команда ПОНЯТНЕЕ. А размер блока меня не интересует, чтобы его выбирать (скорее, наоборот, сбивает).

feofil
()
Ответ на: комментарий от emulek

а ты проверь, и удивись.

проверь и удивись. ждём результатов :)

ps. почти всегда у меня эти образы - сжаты. я их просто так не храню. и использую гораздо чаще даже не cat, а zcat или xzcat. жду убер-конструкции для dd :)

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

Когда мне требуется dd - я пользуюсь dd, его ключи я знаю. А запись на raw-устройство - только через cat

не понял. Так когда ты юзаешь dd?

потому что эта команда ПОНЯТНЕЕ. А размер блока меня не интересует, чтобы его выбирать (скорее, наоборот, сбивает).

твоё дело, я не против.

emulek
()

Да, эти обезьянки вычитав однажды про

cat file.txt

продолжают ломать пальцы не используя dd

dd if=file.txt 2>/dev/null

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

проверь и удивись. ждём результатов :)

я обычно tar юзаю.

cat, а zcat или xzcat. жду убер-конструкции для dd

xzcat source | dd of=target

emulek
()

почему не cp image.iso /dev/sdb

Потому что это стрельба в ногу.

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

ну, например, самый простой случай dd if=/dev/zero of=hdd.img bs=1M count=3822

а зачем тебе cat?

а где размер блока?

не нужен.

emulek
()
Ответ на: комментарий от Eddy_Em

А дыдой было бы быстрее значительно! Ставишь размер блока мегабайт 10 — и все в ажуре!

dd несколько медленнее, в интернетах проверяли. Он делает «лишние» (по сравнению с cat) memcopy.

redgremlin ★★★★★
()

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

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

один раз воспользовался, дааавным дааавно, так она хвост не захотела записывать

Это в 70е, что ли? Последние 15 лет её пользуюсь, хвост всегда писала исправно.

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

Это в mandriva 200x какой-то.... там они сами давали инструкцию с кучей ключей, но именно с этой кучей оно хвост тупо не записывало. Поскольку спорить с dd мне было скучно, я сделал cat, и с тех пор он всегда со мной. :)

ps. За всю мою жизнь у меня было ровно ДВЕ флешки. :) Одна в начале двухтысячных, и одна сейчас. Пользуюсь я ими только по БОЛЬШИМ праздникам. :)

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

feofil (01.02.2014 18:41:15) За всю мою жизнь у меня было ровно ДВЕ флешки. :) Одна в начале двухтысячных, и одна сейчас. Пользуюсь я ими только по БОЛЬШИМ праздникам.

это что-бы я случаем не забыл, кто ты таков, и что-бы тебя часом не обидеть...

emulek
()
Ответ на: комментарий от redgremlin

redgremlin ★★★★★ (01.02.2014 18:53:46) Ищи в интернетах.

а это — тебе. Твои же слова — лучшая характеристика тебе.

emulek
()

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

Потому что dd может показывать прогресс, в отиличие от cat и cp. Что полезно если образ большой, а флешка - медленная.

Deleted
()

У команд разная семантика. А это означает, что они могут быть по-разному реализованы, в т. ч. совершенно не подходящим для копирования образов способом.

  • Вот, например,
    cp image.iso /dev/sdb
    
    вполне имеет право удалить файл блочного устройства /dev/sdb, создать на его месте обычный файл (в tmpfs, ага) и скопировать туда образ.
  • cat image.iso > /dev/sdb
    
    приемлема, но очень негибкая. Допустим, о размере буфера копирования можно только догадываться.
  • Напротив,
    dd if=image.iso of=/dev/sdb
    
    имеет чётко заданную семантику: открыть if на чтение, of на запись и последовательно копировать данные блоками фиксированного (и регулируемого через bs=) размера.
intelfx ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.