Резервное копирование и восстановление SD-карты Raspberry Pi
Как и в случае с любыми другими компьютерами, время от времени рекомендуется создавать резервную копию SD-карты (или microSD-карты) вашего Raspberry Pi; далее я буду называть их просто «SD-картами». Это особенно важно, когда вы впервые получаете карту с предустановленной системой от продавца или друга.
Вам понадобится второй компьютер или вторая операционная система Raspberry Pi на SD-карте. Способ создания резервной копии зависит от того, какой компьютер вы используете. Какой бы компьютер у вас ни был, вам понадобится картридер для SD- или microSD-карт.
Использование Windows
Одним из лучших инструментов для резервного копирования и восстановления SD-карт является Win32 Disk Imager. Скачайте его с SourceForge и установите. ПЕРЕД запуском программы вставьте SD-карту в картридер вашего ПК. Часто при этом откроется проводник, показывающий содержимое части вашей SD-карты, которое должно выглядеть примерно так:
Это не все содержимое вашей SD-карты – только часть содержимого карты доступна для чтения в Windows. Остальное не может быть прочитано вашим ПК.
После открытия Win32 Disk Imager используйте синюю иконку папки, чтобы выбрать расположение и имя резервной копии, которую хотите создать, а затем выберите букву диска вашей SD-карты.
Нажмите кнопку Read. После этого карта будет скопирована на ваш ПК.
Если у вас возникнет проблема с SD-картой и она станет нечитаемой по какой-либо причине (например, в результате повреждения данных), просто следуйте приведенным выше инструкциям, выбрав созданный ранее образ в качестве файла образа, и нажмите Write, чтобы записать его обратно на SD-карту. Более того, вы можете записать его на другую SD-карту такого же размера, получив точную копию.
Использование macOS
Вставьте SD-карту в картридер вашего Mac. Откройте Терминал и введите следующую команду для поиска вашей SD-карты:
diskutil list
Все ваши диски будут перечислены и будут выглядеть примерно так:
Найдите вашу 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. Но не забывайте создавать их резервные копии на случай, если что-то пойдет не так!