ฉันสามารถโคลน Raspberry Pi ทั้งหมดของฉันเพื่อนำไปใช้กับ Raspberry Pi อื่นได้หรือไม่


12

ฉันไม่แน่ใจว่าหัวข้อ "วิธีการสำรองข้อมูลการ์ด SD" ของคุณทั้งหมดเป็นสิ่งที่ฉันต้องการหรือไม่ ... แต่เราไปกันแล้ว :)

มีวิธีที่ฉันสามารถสร้าง Raspberry Pi ของฉันได้ 100% และเพิ่งนำไปใช้กับ Raspberry Pi อื่นได้หรือไม่ ดังนั้นฉันจึงมีสำเนาที่เหมือนกันสองสำเนา ... หรือทำโดยการโคลนการ์ด SD โดยใช้คำสั่งddในตัวหรือไม่

เหตุผลที่ฉันถามคือฉันมี Raspberry Pi ของฉันกำหนดค่าอย่างเต็มที่กับApache , PHPและห้องสมุดอื่น ๆ และตอนนี้ฉันต้องการโคลนอีกด้วยการกำหนดค่าเดียวกันแน่นอน ฯลฯ

เป็นไปได้หรือฉันตอบคำถามของฉันเอง?


ฉันประหลาดใจที่ piclone ยังไม่ได้รับการกล่าวถึง สำหรับฉันนั่นเป็นวิธีที่ตรงไปตรงมาที่สุดในการโคลนการ์ด sd บน rpi และ nvere มีปัญหากับมัน ฉันเคยตอบคำถามนี้ไปแล้วในอดีตดังนั้นนี่คือลิงก์ไปยังคำตอบที่มีรายละเอียดเพิ่มเติม: raspberrypi.stackexchange.com/questions/66824/หวังว่านี่จะช่วยได้
LecauseAndThePi

ฉันไม่สามารถหา piclone ดาวน์โหลดได้ทุกที่
Elia Weiss

คุณไม่ได้ ened เพื่อดาวน์โหลดมันมีอยู่แล้ว เพียงพิมพ์ piclone ในเทอร์มินัลแล้วมันจะเปิด GUI
LecauseAndThePi

คำตอบ:


9

@naboovalley:

สมมติว่าสถานการณ์ต่อไปนี้:

  • บน Raspberry Pi ของคุณไปที่เทอร์มินัลแล้วไปที่ไดเร็กทอรี / dev คุณควรเห็นอุปกรณ์ mmcblk0, mmcblk0p1 และ mmcblk0p2
  • mmcblk0 เป็นอุปกรณ์การ์ด SD "เปลือย" ในขณะที่ mmcblk0p1 เป็นพาร์ติชันแรกของการ์ด SD นั้นที่มีเคอร์เนลอิมเมจและอื่น ๆ และ mmcblk0p2 เป็นพาร์ติชันที่สองของการ์ด SD นั้นที่มีระบบไฟล์รูท
  • ปิด Raspberry Pi ของคุณในลักษณะที่เหมาะสม (พิมพ์คำสั่ง "ปิด" อาจเป็นรูท)
  • ใส่การ์ด SD ลงในเครื่อง Linux อื่น โดยปกติไดเรกทอรีดังกล่าวข้างต้นควรติดตั้งโดยอัตโนมัติใน / media / และควรมี 2 ไดเรกทอรีย่อยในนั้น (หนึ่งสำหรับพาร์ติชัน 1 ของการ์ด SD หนึ่งสำหรับพาร์ติชัน 2 ของการ์ด SD)
  • คุณได้สร้างไดเรกทอรีชั่วคราวเพื่อคัดลอกเนื้อหาของการ์ด SD ของคุณ พูด:~/tmp
  • คุณอยู่ที่ ~/tmp

ตอนนี้คุณสามารถคัดลอกเนื้อหาของพาร์ติชันแรก o การ์ด 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 distro อื่น ๆ

โปรดทราบว่ารายการระหว่าง< >นั้นเป็นตัวยึดตำแหน่งและคุณต้องดูด้วยตัวคุณเองว่ามันตรงกับสภาพแวดล้อมของคุณอย่างไร


สมบูรณ์ ขอขอบคุณ! สำเนา "dd" จะทำเช่นเดียวกับที่คุณอธิบายหรือ rsync จะทำสำเนาแบบเต็มระบบได้ดีกว่าที่ฉันต้องการหรือไม่
naboovalley

ฉันไม่ได้มีประสบการณ์มากมายกับddคำสั่งดังนั้นฉันไม่สามารถบอกได้ขอโทษ ...
GeertVc

ฉันไม่เข้าใจส่วนที่คุณพูดว่า "- จัดรูปแบบอย่างถูกต้อง - การ์ด SD" เราจำเป็นต้องฟอร์แมตการ์ด SD ด้วยพาร์ติชัน fat32 และ ext4 ที่มีขนาดเหมาะสมหรือไม่? ขอบคุณ
Romain Vincent

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 Keys และที่อยู่ IP
Steve Robillard

ดังนั้นใน R-Pi # 2 อาจคิดว่าที่อยู่ IP เหมือนกับ R-Pi # 1 หรือไม่ ฉันเดาว่าฉันสามารถรีเฟรชได้เพื่อรับเครือข่าย ip ใหม่
naboovalley

หากคุณใช้ DHCP RPi จะได้รับ IP ใหม่เมื่อบู๊ตโดยอัตโนมัติ แต่คุณควรเปลี่ยนชื่อโฮสต์หากคุณวางแผนที่จะใช้ทั้งสองอย่างในซับเน็ตเดียวกัน หากคุณใช้ไอพีตายตัวคุณควรเปลี่ยนทั้ง IP และชื่อโฮสต์
Roberto

