Как контролировать выполнение команды dd в Linux?

Я использую драйвер phramдля этой цели :он эмулирует устройство MTD с использованием физической памяти, что означает, что вы можете использовать точно такой же образ rootfs для тестирования/разработки, который вы позже собираетесь записать на настоящую флэш-память. Необходимая магия в командной строке ядра будет выглядеть примерно так

phram.phram=rootfs,0x100000,9Mi root=/dev/mtdblock0 memmap=9M\$100000

Обратите внимание, что вам также нужен аргумент memmap, чтобы ядро ​​не пыталось использовать эту память для себя. 9 МБ — это размер моей rootfs (или ). \ перед $ нужен в моем загрузчике, может не быть в вашем. Адрес, который я выбрал, произволен, потому что я не знаю, как распределяется физическая память на вашем устройстве, поэтому выберите тот, который имеет смысл для вас. Я предполагаю, что вы ранее использовали tftp или что-то еще для загрузки ваших rootfs по этому адресу

0
29.08.2020, 15:10
3 ответа

Самый простой способ сделать это — использовать progressво флаге status, он будет отображать прошедшие секунды и скорость копирования на вашем терминале.

sudo dd if=img-file of=/dev/sdc1 status=progress

2
18.03.2021, 23:09

dd по умолчанию для копирования данных используются блоки размером 512 байт, что может привести к медленной передаче данных и увеличению загрузки ЦП. Вместо этого я часто предпочитаю использовать catили pv, например.

pv -petrab img-file > /dev/sdc1
1
18.03.2021, 23:09

Если вы записываете на медленный накопитель, например на USB-накопитель, вам может понадобиться знать не только ход выполнения самой команды dd, но также ход фактической записи на целевое устройство.

Вы можете изменить командную строку dd, чтобы она регулярно очищала буферы, например, после записи каждого мибибайта, и в то же время отображала прогресс, например

  sudo dd if=file.img bs=1M of=/dev/sdx status=progress oflag=dsync

Пожалуйста, проверьте и еще раз -убедитесь, что вы указали правильное целевое устройство. В противном случае вы можете перезаписать ценные данные. ddделает то, что вы ему говорите, без вопросов.


Изменить :Вы можете найти несколько других методов в моем ответе, а также другие ответы по этой ссылке .

3
18.03.2021, 23:09

Теги

Похожие вопросы