LINUX.ORG.RU

dd команда


0

2

Всем доброго времени суток. Подскажите мне пожалуйста, могу ли я из апликации использовать команду dd,для записи на флэш диск? Запись идёт не на HD,а именно на флэш диск, для апликации в Linux Embedded.

Заранее спасибо.


Как минимум банальный
#include <stdlib.h>
...
system(«dd if=blabla of=blablabla»);

Не подходит?

Есть еще всяческие popen() и т. д.

unikoid ★★★ ()

апликации

Из аппликации dd надо юзать, это каждый девелопер должен кновить.

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

Как я уже сказал, точно не знаю, что происходит. Но тут видимо как-то физика флэш-памяти замешана... Сам жду, чтоб какой-нить специалист просветил на этот счет

kulti ★★ ()

А что за пиитет по отношению к dd? Ее функциональность банально реализуется сочетанием open()/read()/write()/close.

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

Насколько банально оно реализуется,это второй вопрос.Но если оно уже реализованно,то зачем изобретать колесо...?

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

Хотя бы потому, что никто не гарантирует ее наличие в твоем embed завтра.
Кстати, лично с моей точки зрения, цикл из read/write сделать проще и быстрее, чем АБСОЛЮТНО корректно вызвать dd (учитывая возможные тонкости разных параметров, местоположения в embed, отсутствия/присутствия в path, прав доступа, и проч.)

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

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

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

А что за пиитет по отношению к dd? Ее функциональность банально реализуется сочетанием open()/read()/write()/close


У dd как бы есть много других полезных опций, а не только read+write

former_anonymous ★★★ ()

Напрямую нельзя, т.к. dd работает с блочными устройствами, а не с MTD. Что бы через dd писать на флешку надо включить слой эмуляции и писать в /dev/mtdblock*

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

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

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

Путём метода научного тыка,выяснил,что dd не справляется с испорченным блоками флэшки и в итоге,операция заканчивается не корректно.Другими словами - на это не надо расчитывать.

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

В конце концов проблема решилась использованием утилит eraseall и nandwrite.Решили её 2 путями.Скомпилили Busybox с этими утилитами и отдельно.Но важно:нужна последняя версия если отедльно компилить.Плюс надо помнить,что перед записью,надо вытерерть.

День потратил.Всю сеть обыскал. Тема закрыта.

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