Я использую драйвер phram
для этой цели :он эмулирует устройство MTD с использованием физической памяти, что означает, что вы можете использовать точно такой же образ rootfs для тестирования/разработки, который вы позже собираетесь записать на настоящую флэш-память. Необходимая магия в командной строке ядра будет выглядеть примерно так
phram.phram=rootfs,0x100000,9Mi root=/dev/mtdblock0 memmap=9M\$100000
Обратите внимание, что вам также нужен аргумент memmap
, чтобы ядро не пыталось использовать эту память для себя. 9 МБ — это размер моей rootfs (или ). \ перед $ нужен в моем загрузчике, может не быть в вашем. Адрес, который я выбрал, произволен, потому что я не знаю, как распределяется физическая память на вашем устройстве, поэтому выберите тот, который имеет смысл для вас. Я предполагаю, что вы ранее использовали tftp или что-то еще для загрузки ваших rootfs по этому адресу
Самый простой способ сделать это — использовать progress
во флаге status
, он будет отображать прошедшие секунды и скорость копирования на вашем терминале.
sudo dd if=img-file of=/dev/sdc1 status=progress
dd
по умолчанию для копирования данных используются блоки размером 512 байт, что может привести к медленной передаче данных и увеличению загрузки ЦП. Вместо этого я часто предпочитаю использовать cat
или pv
, например.
pv -petrab img-file > /dev/sdc1
Если вы записываете на медленный накопитель, например на USB-накопитель, вам может понадобиться знать не только ход выполнения самой команды dd
, но также ход фактической записи на целевое устройство.
Вы можете изменить командную строку dd
, чтобы она регулярно очищала буферы, например, после записи каждого мибибайта, и в то же время отображала прогресс, например
sudo dd if=file.img bs=1M of=/dev/sdx status=progress oflag=dsync
Пожалуйста, проверьте и еще раз -убедитесь, что вы указали правильное целевое устройство. В противном случае вы можете перезаписать ценные данные. dd
делает то, что вы ему говорите, без вопросов.
Изменить :Вы можете найти несколько других методов в моем ответе, а также другие ответы по этой ссылке .