Команда dd предназначена для побайтового копирования информации из файла источника в файл приемник. Linux команда dd с одной стороны очень простая в использовании, с другой стороны она обладает настолько мощным потенциалом, что хочется одному из способов ее применения посвятить отдельную статью. Будем лечить глючную SD Flash карту.

Операционные системы для встраиваемых устройств, как правило, устанавливают на микро SD Flash карту. SD Flash карты – блочные устройства, к сожалению с ограниченным количеством циклов перезаписи. Карта и не одна с несколькими заблокированными блоками памяти попалась нам в руки, нею мы и займемся.

Операционную систему на SD Flash карту проще всего установить с помощью команды dd побайтовым копированием операционной системы из IMG файла непосредственно на Flash карту. Ниже вы можете видеть пример установки на micro SD Flash карту операционной системы ARMBIAN Ubuntu 16.04 server для микрокомпьютера Orange PI PC:

sudo dd if=Armbian_5.25_Orangepipc_Ubuntu_xenial_default_3.4.113.img of=/dev/sdb

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

На глючной флешке, глюки проявились в процессе работы команды dd. Команда dd завершилась аварийно с сообщением об ошибке input/output. Так же был предоставлен отчет о выполненной работе 33097 блоков принято, 33096 блоков записано.

Записывая по нескольку блоков после сбойного участка, мы обнаружили начало рабочей зоны:

dd if=/dev/zero of=/dev/sdb count=16 seek=332128

Сбойными оказались 32 блока по 512 байт. Далее мы продолжили запись на SD Flash карту операционной системы и она оказалась вполне работоспособной.

sudo dd if=Armbian_5.25_Orangepipc_Ubuntu_xenial_default_3.4.113.img of=/dev/sdb seek=332128 skip=332128

В процессе обновления системы, мы вычислили файл, который попал на сбойный участок SD Flash карты, пометили его как скрытый и только для чтения. После этого, записали в ту же папку нормальный файл с другой карточки. Теперь наша операционка может работать как новенькая.