ฉันจะสำรอง Raspberry Pi ของฉันได้อย่างไร


297

ฉันได้เขียนโปรแกรมสำหรับ Raspberry Pi ของฉัน (ใช้งาน Raspbian) มาสองสามสัปดาห์แล้วและต้องการให้แน่ใจว่าฉันปกป้องงานที่ทำไปแล้ว

ฉันจะสำรองไฟล์ที่ฉันสร้างได้อย่างไร

ฉันสามารถเสียบการ์ด SD ลงในพีซี Windows (XP หรือ 7) ของฉันแล้วคัดลอกไปยังฮาร์ดไดรฟ์หรือการ์ด SD อื่นได้หรือไม่


6
ฉันมีพีซีที่ใช้ทั้ง Ubuntu และ Windows (XP & 7) แต่ฉันคาดหวังว่าคนส่วนใหญ่สนใจคำตอบของ Windows ฉันจะแก้ไขคำถามเพื่อให้ชัดเจน
Steve Robillard

7
rsync จาก Raspi ไปยังพีซีของคุณหรือไม่
Alex L

41
สำหรับรหัสคุณอาจต้องการพิจารณาใช้ซอฟต์แวร์ควบคุมเวอร์ชันแบบกระจายเช่นgitหรือhgด้วยวิธีนี้คุณไม่เพียง แต่มีสำเนาของรหัสของคุณในหลาย ๆ ที่ แต่ยังมีประวัติที่สมบูรณ์ว่ารหัสนั้นมีการเปลี่ยนแปลงอย่างไร
มาร์คบูธ

4
@ MarkBooth ฉันไม่เห็นสาเหตุที่จำเป็นต้องใช้ DVCS เหนือ VCS หากเรากำลังพิจารณาว่าจะสามารถเรียกคืนรหัสได้ในภายหลัง เฮ้มันง่ายยิ่งขึ้นเพราะคุณใช้หมายเลขการแก้ไขที่ไม่แฮชเพื่อระบุสถานะที่เฉพาะเจาะจง การเรียนรู้ CVCS เช่นการโค่นล้มไม่ได้เป็นการลงทุนครั้งเดียว (อย่างที่ฉันจำได้ ... ถึงแม้ว่ามันจะนานมากแล้วก็ตาม) ใช่การเปลี่ยนมาใช้ Git นั้นค่อนข้างกังวลในเวลานั้น แต่ฉันไม่เคยมองย้อนกลับไป
Steven Lu

1
ความคิดเห็นที่ไม่ได้เป็นสถานที่ที่ดีสำหรับชนิดของ @StevenLu การสนทนานี้เราควรใช้เวลานี้เพื่อRaspberry Pi การพูดคุย
Mark Booth

คำตอบ:


294

หากคุณต้องการเก็บรักษาข้อมูลทั้งหมดคุณอาจต้องสร้างอิมเมจของดิสก์ นอกจากนี้ Windows ไม่รู้จักระบบไฟล์ Linux ทั่วไปดังนั้นคุณอาจไม่สามารถเห็นไฟล์ของคุณได้เมื่อคุณเสียบการ์ด SD

การสร้างอิมเมจของดิสก์จะไม่เพียง แต่รักษาไฟล์เท่านั้น แต่ยังรวมถึงโครงสร้างของระบบไฟล์และเมื่อคุณตัดสินใจที่จะแฟลชการ์ด SD ใหม่ของคุณคุณจะสามารถเสียบเข้าไปได้

ลินุกซ์

บน Linux คุณสามารถใช้ddเครื่องมือมาตรฐาน:

dd if=/dev/sdx of=/path/to/image bs=1M

/dev/sdxการ์ด SD ของคุณอยู่ที่ไหน

Mac

บน Mac คุณสามารถใช้ddเครื่องมือมาตรฐานที่มีไวยากรณ์แตกต่างกันเล็กน้อย:

dd if=/dev/rdiskx of=/path/to/image bs=1m

/dev/rdiskxการ์ด SD ของคุณอยู่ที่ไหน

(การใช้ rdisk จะดีกว่าเป็นอุปกรณ์ดิบ - เร็วกว่า)

