Я пишу программы для своего Raspberry Pi (под управлением Raspbian) уже несколько недель и хочу убедиться, что я защищаю свою работу.
Как я могу сделать резервную копию файлов, которые я создал?
Могу ли я просто подключить SD-карту к ПК с Windows (XP или 7) и скопировать ее на жесткий диск или другую SD-карту?
git
илиhg
, таким образом, вы не только имеете копии своего кода в нескольких местах, но и имеете полную историю того, как этот код изменился.Ответы:
Если вы хотите сохранить все данные, вам, вероятно, придется создать образ диска. Более того, Windows не может распознать типичные файловые системы Linux, поэтому вы, вероятно, даже не сможете увидеть свои файлы, когда подключите SD-карту.
Создание образа диска сохранит не только файлы, но и структуру файловой системы, и когда вы решите прошить новую SD-карту, вы сможете просто подключить ее, и она будет работать.
Linux
В Linux вы можете использовать стандартный
dd
инструмент:Где
/dev/sdx
твоя SD-карта?макинтош
На Mac вы также можете использовать стандартный
dd
инструмент с немного другим синтаксисом:Где
/dev/rdiskx
твоя SD-карта?(использование rdisk предпочтительнее, поскольку его необработанное устройство - быстрее)
Чтобы узнать, какой диск ваше устройство вводит
diskutil list
в командной строке, вам также может потребоваться быть пользователем root; чтобы сделать этот типsudo -s
и введите свой пароль, когда будет предложено.Windows
Опция 1
В Windows вы можете использовать обратный процесс, который вы использовали при прошивке SD-карты.
Вы можете использовать Win32 Disk Imager , который является предпочтительным инструментом для прошивки SD-карты Foundation. Просто введите имя файла (местоположение и имя файла резервной копии, который будет сохранен), выберите устройство (SD-карту) и нажмите read:
Конечно, вы также можете использовать RawWrite ,
dd
для Windows или аналогичных инструментов, процесс довольно похож.Вариант 2
Если вы не хотите выполнять резервное копирование всей системы, а только определенных файлов, я предлагаю вам подключиться к Raspberry Pi через SFTP и скопировать файлы на локальный компьютер (вы можете использовать клиент WinScp ). Если у вас включен SSH, SFTP обычно не требует специальной настройки на стороне Raspberry Pi.
Другой вариант - скопировать файлы в удаленную систему с помощью rsync .
Вы также можете установить специальные драйверы, чтобы ваша Windows могла читать
ext
файловые системы (и, таким образом, могла читать всю SD-карту), например,ext2fsd
но это, вероятно, не стоит усилий.Поскольку изображение будет того же размера, что и ваша SD-карта, вы можете сжать его. Это может быть достигнуто просто с помощью вашего любимого инструмента сжатия, таких как
gzip
7zip, WinZip, WinRar ...источник
rsync
черезssh
наверное было бы проще. Кроме того, для исходного кода - как уже сказал Марк Бут - вы должны обязательно использовать DVCSЕсли вы работаете в Linux, вы можете использовать
dd
команду для создания полной резервной копии образа:или для сжатия:
Где
sdx
твоя SD-карта?Чтобы восстановить резервную копию, вы меняете команды:
или при сжатии:
источник
:)
)bs=1M
или другой подобный параметр. Размер блока по умолчанию 512 байт снижает производительность копирования.Помимо этих резервных копий на уровне блоков, существует два распространенных подхода к работе с источниками: непрерывное архивирование (1) или использование системы контроля версий (2).
Мы собираемся использовать командную строку (любой локальный терминал или SSH- соединение с машиной Raspberry Pi), верно?
1. Архив
2. RCS (например, Git)
источник
На Mac вы не хотите использовать
/dev/diskn
./dev/rdiskn
Вместо этого следует использовать , где n - это номер, который ОС использует для идентификации вашей SD-карты. Это уменьшает время, необходимое для копирования, на огромное количество.Поэтому для оптимального процесса резервного копирования на Mac я бы рекомендовал сделать следующее:
Запустите
diskutil list
и найдите диск, соответствующий SD-карте вашего Raspberry Pi:Ясно, что
/dev/disk1
моя 8 ГБ SD-карта, имя раздела Linux также немного подсказка.Однако вместо использования
/dev/disk1
сdd
, вы должны использовать/dev/rdisk1
, например, так:И чтобы восстановить его, просто поменяйте местами параметры
if
(входной файл) иof
(выходной файл):Или,
gzip
чтобы сэкономить значительное количество места:И, чтобы скопировать изображение обратно на SD:
Для получения дополнительной информации, смотрите эту вики- страницу.
источник
Вы можете запустить эту команду с вашего компьютера Linux с большим количеством места:
В качестве предварительного условия вам необходимо сгенерировать ключи .ssh и скопировать их
id_XXX.pub
в/root/.ssh/authorized_keys
.Возможны проблемы с файловой системой, так как это оперативное резервное копирование, но если ваш Raspberry Pi не очень занят, обычно все будет в порядке.
Скорее всего, сжатие на ПК выполняется быстрее:
источник
ssh root@raspberry dd if=/dev/mmcblk0 bs=1M | pv | gzip -c > img.gz
Если вы используете Windows:
Загрузите Win32 Disk Imager.
Создайте путь к файлу, который вы хотите использовать для сохранения вашего изображения. (Я использую C: \ RasPi_Bkp)
Запустите Win32 Disk Imager
Найдите путь к файлу резервной копии и введите имя файла.
Нажмите сохранить
Убедитесь, что устройство, показанное в раскрывающемся списке справа от пути к файлу, является тем, которое вы хотите создать резервную копию.
Нажмите «Читать»
Подождите.
источник
Если все ваши программы находятся в имени пользователя pi, на самом деле нет причин делать резервные копии всей файловой системы, как это предлагается. что я делаю, это просто резервное копирование одного идентификатора. Я запускаю команду:
из домашнего каталога pi, который создает файл pi.tgz, содержащий все содержащиеся в нем файлы и каталоги (кроме скрытых файлов). Затем я копирую этот файл на другой компьютер с Linux, но вы можете загрузить его или отправить его по электронной почте куда-нибудь для хранения ... всего, что попало на другой компьютер.
Это создает гораздо меньший файл для вашей резервной копии.
Обеспокоены всеми дополнительными пакетами, которые вы установили по пути? Создайте сценарий, который снова выполнит эти установки для вас, если вам нужно будет воссоздать вашу SD-карту, и сохранить ее где-нибудь в домашнем каталоге pi. (У меня есть каталог ~ / bin для таких вещей). У вас есть все команды, необходимые для установки, чтобы вернуть вас в положение, в котором вы хотите оказаться. Он документирует ваши изменения и позволяет быстро создать новую SD-карту. Он будет содержать команды в виде:
Начни с
так что ваша система также будет переведена на текущий уровень, прежде чем вы начнете добавлять свои пакеты.
Так как это будет в вашем файле pi.tgz, вы получите его, когда вам это нужно.
источник
Я запускаю Raspbian и использую dd и cron для автоматического резервного копирования моей SD-карты на внешний USB-накопитель.
Это действительно простое решение. Он запускается один раз в неделю в 2 часа ночи в понедельник утром и создает образ SD-карты.
Я написал сценарий, который закрывает службы, такие как lighttpd и cron, чтобы минимизировать риск записи SD-карты в середине резервной копии, затем он вызывает dd, прежде чем снова запускать службы после завершения резервного копирования.
Я разместил скрипт и некоторые инструкции в своем блоге, http://www.stuffaboutcode.com/2012/08/raspberry-pi-auto-backups.html.
источник
dd
использованиеsd?
устройства со смонтированными перегородками не выглядит достаточно безопасным.Для Debian вы можете использовать dd и tar. Это сделает полную копию вашей SD-карты и потребует внешнего (на SD-карту) хранилища, вероятно, подключенного USB или сетевого диска.
Если / dev / sdd - это местоположение вашей SD-карты и
of
имя выходного файла.источник
.tar.gz
файл из dd-файла? Разве не было бы лучше просто запуститьgzip
или непосредственноbzip2
на dd-файле?/dev/mmcblk0p1
и/dev/mmcblk0p2
перечислил ...К счастью, Raspberry Pi может создать собственную резервную копию, которая не зависит от основной ОС, используемой для доступа к Raspberry (Windows, Linux, Mac). dd, tar и rsync - это разные инструменты для создания резервных копий в Linux. Все эти типы резервных копий могут быть созданы работающим Pi при условии, что он останавливает все занятые задачи как mysql, smb, dlna, owncloud, seafile, apache и др. Перед созданием резервной копии. Существует другой вопрос, где подход объясняется более подробно, а возможное решение объясняется здесь
источник
Если ваш Raspberry Pi подключен к сети и вам требуется автоматическое резервное копирование «на лету», возможно, самый простой способ - Bittorent Sync - его очень легко установить, он работает плавно и стабильно на Pi и многих других платформах.
источник
Нет больше страшных dd, sync, tar, ..., SD-карта для начинающих
В новой версии Raspbian под названием stretch появилось приложение для начинающих, которое называется SD Card Copier. Вам не нужно использовать инструменты Linux, такие как dd и т. Д. Он может даже копировать большие карты в маленькие карты.
Как это сделать
Вы начинаете со значка меню приложения GUI RPi в самом верхнем левом углу, идете в Аксессуары, затем нажимаете SD Card Copier.
Все, что вам нужно сделать, это пару кликов внутри графического интерфейса!
После создания резервной SD-карты вы можете использовать диспетчер дисков Windows, чтобы прочитать образ карты в файл Windows и сохранить его в любом каталоге Windows. Таким образом, вам нужна только физическая SD-карта и хранить много версий изображений на ПК с Windows.
Конечно, вы можете просто использовать резервную карту в качестве рабочей копии, чтобы заменить оригинальную карту, которая теперь становится вашей основной картой, и заблокировать ее в безопасном месте.
источник
При поиске, чтобы создать образ моей настроенной SD-карты, я нашел этот пост. Лучший ответ здесь обсуждает создание образа SD-карты, но то, что я искал, требовало уменьшения файловой системы, чтобы сделать изображение как можно меньшим. Я закончил тем, что создал свой собственный инструмент для этого и обрисовал процесс по адресу: https://raspberrypi.stackexchange.com/a/37899/32585
источник
Вот 3 варианта:
В последней версии Raspbian есть инструмент, который преобразует вашу ОС и файлы в файл .img, который вы затем можете поместить на USB или ваш ПК.
Подключите SD-карту к ПК с Windows и запустите Win32 Disk Imager (установите здесь, если вы этого еще не сделали).
В (1) введите имя файла и местоположение для файла изображения. В (2) выберите букву диска вашей SD-карты. Затем нажмите 3. Это то же самое, что и вариант 1.
Подключите USB-накопитель к вашему Pi и скопируйте все важные файлы.
источник
Это приложение для Android будет считывать SD-карту в файл .img и одновременно архивировать ее: https://play.google.com/store/apps/details?id=com.redrobe.raspicardimager
источник
Я создал утилиту для резервного копирования вашего Raspberry Pi, если вы Linux. Это также уменьшит изображение вашего малинового пи, поэтому вы можете поместить .iso на меньшую SD-карту: RaspberryPiShrink
Это запустит скрипт Python, который проведет вас через весь процесс. Просто подключите карту microSD к компьютеру с Ubuntu, Linux Mint или Debain и следуйте инструкциям на терминале.
источник
Я использовал usbit для Windows. Это единственный инструмент, который я могу найти, который позволит вам переключаться с большей SD-карты на меньшую. Все, что я сделал, это отметил следующее на странице настроек; Игнорируйте проверки размера и обрезайте изображения большего размера .
Это позволило мне поменять изображения OpenELEC и Xbian с SD-карты класса 4 16 ГБ на карту класса 10 8 ГБ.
Это НАМНОГО проще, чем изменение размеров таблиц разделов и т. Д.
источник
find -type f -exec md5sum {} \; > filelist.txt
?