Резервное копирование и восстановление SD-карты Raspberry Pi

Резервное копирование и восстановление SD-карты Raspberry Pi

Иконка USB-накопителя

Как и в случае с любыми другими компьютерами, время от времени рекомендуется создавать резервную копию SD-карты (или microSD-карты) вашего Raspberry Pi; далее я буду называть их просто «SD-картами». Это особенно важно, когда вы впервые получаете карту с предустановленной системой от продавца или друга.

Вам понадобится второй компьютер или вторая операционная система Raspberry Pi на SD-карте. Способ создания резервной копии зависит от того, какой компьютер вы используете. Какой бы компьютер у вас ни был, вам понадобится картридер для SD- или microSD-карт.

Использование Windows

Одним из лучших инструментов для резервного копирования и восстановления SD-карт является Win32 Disk Imager. Скачайте его с SourceForge и установите. ПЕРЕД запуском программы вставьте SD-карту в картридер вашего ПК. Часто при этом откроется проводник, показывающий содержимое части вашей SD-карты, которое должно выглядеть примерно так:

Резервная копия SD-карты

Это не все содержимое вашей SD-карты – только часть содержимого карты доступна для чтения в Windows. Остальное не может быть прочитано вашим ПК.

После открытия Win32 Disk Imager используйте синюю иконку папки, чтобы выбрать расположение и имя резервной копии, которую хотите создать, а затем выберите букву диска вашей SD-карты.

Win32 Disk Imager

Нажмите кнопку Read. После этого карта будет скопирована на ваш ПК.

Если у вас возникнет проблема с SD-картой и она станет нечитаемой по какой-либо причине (например, в результате повреждения данных), просто следуйте приведенным выше инструкциям, выбрав созданный ранее образ в качестве файла образа, и нажмите Write, чтобы записать его обратно на SD-карту. Более того, вы можете записать его на другую SD-карту такого же размера, получив точную копию.

Использование macOS

Вставьте SD-карту в картридер вашего Mac. Откройте Терминал и введите следующую команду для поиска вашей SD-карты:

diskutil list

Все ваши диски будут перечислены и будут выглядеть примерно так:

Резервная копия SD-карты в macOS

Найдите вашу SD-карту, ориентируясь на диск подходящего размера и названия. В приведенном выше примере SD-карта – это /dev/disk1.

Далее в Терминале введите следующую команду, чтобы создать образ диска (.dmg) вашей SD-карты в домашнем каталоге.

sudo dd if=/dev/disk1 of=~/SDCardBackup.dmg

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

Если ваша SD-карта окажется повреждена или вам потребуется сделать копию в любое время, вы можете восстановить её, следуя тому же подходу, описанному выше, для определения вашей SD-карты. Прежде чем вы сможете записать данные на карту, вам нужно «размонтировать» её, чтобы операционная система не пыталась записывать на неё одновременно. Используйте следующую команду в Терминале:

diskutil unmountDisk /dev/disk1

Затем используйте следующую команду для записи образа обратно на SD-карту:

sudo dd if=~/SDCardBackup.dmg of=/dev/disk1

После завершения записи образа на SD-карту вы можете извлечь её из Mac, используя:

sudo diskutil eject /dev/rdisk3

Использование Linux

Перед тем как вставить SD-карту в картридер на вашем Linux-ПК, выполните следующую команду, чтобы узнать, какие устройства доступны в данный момент:

df -h

Она выведет что-то вроде этого:

Filesystem    1K-blocks    Used      Available  Use%  Mounted on
rootfs        29834204     15679020  12892692   55%   /
/dev/root     29834204     15679020  12892692   55%   /
devtmpfs      437856       0         437856     0%    /dev
tmpfs         88432        284       88148      1%    /run
tmpfs         5120         0         5120       0%    /run/lock
tmpfs         176860       0         176860     0%    /run/shm
/dev/mmcblk0p1 57288       14752     42536      26%   /boot

Вставьте SD-карту в картридер и снова используйте команду df -h, чтобы узнать, что стало доступно:

Filesystem    1K-blocks    Used      Available  Use%  Mounted on
rootfs        29834204     15679020  12892692   55%   /
/dev/root     29834204     15679020  12892692   55%   /
devtmpfs      437856       0         437856     0%    /dev
tmpfs         88432        284       88148      1%    /run
tmpfs         5120         0         5120       0%    /run/lock
tmpfs         176860       0         176860     0%    /run/shm
/dev/mmcblk0p1 57288       14752     42536      26%   /boot
/dev/sda5     57288        9920      47368      18%   /media/boot
/dev/sda6     6420000      2549088   3526652    42%   /media/41cd5baa-7a62-4706-b8e8-02c43ccee8d9

Новое устройство, которого не было в прошлый раз, – это ваша SD-карта.

В левом столбце указано имя устройства вашей SD-карты, которое будет выглядеть как „/dev/mmcblk0p1“ или „/dev/sdb1“. Последняя часть („p1“ или „1“) – это номер раздела, но вам нужно использовать всю SD-карту целиком, поэтому необходимо удалить эту часть из имени, оставив „/dev/mmcblk0“ или „/dev/sdb“ в качестве диска, с которого нужно читать.

Откройте окно терминала и используйте следующую команду для резервного копирования вашей SD-карты:

sudo dd if=/dev/sdb of=~/SDCardBackup.img

Как и на Mac, команда dd не показывает никакого прогресса, поэтому просто подождите, пока снова не появится командная строка.

Для восстановления образа выполните те же действия, чтобы определить, какое устройство является вашей SD-картой. Как и на Mac, сначала необходимо её размонтировать, но в этом случае нужно также использовать номер раздела („p1“ или „1“ после имени устройства). Если на устройстве несколько разделов, необходимо повторить команду umount для всех номеров разделов. Например, если df -h показывает, что на SD-карте два раздела, необходимо размонтировать оба:

sudo umount /dev/sdb1
sudo umount /dev/sdb2

Теперь вы можете записать исходный образ на SD-карту:

sudo dd bs=4M if=~/SDCardBackup.img of=/dev/sdb

Параметр bs=4M устанавливает «размер блока» на SD-карте равным 4 Мб. Если вы получите какие-либо предупреждения, измените это значение на 1M, но запись займет немного больше времени.

Снова подождите, пока процесс завершится. Перед извлечением SD-карты убедитесь, что ваш Linux-ПК завершил запись на неё, используя команду:

sudo sync

Предустановленные образы

Вы, конечно, можете купить предустановленные образы на SD-картах в The Pi Hut. Но не забывайте создавать их резервные копии на случай, если что-то пойдет не так!