ในการค้นหาดิสก์ที่อุปกรณ์ของคุณพิมพ์diskutil listที่พรอมต์คำสั่งคุณอาจต้องรูท เพื่อทำประเภทนี้sudo -sและป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง

ของ windows

ตัวเลือกที่ 1

บน Windows คุณสามารถใช้กระบวนการย้อนกลับที่คุณใช้เมื่อกระพริบการ์ด SD

คุณสามารถใช้Win32 Disk Imagerซึ่งเป็นเครื่องมือที่ต้องการสำหรับการกระพริบการ์ด SD ของมูลนิธิ เพียงป้อนชื่อไฟล์ (ตำแหน่งและชื่อของไฟล์ภาพสำรองที่จะบันทึก) เลือกอุปกรณ์ (การ์ด SD) และกดอ่าน:

Win32 Disk Imager

แน่นอนคุณยังสามารถใช้RawWrite , ddสำหรับ Windowsหรือเครื่องมือที่คล้ายกันกระบวนการที่ค่อนข้างคล้าย

ตัวเลือก 2

หากคุณไม่ต้องการสำรองข้อมูลทั้งระบบ แต่เฉพาะไฟล์เฉพาะฉันขอแนะนำให้คุณเชื่อมต่อ Raspberry Pi ของคุณผ่าน SFTP และคัดลอกไฟล์ไปยังคอมพิวเตอร์ของคุณ (คุณสามารถใช้ไคลเอนต์WinScp ) หากคุณเปิดใช้งาน SSH โดยทั่วไป SFTP จะไม่ต้องการการกำหนดค่าพิเศษในด้าน Raspberry Pi

อีกตัวเลือกหนึ่งคือการคัดลอกไฟล์ไปยังระบบระยะไกลโดยใช้ rsync

นอกจากนี้คุณยังสามารถติดตั้งไดรเวอร์พิเศษเพื่อให้ Windows ของคุณสามารถอ่านextระบบไฟล์ (และจะสามารถอ่านการ์ด SD ทั้งหมด) เช่นext2fsdแต่อาจไม่คุ้มค่ากับความพยายาม


เนื่องจากภาพจะมีขนาดเท่ากับการ์ด SD ของคุณคุณอาจต้องการบีบอัด สิ่งนี้สามารถทำได้ง่ายๆโดยใช้เครื่องมือบีบอัดที่คุณชื่นชอบเช่นgzip7zip, WinZip, WinRar ...


1
+1 โดยทั่วไปแม้ว่าrsyncผ่านsshอาจจะง่ายกว่า นอกจากนี้สำหรับซอร์สโค้ด - ตามที่ระบุไว้ในบูธแล้ว - คุณควรใช้DVCS
Tobias Kienzler

1
หากการ์ด SD ของฉันเสียหายฉันจะติดตั้งภาพนี้ลงในการ์ด SD ใหม่ได้อย่างไร
Flipper

2
ลิงก์ไปยัง Win32 Disk Imager เกิดขึ้นโดยไม่มีการดาวน์โหลด ฉันคิดว่ามันเหมือนกับsourceforge.net/projects/win32diskimagerใช่ไหม
Yamikuronue

2
โอ้ฉันฉันไม่สามารถแยกความแตกต่างถ้า "อ่าน" ในภาพนั้นหมายถึง "อ่านไฟล์ภาพ" หรือ "อ่านพาร์ทิชันและเขียนลงในไฟล์ภาพ" .... เดียวกันสำหรับ "เขียน" ... Gui ที่ต้องการ ที่จะถูกทำให้สะอาด บางอย่างเช่น "รูปภาพ -> อุปกรณ์" และ "อุปกรณ์ -> รูปภาพ" (หรือทางเลือกที่ดีกว่า)
Olivier Dulac

4
ดูเหมือนว่า Win32DiskImager จะสามารถจัดการกับพาร์ติชันที่ Windows รู้จักได้เท่านั้น ฉันมีโชคไม่น้อยเลยที่จะโคลนนิ่งการ์ด SD ของ Noobs / Raspbian พบโปรแกรมฟรีแวร์นี้: hddguru.com/software/HDD-Raw-Copy-Tool มันใช้งานได้อย่างมีเสน่ห์ในการทำโคลนไบต์ของการ์ด SD ใน Windows (ฉันใช้กับ Win7 64 บิต) โดยไม่คำนึงถึงรูปแบบการแบ่งพาร์ติชันและเนื้อหา
techie007

