Чи можу я клонувати весь 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.