Чи можу я клонувати весь Raspberry Pi для розгортання на інший Raspberry Pi?


12

Я не впевнений, що про всі теми "як створити резервну копію SD-карти" - це те, про що я прошу ... але ось ми продовжуємо :)

Чи є спосіб я зробити 100% -ний клон мого Raspberry Pi і просто розгорнути його на інший Raspberry Pi? Тож у мене є дві абсолютно однакові копії ... Або це робиться шляхом клонування SD-карти за допомогою вбудованої команди dd ?

Причина, про яку я запитую, полягає в тому, що я маю Raspberry Pi повністю налаштований з Apache , PHP та деякими іншими бібліотеками, і тепер я просто хочу ще один його клон з точно такими ж конфігураціями тощо.

Це можливо чи я відповів на власне запитання?


Я здивований, що пілону досі не згадували. Для мене це найпростіший спосіб клонування sd карти на rpi, і у nvere виникли проблеми з цим. Я вже відповідав на це питання в минулому, тому ось посилання на відповідь з деякими додатковими подробицями: raspberrypi.stackexchange.com/questions/66824/… Сподіваюся, це допомагає.
LevinceAndThePi

Я не міг нікуди завантажити піклон
Елія Вайс,

Ви не бажаєте завантажити його, воно вже є. Просто введіть піклон в термінал, і він запустить графічний інтерфейс.
LevinceAndThePi

Відповіді:


9

@naboovalley:

Припустимо наступний сценарій:

  • На Raspberry Pi перейдіть до терміналу, а потім перейдіть до каталогу / dev. Серед інших пристроїв слід побачити mmcblk0, mmcblk0p1 та mmcblk0p2.
  • mmcblk0 - це "голий" пристрій SD-карти, тоді як mmcblk0p1 - перший розділ цієї SD-карти, що містить зображення ядра тощо, а mmcblk0p2 - другий розділ цієї SD-карти, що містить кореневу файлову систему.
  • Вимкніть Raspberry Pi гідним чином (введіть команду "shutdown", можливо як root)
  • Помістіть SD-карту в іншу машину Linux. Зазвичай вищевказані каталоги повинні бути автоматично встановлені на / медіа /, і там повинні бути два підкаталоги (один для розділу 1 карти SD, один для розділу 2 картки SD)
  • Ви створили тимчасовий каталог для копіювання вмісту вашої SD-карти. Казати:~/tmp
  • Ви знаходитесь в ~/tmp

Тепер ви можете скопіювати вміст першого розділу на оригінальну оригінальну SD-карту, видавши таку команду rsync:

rsync -avn /media/<user>/<partition1> .

Ви НЕ поставити /в кінці! Вищенаведена команда буде «сухим бігом», а це означає, що вона покаже вам, що вона в підсумку зробить, але не виконає її реально.

Щоб виконати по-справжньому (після того, як ви підтвердите, що сухий запуск виконує те, що він повинен робити), ви можете видалити команду nз наведеної вище (так, rsync -av /media/<user>/<partition1> .).

Використовуйте ту ж команду для іншого розділу.

Тепер у вас повинна бути точна копія оригінальної SD-карти на вашій машині Linux.

Вийміть оригінальну SD-карту, поставте іншу - правильно відформатовану - SD-карту у вашій машині Linux та виконайте таку команду rsync:

rsync -avn <partition1> /media/<user>

Це знову сухий прогон, який повинен показати вам, що вміст <partition1>у /media/<user>буде скопійовано на SD-карту.

Після того, як ви підтвердили все гаразд, ви можете знову видалити nз rsyncкоманди.

Зробіть те ж саме для другої секції.

Це має дати точну копію оригінальної SD-карти на іншу SD-карту.

Примітка. Я перевірив все це на машині Lubuntu. Довідники та назви можуть відрізнятися від інших дистрибутивів Linux.

Зауважте також, що між предметами < >є заповнювачі, і ви повинні самі переконатися, як вони відповідають вашому оточенню.


Ідеально. Дякую! Чи буде копія "dd" робити те саме, що ви описуєте, або rsync набагато краще робити повну копію системи так, як я цього хочу?
naboovalley

Я не маю багато досвіду роботи з ddкомандою, тому не можу сказати, вибачте ...
GeertVc

Я не отримую повністю тієї частини, де ви говорите "- правильно відформатовано - SD-карта". Чи потрібно заздалегідь відформатувати SD-карту за допомогою розмірів розділів fat32 та ext4 належного розміру? Дякую
Ромен Вінсент

7

Так, ви можете використовувати ddабо Win32 Disk Imager в Windows для отримання точного зображення з однієї карти на іншу. Однак картка призначення повинна бути однакового розміру або більшої, щоб зробити це практичним.