156

หากคุณใช้งาน Linux คุณสามารถใช้ddคำสั่งเพื่อสำรองข้อมูลภาพทั้งหมด:

dd if=/dev/sdx of=/path/to/image

หรือสำหรับการบีบอัด:

dd if=/dev/sdx | gzip > /path/to/image.gz

sdxการ์ด SD ของคุณอยู่ที่ไหน

ในการกู้คืนการสำรองข้อมูลคุณย้อนกลับคำสั่ง:

dd if=/path/to/image of=/dev/sdx

หรือเมื่อถูกบีบอัด:

gzip -dc /path/to/image.gz | dd of=/dev/sdx

3
ฉันขอแนะนำให้ใช้ gzip - ฉันได้สำรองพาร์ทิชันเดสก์ท็อปในวันนี้และพาร์ทิชัน 20Gb ถูกบันทึกใน 8.9Gb
Alex Chamberlain

2
bzip2 ควรบีบอัดให้ดียิ่งขึ้นและสามารถใช้ได้กับทุกระบบ Linux สำหรับระบบลีนุกซ์รุ่นใหม่ xz ควรบีบอัดให้ดียิ่งขึ้นตัวขยายการบีบอัดสำหรับเหล่านี้คือ bunzip2 และ unxz ตามลำดับ
Arne

4
@ Arne ฉันจะไม่คาดหวังความแตกต่างดังกล่าว! ถึงกระนั้นก็ดูเหมือนว่าจะต่ำกว่าความกังวลของฉัน (Btw มันเจ๋งเมื่อคุณตอบกลับความคิดเห็นเกือบ 1 ปีและคุณจะได้รับคำตอบภายใน 2 นาที:))
yo '

5
อย่าทำผิดพลาด (อย่างที่ฉันเพิ่งทำ) ในการปล่อยbs=1Mพารามิเตอร์ที่คล้ายกันออกมา ขนาดบล็อกเริ่มต้นที่ 512 ไบต์จะฆ่าประสิทธิภาพการคัดลอก
Steven Lu

1
@Arne ฉันพยายามใช้ bzip2 ตอนนี้และอาจจะเหมาะสมถ้าฉันสำรองข้อมูลจากการ์ด SD Class 4 ของฉัน แต่ในการ์ด Class 10 UHS 1 SanDisk 8GB นี้ (ซึ่งเป็น $ 12 เมื่อสัปดาห์ที่แล้ว) กำลังขยาย Ivy Bridge CPU thread และ จำกัด ความเร็วในการอ่านจากการ์ดถึง 6MB / s (dd ด้วย Ctrl + T รายงาน 4.2MB / s) มันไม่เหมาะเพราะฉันสามารถใช้ gzip กับการ์ดนี้และอ่านมันได้เร็วกว่ามาก (dd รายงาน 18MB / s) จริงอยู่ถ้าดิสก์ส่วนใหญ่มีพื้นที่ว่างการอ่านระหว่างการยืดที่ว่างเปล่าเหล่านั้นจะเร็วขึ้น แต่ฉันจะต้องดูว่าความแตกต่างของขนาดไฟล์ที่ได้คืออะไร
Steven Lu

31

นอกเหนือจากการสำรองข้อมูลระดับบล็อกนั้นมีวิธีการทั่วไปสองวิธีในการจัดการกับแหล่งข้อมูล: เพื่อเก็บถาวรอย่างต่อเนื่อง (1) หรือใช้ระบบควบคุมการแก้ไข (2)

เราจะใช้ command-line ( การเชื่อมต่อท้องถิ่นหรือการเชื่อมต่อSSHกับเครื่อง Raspberry Pi) ใช่ไหม?

1. เอกสารเก่า

cd ~/projects
tar czvf your-raspberry-project-top-level-dir-v1.0.tgz \
         ./your-raspberry-project-top-level-dir 
scp your-raspberry-project-top-level-dir-v1.0.tgz \
         user@backup-host:/home/user/backups/

2. RCS (Git เป็นต้น)