ถ้าฉันดูระบบไฟล์ของฉัน ("df") ฉันมีสิ่งที่เรียกว่า "rootfs" 2.1GB และ / dev / root 2.1GB - sd / sd / mmcblk0 ของฉัน / dev / mmcblk0 ใช้เวลาเพียง 10M เท่านั้น ดังนั้นเมื่อฉันคัดลอก "mmcblk0" ระบบทั้งหมดของฉันจะรวมอยู่ด้วย? ขอบคุณมาก ๆ
naboovalley

6

คุณสามารถคัดลอกด้วยddตามที่ @ me-- แนะนำ แต่นั่นไม่ใช่ทั้งหมดที่คุณต้องทำเมื่อทำการโคลนระบบ มีตัวระบุระบบที่ไม่ซ้ำกันบางอย่างที่ควรเปลี่ยนเช่นกัน

ควรรีเซ็ตรหัสผ่านเพื่อให้มีการใช้เกลือใหม่ สิ่งนี้จะป้องกันไม่ให้คนอื่นรู้ว่าคุณใช้รหัสผ่านเดียวกันสองครั้ง รันpasswdคำสั่งในฐานะผู้ใช้ของคุณ (โดยปกติคือpi ) และในฐานะรูท

หากคุณใช้ SSH คีย์ SSH ควรถูกสร้างขึ้นใหม่ นี่เป็นสิ่งสำคัญสำหรับการทำให้แน่ใจว่าถ้ามีคนขโมย Raspberry Pi หนึ่งคนพวกเขาไม่สามารถถอดรหัสการสื่อสารกับอีกคนหนึ่งได้ เพียงรันคำสั่งนี้:

sudo rm /etc/ssh/ssh_host_*

ในที่สุดและที่สำคัญที่สุดคุณต้องเปลี่ยนชื่อโฮสต์ ถ้าเป็นที่เริ่มต้นของมันraspberrypi หากคุณชอบฉันฉัน ssh ให้เป็นชื่อโฮสต์ราสเบอร์รี่ Pi ssh raspberrypiดังนั้นฉันทำ มีสอง "raspberrypis" บนเครือข่ายทำให้หยุดการทำงานเพื่อให้คนที่สองควรจะเปลี่ยนชื่อไปrasberrypi2ตัวอย่างเช่น คุณสามารถทำให้การเปลี่ยนแปลงนี้มีsudo raspi-configการเลือกและจากนั้นเลือกAdvanced OptionsHostname


raspi-configไม่สามารถใช้ได้สำหรับRaspbmc อาจอธิบายวิธีการตั้งค่าชื่อโฮสต์ด้วยตนเองได้ไหม
Peter Mortensen


สำหรับการอ้างอิงraspberrypi.stackexchange.com/questions/3926/…ครอบคลุมการเปลี่ยนชื่อโฮสต์ภายใต้ Raspbmc
Fred

4

การโคลน micro SD สำหรับการสำรองข้อมูลหรือย้ายระบบของคุณไปยัง RPi3 อื่นนั้นสร้างขึ้นในรูปแบบของอุปกรณ์เสริมอย่างน้อยในเวอร์ชั่นของระบบปฏิบัติการที่ฉันได้รับจากการเริ่มต้นใช้งาน NOOBS SD:

  • ไปที่อุปกรณ์เสริม
  • กดคัดลอก SD ;
  • วาง micro SD เปล่าในที่ใส่ USB
  • ใส่ตัวยึดในช่องเสียบ USB ที่เปิดอยู่
  • เลือก SD ใหม่
  • กดคัดลอก

นี่ควรเป็นคำตอบที่ถูกต้อง ง่ายมาก.
จอร์แดน

1

คุณสามารถทำเช่นนั้นได้โดยใช้ raspberry pi และคำขวัญ SD card ใหม่เชื่อมต่อผ่าน USB ซอฟต์แวร์ Raspberry Pi รุ่นล่าสุดมีซอฟต์แวร์ในตัวที่เรียกว่าSD cardcopierภายใต้อุปกรณ์เสริมที่ทำสิ่งนี้

คุณเลือกการ์ดดั้งเดิมของคุณ (เพื่อให้การ์ดที่คุณกำลังบูทเป็นแหล่งที่มาและการ์ดเปล่าที่ฟอร์แมตใหม่ (เชื่อมต่อผ่านเครื่องอ่านการ์ดไปยัง usb บน pi) เป็นปลายทาง UI ที่เรียบง่ายและใช้งานได้ดีสำหรับฉันเป็นครั้งแรก ตัวเลือกบรรทัดคำสั่งบน mac ที่ใช้ dd สิ้นสุดลงด้วยปัญหาเคอร์เนล


0

เครื่องมือที่เชื่อถือได้มากและเชื่อถือได้ในการคัดลอกสิ่งที่ต้องการระบบแฟ้มราก (เพราะการเชื่อมโยงที่มีอยู่ในระบบแฟ้มราก) rsyncคือ เครื่องมือนี้จะคำนึงถึงสิ่งที่จำเป็นทั้งหมดเช่นเวลาบันทึกการเชื่อมโยงการอนุญาต ... เหมาะที่สุดในการคัดลอกสิ่งต่าง ๆ ตามที่คุณต้องการ


แต่ฉันยังคงคัดลอกเนื้อหาของการ์ด sd สำหรับระบบที่ซ้ำกันทั้งหมด - หรือฉันต้องรวมอย่างอื่นหรือไม่ ขอบคุณ
naboovalley

ดูคำตอบใหม่ที่ฉันโพสต์ด้านล่าง
GeertVc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.