Восстановить Пи из самого Пи

8

Только что начал играть с моделью Raspberry Pi B +, я сидел целую вечность, и у меня возник вопрос? Можно ли восстановить Raspberry Pi из себя?

Например: можно ли поместить образ на карту microSD, а затем перезагрузить Pi, чтобы установить новый образ, удалив все ранее установленное и начать заново? Можно ли сделать это без другого компьютера для форматирования и создания образа SD-карты? В настоящее время я установил raspbian, если это поможет.

TommyBs
источник

Ответы:

8

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

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

Или, по крайней мере, я так думаю, что Linux работает с файлами. В прошлый раз, когда я попробовал это (я сделал несколько месяцев назад), Пи просто завис. Основываясь на этом эксперименте, вам действительно нужен другой компьютер для повторного изображения SD-карты.

Альтернативой может быть использование метода NOOBS и сохранение загрузочных файлов в отдельном разделе, а затем загрузка либо в NOOBS, либо в ОС, если она установлена. NOOBS в некоторой степени уже делает то, что вы сказали, но вместо перезаписи всего SD он заменяет только разделы ОС. Эта ссылка рассказывает, как работает NOOBS.

PNDA
источник
5
Технически вы могли бы сделать это, используя (или, возможно, даже используя chroot) корневую систему на основе ОЗУ (и либо очень маленькое настраиваемое изображение, либо изображение с USB-накопителя), но я думаю, что это слишком далеко от уровня квалификации большинства пользователей, чтобы быть полезным , Использовать систему с корневой файловой системой FS на другом устройстве было бы проще, но также не очень целесообразно, если только вы не начинаете с этого.
Златовласка
@goldilocks Может быть, я попробую это когда-нибудь. Если это окупится, я с открытым исходным кодом.
PNDA
3

С достаточно большой SD-картой вы могли бы иметь 2 используемых варианта загрузки - и манипулировать тем, который не используется, что вполне нормально, а затем обновить grub и перезагрузиться до новой ОС.

Вы не можете писать в смонтированные на данный момент разделы ОС без впечатляющего сбоя, по крайней мере, не так, как вы просите. Не в последнюю очередь, Linux кеширует данные, поэтому ваша новая запись будет уничтожена, когда кеш сбрасывает старые данные в новые ...

Марк Уильямс
источник
0

Это можно сделать, если разбить операцию на этапы. С помощью дистрибутива на основе ОЗУ , такого как, например, мой проект Nard , можно освободить SD-карту для сложных операций.

  1. Извлеките содержимое / boot из Nard (или другого подобного дистрибутива)
  2. Сотрите все в вашей текущей Raspbian SD-карте / загрузке
  3. Храните Nard / boot / * на Raspbian SD / boot
  4. перезагрузка
  5. Теперь вы должны работать из ОЗУ и, таким образом, вы можете делать с SD-картой все что угодно, например загружать любой нужный вам образ и стирать всю SD-карту чем-то новым.
Ронни Нильссон
источник
0

Похоже, вы могли бы использовать Rpi-клон? Я использовал rpi-clone каждый день в течение нескольких недель, чтобы клонировать мой работающий RPi3 под управлением Raspian Jessie. Для клонирования второй карты Micro SD требуется около 10 минут. Затем я выключаю, вынимаю обе карты, сохраняю оригинал и загружаюсь с помощью клона. Следовательно я знаю, что резервное копирование работает. Я вращаю 3 карты таким образом, чтобы у меня всегда была безопасная карта. Меня устраивает ;-)

Geoff
источник
0

Что вы можете. Просто нажмите и удерживайте клавишу Shift, когда появится белый / серый экран. Это даже говорит вам, что на экране.

Chiwda
источник