cd ~/projects/your-raspberry-project-top-level-dir
make clean                          # Or clean it manually using rm (rm ./*.o ./*.pyc)
git init                            # Create new repo here
git add .                           # Add source files to the staging index
git status                          # Verify if it's OK
git commit -a -m "Initial import"   # Fix application's source changes
git add remote https://github.com/user/your-raspberry-project.git
git push -u origin master           # Sends the sources to your github repo
git pull && git push && git status  # Now origin/master is your tracking branch

2
นอกจากนี้ยังอาจคุ้มค่าที่ผู้ใช้สามารถตั้งค่า repos เปลือยบนเครื่องอื่น ๆ ในเครือข่ายของพวกเขาและผลักดันจาก Raspberry Pi ของพวกเขาไปที่นั่นแทนที่จะต้องตั้งค่าบัญชี GitHub, ssh keys และอื่น ๆ
Mark Booth

2
เป็นการเริ่มต้นที่ดีสำหรับคำตอบที่แท้จริง รหัสจะต้องมีการจัดการภายใต้การควบคุมเวอร์ชันหากต้องการที่จะสามารถรักษามันได้ การควบคุมเวอร์ชันช่วยให้สามารถติดตามการเปลี่ยนแปลงทำความเข้าใจประวัติการเปลี่ยนแปลงจัดการสาขาต่าง ๆ (เช่นเสถียร vs dev) และผสานระหว่างพวกเขา แต่มันไม่ได้สำรองข้อมูล อย่างไรก็ตามหนึ่งต้องการสำรองที่เก็บข้อมูล (เช่นโฟลเดอร์. git สำหรับ Git) ตรวจสอบฟอรัม Linux / Unix, wikis, stackexchanges และอื่น ๆ สำหรับวิธีการสำรองข้อมูลโฟลเดอร์ภายใต้ Linux หมายเหตุ: ฉันไม่ถือว่า GitHub เป็นข้อมูลสำรอง และคุณไม่ต้องการที่จะเผยแพร่ทุกอย่างเพื่อ GitHub!
Huygens

29

ใน Mac/dev/disknคุณไม่ต้องการที่จะใช้ คุณควรใช้/dev/rdisknแทนโดยที่ n คือหมายเลขที่ระบบปฏิบัติการใช้เพื่อระบุการ์ด SD ของคุณ สิ่งนี้จะช่วยลดเวลาที่ต้องใช้ในการถ่ายสำเนาจำนวนมาก

ดังนั้นสำหรับกระบวนการสำรองข้อมูลที่ดีที่สุดบน Mac ฉันขอแนะนำให้ทำดังต่อไปนี้:

เรียกใช้diskutil listและค้นหาดิสก์ที่สอดคล้องกับการ์ด SD ของ Raspberry Pi ของคุณ:

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            499.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.9 GB     disk1
   1:             Windows_FAT_32                         58.7 MB    disk1s1
   2:                      Linux                         7.9 GB     disk1s2

เห็นได้ชัดว่า/dev/disk1เป็นการ์ด SD 8GB ของฉันชื่อพาร์ทิชัน Linux ก็เป็นเบาะแสเล็กน้อย

อย่างไรก็ตามแทนที่จะใช้/dev/disk1กับddคุณควรใช้/dev/rdisk1ดังนี้:

sudo dd if=/dev/rdisk1 of=/path/to/backup.img bs=1m

และในการกู้คืนเพียงแค่สลับพารามิเตอร์if(ไฟล์อินพุต) และof(ไฟล์เอาต์พุต):

sudo dd if=/path/to/backup.img of=/dev/rdisk1 bs=1m

หรือด้วยgzip, เพื่อประหยัดพื้นที่จำนวนมาก:

sudo dd if=/dev/rdisk1 bs=1m | gzip > /path/to/backup.gz

และเพื่อคัดลอกภาพกลับสู่ SD:

gzip -dc /path/to/backup.gz | sudo dd of=/dev/rdisk1 bs=1m

สำหรับข้อมูลเพิ่มเติมดูหน้าวิกินี้


1
ฉันคิดว่านี่เป็นคำตอบที่มีประสิทธิภาพที่สุดและโหวตให้กับมันขอบคุณ @Alex Coplan
bosch

