Понедельник, 25.11.2024
Завод горного оборудования
Меню сайта
Google_Translate
Категории раздела
Мои статьи [125]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Рейтинг@Mail.ru

Яндекс.Метрика
Главная » Статьи » Мои статьи

Как на самом Raspberry Pi скопировать SD карту с Raspbian или WebHomePi

Установка операционной системы на SD карту — не самая лучшая идея. Некоторые утилиты системы постоянно перезапускаются, информация постоянно перезаписывается. Хотя количество циклов записи ячеек SD карты очень большое, но оно все-таки ограничено. Если вы используете некачественную SD карту неизвестного производителя, то ресурс некоторых ячеек может быстро иссякнуть и система даст сбой. Современная технология "wear leveling" (выравнивание износа) позволяет более равномерно производить запись по всем адресам, но и это не снимает проблему.  Исходя из этого всегда желательно иметь копию системы на другой SD карте.

Многие дистрибутивы Linux имеют утилиту по созданию образа дисков. Например, в Linux Mint можно создать образ SD карты и затем восстановить его на другую SD карту, получив тем самым резервную копию. Как это сделать, подробно описано в [2].
В последних версиях Raspbian разработчики добавили утилиту SD Card Copier. Она позволяет создать копию SD карты на самом Raspberry Pi. Утилита запускается из меню графической оболочки. Найти можно по пути Меню приложений -> Accessories -> SD Card Copier.


 

Но что делать, если у вас установлена Raspbian Lite или WebHomePi, которые не имеют графической оболочки и работа только в командной строке? На ресурсе github.com нашёл утилиту rpi-clone (автор Bill Wilson), которая позволяет клонировать SD карту, используя только командную строку.

Клонировать, т.е. получить резервную копию, можно не только систему Raspbian, но и систему подобную ей, например WebHomePi. Подключитесь как root удалённо по ssh или непосредственно войдите как root на Raspberry Pi 3. Можно войти в систему и как пользователь pi, но тогда в случае получения ошибки Permission denied или run as root придется в начале команды подставить sudo (запуск от имени root).
Скачайте и установите утилиту rpi-clone с помощью команд:
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone/
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin

В командной строке введите rpi-clone и система выдаст справку с опциями запуска этой утилиты.
Новая SD карта обычно уже отформатирована в системе FAT32 и её сразу же можно использовать для клонирования. Если SD карта использовалась, то на ней есть разделы и может быть загрузочный раздел. Такую карту надо отформатировать. Я использовал программу SD Card Formatter 5.0.0 (установочный файл SD_CardFormatter0500SetupEN.exe). Подключите SD карту к компьютеру Windows и запустите утилиту. Выберите диск SD карты, установите флажок Quick format, если SD карта новая (почти). Если SD карта давала сбои, то выберите Overwrite format. Будет произведено сканирование всего пространства памяти. Затем нажмите кнопку Format.

Выдается предупреждение о том, что вся информация будет стерта. Нажмите Да и потом OK.

 

Есть и другой вариант. Если SD карта определилась в Windows, то можно отформатировать её средствами самой Windows. Откройте Этот компьютер (Мой компьютер). Щелкните правой кнопкой мыши (ПКМ) по диску SD карты.
Если вы используете для клонирования SD карту, на которой уже была установлена система Raspbian или WebHomePi, то достаточно отформатировать загрузочный раздел boot размером 44.8 MB. Раздел Linux можно не трогать.
В открывшемся меню выберите Форматировать.... Аналогично, если SD карта почти новая, то поставьте галку Быстрое. Если SD карта старая, то снимите эту галку. Будет произведена проверка всего пространства памяти SD карты.

 
 

И наконец самый быстрый способ – отформатировать SD карту командой parted. Утилита parted для работы с разделами уже установлена в системе Raspbian, поэтому лишних телодвижений делать не потребуется. Но надо действовать очень аккуратно, иначе в спешке можно снести саму исходную систему.
Вставьте SD карту в USB картридер и подключите к Raspberry Pi 3. Сначала командой lsblk  проверьте, определилась ли в системе ваша SD карта.
lsblk
Обычно подключенная SD карта определяется как устройство sda. Запустите утилиту командой
sudo parted /dev/sda
На приглашение (parted) дайте команду
mklabel msdos
... На вопрос Yes/No? нажмите  y. Далее после приглашения (parted) аккуратно введите
mkpart primary fat32 1MiB 100%
Для выхода из утилиты после приглашения (parted) наберите команду
quit

Отформатированную SD карту вставьте в USB картридер и подключите к Raspberry Pi 3. Я использовал компактный USB картридер MXT-USB Storage Device фирмы DEXP.
Войдите в систему и дайте команду
lsblk
В выводе команды должна присутствовать подключенная SD карта, обычно это устройство sda. Для простого клонирования никаких опций указывать не нужно, надо указать только устройство, т.е. sda. В командной строке введите
rpi-clone sda

