Запись dd на флэш-накопитель USB вызывает массивные чтения

В настоящее время я восстанавливаю USB-накопитель с dd-изображением, которое я создал ранее. Однако наблюдается очень низкая скорость записи около ~ 7 Мбайт / с, хотя палка обычно намного быстрее.

Осмотрев немного, я заметил, что с USB-накопителя считывается большое количество данных, что объясняет низкую производительность записи. В то время ничего не было, кроме dd.

  • Почему «dd conv = разреженный» не сэкономил место, как я ожидал?
  • Почему мой / dev / random настолько медленный при использовании dd?
  • Как восстановить данные с моего диска - я случайно скопировал с dd iso на нем
  • Почему моя резервная копия dd MacBook OS X не загружается при восстановлении?
  • Используя dd для копирования раздела в другой раздел, при использовании физического диска
  • Клонирование только пространства, используемого с жесткого диска
  • Отредактированная строка:

     sdd: busy 101% | read 18020 | write 613 | MBr/s 7.04 | MBw/s 7.1 

    Я заметил подобное поведение при записи непосредственно в массив md с помощью dd. Однако при записи в смонтированную файловую систему с dd этого не происходит.

    Поэтому мой вопрос заключается в том, почему читается с USB-накопителя при прямом написании блочного устройства и может ли это предотвратить повышение производительности записи?

  • Поверните несколько изображений PNG в анимацию 1280x720, закодированную в H264, для загрузки YouTube HD
  • Как добавить Windows 7 в grub2
  • Как я могу установить python-dev без sudo?
  • Приложение для отслеживания времени на Linux
  • Ошибки возникали при обработке плавкого предохранителя
  • Альтернатива использованию usbcopy для создания USB-накопителя Solaris Text Installer
  • 2 Solutions collect form web for “Запись dd на флэш-накопитель USB вызывает массивные чтения”

    Таким образом, на 100% не понятно, что может произойти, но мое подозрение заключается в том, что вы пишете небольшие блоки (512 байт) на USB-устройстве, а затем dd-проверки, чтобы убедиться, что байт написан правильно – это приводит к LOTS чтения и Писать, читать и писать.

    Настройка размера вашего блока на «правильный» размер не является тривиальной, но есть несколько указаний на то, как это сделать. В общем, я обнаружил, что размер блока размером 64 КБ является хорошим компромиссом на большинстве фронтов, но ваши файловые системы могут вносить изменения в это, если вы используете что-либо экзотическое (например, zfs ).

    Попробуйте что-то вроде этого: lbzcat image-dd.bz2 | dd of=/deb/sdX bs=64k lbzcat image-dd.bz2 | dd of=/deb/sdX bs=64k

    Для более продолжительной дискуссии ознакомьтесь с этой записью .

    Для меня dd использует кеш страницы по умолчанию. Я думаю, что это нормально для систем с кешем страницы. Кэш страницы требует, чтобы запоминающее устройство считывалось, что может вызвать медленную скорость записи.

    Для меня есть 3 способа обойти это и получить полную скорость:

    1. Установите размер блока dd на 4096 или несколько. (Не читается)
    2. Установите размер блока dd на достаточно большое число. Для меня это было около 1 миллиона и выше. Я получил полную скорость около 1 миллиона. (Очень мало читает)
    3. Не используйте кеш страниц, oflags=direct параметр dd oflags=direct . Установите размер блока dd на достаточно большой кратный 512. Для меня это было около bs=120k и выше. (Не читается)

    Что-то примечание, размер моего системного блока для всех устройств хранения и размер страницы составляет 4096 байт. Найдено с:

     blockdev --getbsz /dev/sd? getconf PAGESIZE 

    Также размер сектора составляет 512 байт. fdisk и, возможно, parted могут рассказать вам размер сектора.

    Давайте будем гением компьютера.