อย่างไรก็ตามฉันกำลังมองหาเครื่องมือ GUI ที่เข้าใจผิดสำหรับ MacOS (ตามที่ผู้ใช้ Windows มี) และไม่มีความเสี่ยงในการทำงานและฉันพบ "SD Clone" จาก Two Canoes (ซึ่งฉันเชื่อใจในฐานะผู้ใช้ WinClone) มันค่อนข้างใหม่ -2016- และมีราคาแพง (100 $ พร้อมการทดลอง 2 สัปดาห์) แต่ดูเหมือนว่าจะมุ่งสู่ RasPi ดังนั้นฉันจะลองทันทีและแจ้งให้คุณทราบในความคิดเห็นใหม่
บ๊อช

3
เมื่อกลับมารับมือให้ถอนการเชื่อมต่อการ์ด SD ของคุณหากคุณได้รับข้อความต่อไปนี้: "ทรัพยากรไม่ว่าง"
Spipau

26

คุณสามารถรันคำสั่งนี้จาก Linux PC ของคุณด้วยพื้นที่มากมาย:

ssh root@raspberrypi gzip -c /dev/mmcblk0 > img.gz

คุณจะต้องสร้างคีย์. ssh และคัดลอกส่วนid_XXX.pubที่/root/.ssh/authorized_keysเกินไป

เป็นไปได้ที่จะมีปัญหากับระบบไฟล์เนื่องจากเป็นการสำรองข้อมูลสด แต่ถ้าราสเบอร์รี่ Pi ของคุณไม่ยุ่งจริง ๆ มักจะเป็นปกติ

อาจจะเร็วกว่าในการบีบอัดข้อมูลบนพีซีเช่นนี้:

ssh root@raspberrypi dd if=/dev/mmcblk0 | gzip -c > img.gz

1
หรือด้วย sudo 'ssh pi @ raspberry sudo dd if = / dev / mmcblk0 | gzip -c> raspberry.img.gz '
cupakob

และเป็นข้อมูลอ้างอิงสำหรับการเข้าสู่ระบบแบบไม่ใช้รหัสผ่านraspberrypi.stackexchange.com/a/1687/22603
Paolo

2
ฉันยังพบว่ามีประโยชน์ในการเพิ่มขนาดบล็อกและใช้เป็น pv เพื่อตรวจสอบความคืบหน้า ssh root@raspberry dd if=/dev/mmcblk0 bs=1M | pv | gzip -c > img.gz
เปาโล

นี่เป็นคำตอบที่ยอดเยี่ยมหากคุณไม่ต้องการยกเลิกการต่อเชื่อมการ์ด SD ของคุณและใช้งานได้กับ macOS นี่คือบรรทัดคำสั่งที่ฉันใช้: ssh pi @ raspberrypi sudo dd if = / dev / mmcblk0 | xz -9 -e --threads = 4> sd.img.xz ไม่ต้องการสร้างคีย์ SSH ด้วยวิธีนี้ สามารถกด Ctrl-T เพื่อดูความคืบหน้า
เรียนรู้ OpenGL ES

ทำไมgzip ถึงเลือกใช้คำสั่งdd
IgorGanapolsky

18

หากคุณใช้ Windows:

  1. ดาวน์โหลด Win32 Disk Imager

  2. สร้างเส้นทางไฟล์ที่คุณต้องการใช้เพื่อบันทึกภาพของคุณ (ฉันใช้ C: \ RasPi_Bkp)

  3. เรียกใช้ Win32 Disk Imager

  4. เรียกดูไปยังตำแหน่งไฟล์สำรองของคุณและพิมพ์ชื่อไฟล์

  5. คลิกบันทึก

  6. ตรวจสอบให้แน่ใจว่าอุปกรณ์ที่แสดงในรายการดรอปดาวน์ทางด้านขวาของพา ธ ไฟล์เป็นอุปกรณ์ที่คุณต้องการสำรองข้อมูล

Win32 Disk อิมเมจในการทำงาน

  1. คลิก "อ่าน"

  2. รอ.


1
ขอบคุณ - แค่งาน (ผิดปกติเมื่อฉันเสียบการ์ด SD ของฉันลงในพีซีหลักของฉัน Windows 7 ไปที่ BSOD โชคดีที่มันสามารถใช้งานกับเครื่องอื่นได้)
Jon Egerton