У меня система WebHomePi, которая настроена на запуск от имени root. Если у вас Raspbian, настроенная на запуск от имени пользователя pi, то тогда в начале каждой команды надо указывать sudo.
При получении сообщения rpi-clone needs to be run as root (rpi-clone должен запускаться от имени root) в начале команды укажите sudo (запуск от имени root), т.е sudo rpi-clone sda.
Всегда указывайте перед командой sudo, если выдаётся подобное сообщение или сообщение о том, что доступ запрещён.

Утилита выводит на экран довольно много информации, ничего не нажимайте и ждите. На вопрос
Initialize and clone to the destination disk sda?  (Инициализировать и клонировать на целевой диск sda?) введите yes.
На сообщение Optional destination ext type file system label (16 chars max): (Необязательная метка файловой системы ext (не более 16 символов): ) ввёл WHP (можно просто нажать Enter).
Иногда метка не запрашивается и сразу выдается следующее ниже сообщение.
Далее программа выводит информацию о параметрах клонирования и начинает клонировать SD карту. Придётся подождать несколько минут. Наконец программа выдаёт
Hit Enter when ready to umount the /dev/sda partitions ... (Нажмите Enter, когда будете готовы размонтировать разделы /dev/sda ... ) — нажимаем Enter. Разделы будут отмонтированы и можно извлечь USB картридер.

Можно скопировать систему на карту меньшего объема. Спасибо Bill Wilson за такую возможность.
Например, у меня SD карта 8 GB: раздел boot использует 21.5 MB из 43.5 MB, раздел root использует 1.7 GB из 7.9 GB, поэтому решил клонировать на SD карту 4 GB.
В этом случае надо в параметрах запуска указать опцию -F (заглавная буква F, в Linux регистр имеет значение), т.е.
rpi-clone -F sda

После клонирования дайте команду sudo halt и выключите Raspberry Pi 3. Выньте оригинальную SD карту и поставьте клон. Включите Raspberry Pi 3. Система должна загрузиться и работать так же, как на оригинальной карте. Всё — теперь у вас есть резервная копия на случай краха системы. Вместе с копией запишите и храните пароли пользователей root и pi, иначе потом не сможете подключиться по SSH.

Посмотреть свободное место на карте можно командой df -h.

Иногда при попытке клонировать система выдает сообщение о том, что структуру SD карты необходимо почистить. Это может случиться, если при клонировании неожиданно отключилось питание Raspberry Pi. В этом случае отформатируйте разделы SD карты и попробуйте снова клонировать. В Linux отформатировать разделы можно в терминале командами [4]:

sudo mkfs -t vfat -n FLASH /dev/sda1
sudo mkfs -t vfat -n FLASH /dev/sda2

Если вы не смогли скачать утилиту с github.com, то можете скачать с Яндекс-Диска (rpi-clone-master.zip 21.8 кБ)
Скачать утилиту
Используя WinSCP (Windows) или sftp (Linux), закиньте архив утилиты в папку /root на Raspberry Pi3. Войдите как root и распакуйте архив командой
unzip rpi-clone-master.zip
Перейдите  в каталог утилиты командой
cd rpi-clone-master
Скопируйте файлы утилиты rpi-clone и rpi-clone-setup в каталог /usr/local/sbin командой
cp rpi-clone rpi-clone-setup /usr/local/sbin

Также можно зайти в систему как пользователь pi и скопировать архив утилиты в домашний каталог ~ (т.е. в /home/pi), но тогда при установке утилиты перед командами придется указывать sudo в случае, если система потребует права root.

После этого утилита готова к запуску. Справку по утилите можно посмотреть в файле README.md (на англ.).

Последнее редактирование 22.06.2023

Использованные ресурсы
1. https://rlab.ru/doc/long_live_flash.html
2. http://www.ekzorchik.ru/2017/03/how-to-create-a-backup-system-image-raspbian/
3. https://sdformatter.ru/
4. https://losst.ru/formatirovanie-fleshki-v-linux
5. https://computingforgeeks.com/format-sdcard-usb-flash-drive-on-linux-terminal/

Категория: Мои статьи | Добавил: zgo (11.11.2018)
Просмотров: 8350 | Комментарии: 7 | Теги: WebHomePi, raspbian, резервная копия, rpi-clone, клон, backup, дубликат, клонирование, clone | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Сайт завода zgo.ucoz.ru
  • Забайкальский край
    Дарасун
    Яндекс.Погода


    Хостинг Ucoz опять навязал видеорекламу, но обещает - "мы настроили систему так, чтобы в сутки на уникального посетителя приходилось не более двух показов."
    Совет, как не смотреть видеорекламу.

    Или используйте Uran - браузер от Ucoz без рекламы Скачать

    или подключите к браузеру блокировщик рекламы, например, Adblock Plus или uBlock Origin

    Универсальный декодер кириллицы



    Защита, контроль, управление.



    DONATE (поддержи автора)
    Все статьи авторские, при использовании прошу ссылаться на сайт
    Copyright Дарасунский завод горного оборудования © 2004 - 2024
    Бесплатный конструктор сайтов - uCoz