Ви також можете просто скопіювати всі файли з вихідної файлової системи в цільову файлову систему. Тобто, підключіть цільову карту до зчитувача USB-карт та вставте її у свій джерело Raspberry Pi. Потім SSH у і видайте відповідні команди копіювання.

Також слід пам’ятати, якщо ви придбали ліцензійні ключі для апаратного декодування MPEG-2 або VC-1 . Вони пов'язані з вашим обладнанням, тому вам потрібно переконатися, що ви редагували /boot/config.txt на своїй копії.


Отже, на SD-картці зберігаються всі системні файли та встановлені бібліотеки? Мені не потрібно запускати будь-які команди встановлення під час підключення клонованої копії SD-карти до R-Pi №2?
naboovalley

2
Тут також можуть виникнути проблеми із SSH-ключами та IP-адресами.
Стів Робіллард

Тож на R-Pi # 2 може здатися, що ip-адреса така ж, як у R-Pi # 1? Я здогадуюсь, що я можу просто оновити його, щоб отримати новий мережевий ip?
naboovalley

Якщо ви використовуєте DHCP, RPi отримає новий IP при завантаженні автоматично, але вам слід змінити ім'я хоста, якщо ви плануєте використовувати обидва в одній підмережі. Якщо ви використовуєте фіксований ip, вам слід змінити і IP-адресу, і ім'я хоста
Роберто

Якщо я дивлюся на свою файлову систему ("df"), у мене є щось, що називається "rootfs" 2.1GB та / dev / root 2.1GB - моя / dev / mmcblk0 sd-карта займає лише 10М. Отже, коли я копіюю "mmcblk0", буде включена вся моя система? Спасибі хлопці
naboovalley

6

Ви можете просто скопіювати з dd, як @ me-- підказує, але це ще не все, що вам потрібно зробити при клонуванні системи. Є певні унікальні ідентифікатори системи, які також слід змінити.

Паролі потрібно скинути, щоб використовувати нову сіль. Це не дає людям знати, що ви два рази використовували один і той же пароль. Виконайте passwdкоманду як ваш користувач (зазвичай pi ), так і як root.

Якщо ви використовуєте SSH, ключі SSH слід повторно генерувати. Це важливо, наприклад, для впевненості, що якщо хтось вкраде один Raspberry Pi, він не може розшифрувати зв’язок з іншим. Просто запустіть цю команду:

sudo rm /etc/ssh/ssh_host_*

Нарешті, і найголовніше, вам потрібно змінити ім'я хоста. Якщо це за замовчуванням, це малинові . Якщо ти схожий на мене, я схиляюсь до імені хоста Raspberry Pi, так і роблю ssh raspberrypi. Наявність у мережі двох "малинових записів" змушує перестати працювати, тому другу слід перейменувати, наприклад, на rasberrypi2 . Ви можете внести цю зміну за допомогою sudo raspi-config, вибравши Advanced Options, а потім вибравши Hostname.


raspi-configнедоступний для Raspbmc . Можливо, слід описати ручний спосіб встановлення імені хоста?
Пітер Мортенсен


Для довідки, raspberrypi.stackexchange.com/questions/3926 / ... охоплює зміни імені хоста під Raspbmc.
Фред

4

Клонування мікро SD для резервного копіювання або переміщення вашої системи на інший RPi3 вбудовано як аксесуар, принаймні, у версії операційної системи, яку я отримав на запуску SD NOOBS:

  • Перейти до аксесуарів;
  • Hit Copy SD ;
  • Помістіть порожній мікро SD в USB-тримач;
  • Помістіть тримач у відкритий USB-слот;
  • Виберіть новий SD;
  • Натисніть на копію.

Це має бути правильна відповідь. Так легко.
Йорданія

1

Ви можете зробити саме це, використовуючи малину pi та нову девізну SD карту, підключену через USB. В останній версії програмного забезпечення Raspberry Pi є вбудоване програмне забезпечення під назвою SD cardcopier під аксесуарами, що робить саме це.

Ви вибираєте оригінальну карту (так карту, з якої ви завантажуєтесь) як джерело, а нову відформатовану порожню карту (підключену через кард-ридер до usb на пі) для призначення. Досить простий інтерфейс, і він працював для мене вперше. Опція командного рядка на mac using dd якось виникла проблема з панікою ядра.


0

Дуже безпечний і надійний інструмент для копіювання таких речей, як кореневі файлові системи (через посилання, які є в кореневій файловій системі) rsync. Цей інструмент враховує всі необхідні речі, такі як часові позначки, посилання, дозволи, ... Ідеально підходить для копіювання речей, як ви хочете зробити.


Але я все ще копіюю вміст sd-картки для повного дублікату системи - чи мені потрібно включити щось інше? Спасибі
naboovalley

Дивіться нову відповідь, яку я опублікував нижче.
GeertVc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.