สำหรับใครก็ตามที่มีปัญหากับ Win32 Disk Imager อย่างที่ฉันมีให้ลอง Rufus
DavidB

9

หากโปรแกรมของคุณอยู่ใน pid userid ไม่มีเหตุผลที่จะสำรองระบบไฟล์ทั้งหมดตามที่แนะนำ สิ่งที่ฉันทำคือเพียงแค่สำรอง ID เดียว ฉันรันคำสั่ง:

tar -czf pi.tgz *

จากไดเรกทอรีบ้านของ pi ซึ่งสร้างไฟล์ pi.tgz ซึ่งมีไฟล์และไดเรกทอรีทั้งหมดที่อยู่ในนั้น (ยกเว้นไฟล์ที่ซ่อนอยู่) จากนั้นฉันก็สแกนไฟล์นี้ไปยังคอมพิวเตอร์ linux เครื่องอื่น แต่คุณสามารถ ftp หรือส่งอีเมลไปที่อื่นเพื่อความปลอดภัย ... ทุกอย่างที่ติดไว้ในคอมพิวเตอร์เครื่องอื่น

สิ่งนี้จะสร้างไฟล์ที่เล็กกว่าสำหรับการสำรองข้อมูลของคุณ

เป็นกังวลเกี่ยวกับแพคเกจเพิ่มเติมทั้งหมดที่คุณติดตั้งไปพร้อมกันไหม? สร้างสคริปต์ที่จะทำการติดตั้งให้คุณอีกครั้งหากคุณต้องการสร้างการ์ด SD ใหม่และเก็บไว้ในโฮมไดเร็กทอรี่ของที่อื่น (ฉันมีไดเรกทอรี ~ / bin สำหรับสิ่งต่าง ๆ ) เตรียมคำสั่งทั้งหมดที่คุณต้องใช้ในการติดตั้งเพื่อนำคุณกลับสู่ตำแหน่งที่คุณต้องการระบบจะบันทึกการเปลี่ยนแปลงของคุณและช่วยให้คุณสามารถสร้างการ์ด SD ใหม่ได้อย่างรวดเร็ว มันจะมีคำสั่งในรูปแบบของ:

apt-get --assume-yes install apache2 mysqld mysql php5 php-pear

เริ่มต้นด้วย

apt-get update
apt-get --assume-yes upgrade

เพื่อให้ระบบของคุณถูกนำไปสู่ระดับปัจจุบันก่อนที่คุณจะเริ่มเพิ่มแพ็คเกจของคุณ

เนื่องจากสิ่งนี้จะอยู่ในไฟล์ pi.tgz ของคุณคุณจะมีเมื่อคุณต้องการ


โปรดทราบว่าสำหรับการปั่น Raspbmc การอัพเกรด apt-get นั้นเป็นที่ทราบกันดีว่าทำให้เกิดปัญหา มันสำหรับฉันและเห็นได้ชัดว่ามันเป็นปัญหาที่รู้จักกัน
Cristi Diaconescu

สิ่งนี้สามารถทำได้จากระยะไกลเช่น: ssh pi@raspberrypi.local "sudo tar -cvp ~ / *" | xz -9 -e --threads = 4> raspbian.home.tar.xz
เรียนรู้ OpenGL ES

8

ฉันใช้ Raspbian และใช้ dd และ cron เพื่อทำการสำรองข้อมูลอัตโนมัติของการ์ด SD ของฉันไปยังไดรฟ์ USB ภายนอกของฉัน

มันเป็นทางออกที่ง่ายจริงๆ มันทำงานสัปดาห์ละครั้งเวลาตีสองในเช้าวันจันทร์และสร้างภาพของการ์ด SD

ฉันเขียนสคริปต์ที่ปิดบริการเช่น lighttpd และ cron เพื่อลดความเสี่ยงของ SD card ที่ถูกเขียนลงกลางการสำรองข้อมูลจากนั้นจะเรียก dd ก่อนเริ่มบริการอีกครั้งเมื่อการสำรองข้อมูลเสร็จสิ้น

ฉันวางสคริปต์และคำแนะนำลงในบล็อกของฉันแล้วhttp://www.stuffaboutcode.com/2012/08/raspberry-pi-auto-backups.html


1
นี่อาจเป็นโซลูชันที่สมเหตุสมผลหากคุณไม่สามารถถอดปลั๊กการ์ดได้ อย่างไรก็ตามddการsd?ติดตั้งอุปกรณ์ที่มีพาร์ติชั่นติดตั้งนั้นไม่ได้ปลอดภัยนัก
yo '

คุณอาจจะถูก แต่ฉันไม่ได้มีปัญหา
Martin O'Hanlon

4

สำหรับ Debian คุณสามารถใช้ dd และ tar การทำเช่นนี้จะเป็นการคัดลอกการ์ด SD ของคุณอย่างสมบูรณ์และต้องการพื้นที่เก็บข้อมูลภายนอก (ไปยังการ์ด SD) ซึ่งอาจเป็น USB หรือไดรฟ์เครือข่ายที่ติดตั้งอยู่

dd if=/dev/sdd of=yourbackupfilenamehere.dd
tar zcvf yourbackupfilenamehere.dd.tar.gz

ด้วย / dev / sdd เป็นที่ตั้งของการ์ด SD ของคุณและofเป็นชื่อไฟล์เอาต์พุต


นี่มีข้อ จำกัด ที่ต้องมีบางแห่งในการเขียนภาพถึง (ซึ่งมีขนาดใหญ่พอที่จะถ่ายภาพได้) สมมุติว่ามันยังหมายถึงข้อมูลขนาดใหญ่ io ผ่านฮับ usb - จะใช้เวลาสักครู่?
Jon Egerton

จริง แต่มันเป็นคำถามที่ต้องการ: "ฉันต้องการภาพเต็มรูปแบบของการ์ด SD"
Forkrul โจมตี

1
ทำไมคุณถึงสร้าง.tar.gzไฟล์ของ dd-file การรันgzipหรือbzip2บนไฟล์ dd โดยตรงดีกว่าไหม?
Anders

อะไร/ dev / SDDหมายความว่าอย่างไร ฉันมี/dev/mmcblk0p1และ/dev/mmcblk0p2จดทะเบียน ...
IgorGanapolsky

4

โชคดีที่ Raspberry Pi สามารถสร้างการสำรองข้อมูลของตัวเองซึ่งเป็นอิสระจากระบบปฏิบัติการหลักที่ใช้ในการเข้าถึง Raspberry (Windows, Linux, Mac) dd, tar และ rsync เป็นเครื่องมือต่าง ๆ ในการสร้างการสำรองข้อมูลบน Linux การสำรองข้อมูลทุกประเภทเหล่านี้สามารถสร้างขึ้นได้โดยการเรียกใช้ Pi โดยจะเป็นการหยุดงานที่ยุ่งทั้งหมดเช่น mysql, smb, dlna, owncloud, seafile, apache และคณะก่อนที่จะสร้างการสำรองข้อมูล มีคำถามอื่นที่อธิบายวิธีการอย่างละเอียดและอธิบายวิธีแก้ไขที่เป็นไปได้ที่นี่


3

หาก Raspberry Pi ของคุณเชื่อมต่อกับเครือข่ายและคุณต้องการการสำรองข้อมูลอัตโนมัติแบบทันทีอาจเป็นวิธีที่ง่ายที่สุดคือ Bittorent Sync - ติดตั้งง่ายและทำงานได้อย่างราบรื่นและเสถียรบน Pi และแพลตฟอร์มอื่น ๆ


ฉันต้องการโฆษณาที่การซิงค์และการสำรองข้อมูลเป็นสองสิ่งที่แตกต่างกัน
Pitto

3

ไม่น่ากลัวอีกต่อไปซิงค์ซิงค์กลาส ... เริ่มต้นใช้งาน SD Card Copier ที่เป็นมิตร

Raspbian เวอร์ชั่นใหม่ที่เรียกว่าstretchมีแอพที่เป็นมิตรสำหรับผู้เริ่มต้นชื่อว่า SD Card Copier คุณไม่จำเป็นต้องใช้เครื่องมือ Linux เช่น dd เป็นต้นสามารถคัดลอกการ์ดขนาดใหญ่ไปยังการ์ดขนาดเล็กได้

ทำอย่างไร

คุณเริ่มต้นด้วยไอคอนเมนูแอป GUI RPi ที่มุมซ้ายบนไปที่อุปกรณ์เสริมจากนั้นคลิก SD Card Copier

สิ่งที่คุณต้องทำคือเพียงไม่กี่คลิกภายใน GUI!

หลังจากที่คุณทำการ์ด SD สำรองคุณสามารถใช้ Windows Disk Manager เพื่ออ่านอิมเมจของการ์ดไปยังไฟล์ Windows และเก็บไว้ในไดเรกทอรี Windows ใด ๆ วิธีนี้คุณต้องการเพียงการ์ด SD แบบกายภาพและจัดเก็บภาพหลายรุ่นในพีซี Windows

แน่นอนคุณสามารถใช้การ์ดสำรองเป็นสำเนาทำงานเพื่อแทนที่การ์ดเดิมของคุณซึ่งตอนนี้กลายเป็นบัตรหลักของคุณและล็อคไว้ในที่ปลอดภัย


1

ขณะค้นหาเพื่อสร้างภาพของการ์ด SD ที่กำหนดเองของฉันฉันพบโพสต์นี้ คำตอบที่ดีที่สุดที่นี่กล่าวถึงการถ่ายภาพการ์ด SD แต่สิ่งที่ฉันกำลังมองหาที่จำเป็นต้องลดขนาดระบบไฟล์เพื่อให้ภาพมีขนาดเล็กที่สุด ฉันสิ้นสุดการสร้างเครื่องมือของตัวเองเพื่อทำสิ่งนี้และร่างกระบวนการที่: https://raspberrypi.stackexchange.com/a/37899/32585


1

นี่คือ 3 ตัวเลือก:

  1. ใน Raspbian เวอร์ชันล่าสุดมีเครื่องมือที่แปลงระบบปฏิบัติการและไฟล์เป็นไฟล์. img ที่คุณสามารถวางลงบน USB หรือพีซีของคุณได้

  2. เสียบ SD การ์ดของคุณเข้ากับพีซี Windows และเริ่มต้น Win32 Disk Imager (ติดตั้งที่นี่หากคุณยังไม่ได้ทำการติดตั้ง)

    ใน (1) พิมพ์ชื่อไฟล์ & ตำแหน่งสำหรับไฟล์รูปภาพ athe ใน (2) เลือกอักษรระบุไดรฟ์ของการ์ด SD ของคุณ จากนั้นกด 3 สิ่งนี้จะเหมือนกับตัวเลือกที่ 1

  3. เสียบ USB แท่งกับ Pi ของคุณและคัดลอกไฟล์สำคัญใด ๆ



0

ฉันสร้างยูทิลิตี้เพื่อสำรองราสเบอร์รี่ปี่ถ้าคุณเป็นลินุกซ์ นี่จะทำให้รูปภาพราสเบอรี่ของคุณเล็กลงดังนั้นคุณสามารถใส่. iso ลงในการ์ด SD ขนาดเล็กได้: RaspberryPiShrink

สิ่งนี้จะเรียกใช้สคริปต์ python ที่จะแนะนำคุณตลอดกระบวนการ เพียงเสียบการ์ด microSD ของคุณเข้ากับ Ubuntu, Linux Mint หรือ Debain computer แล้วทำตามคำแนะนำในเทอร์มินัล


-2

ฉันใช้ usbit สำหรับ Windows เป็นเครื่องมือเดียวที่ฉันสามารถหาได้ซึ่งจะช่วยให้คุณสามารถเปลี่ยนจากการ์ด SD ขนาดใหญ่เป็นการ์ดขนาดเล็กกว่าได้ ทั้งหมดที่ฉันทำคือทำเครื่องหมายต่อไปนี้ในหน้าตัวเลือก ละเว้นการตรวจสอบขนาดและตัดภาพขนาดใหญ่

สิ่งนี้ทำให้ฉันสามารถสลับภาพ OpenELEC และXbianของฉันจากการ์ด SD 16 GB class 4 เป็นการ์ด 8 GB class 10 ได้

มันง่ายกว่าการปรับขนาดตารางพาร์ทิชันเป็นต้น


2
คุณเคยตรวจสอบไฟล์หรือไม่ ฉันหมายถึงfind -type f -exec md5sum {} \; > filelist.txtอะไร
Avio

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