Làm cách nào để sao lưu Raspberry Pi?


297

Tôi đã viết chương trình cho Raspberry Pi của tôi (chạy Raspbian) trong vài tuần nay và muốn đảm bảo rằng tôi bảo vệ công việc tôi đã làm.

Làm cách nào để sao lưu các tập tin tôi đã tạo?

Tôi có thể chỉ cần cắm thẻ SD vào PC Windows (XP hoặc 7) của mình và sao chép nó vào ổ cứng hoặc thẻ SD khác không?


6
Tôi có PC chạy cả Ubuntu và Windows (XP & 7), nhưng tôi hy vọng hầu hết mọi người sẽ quan tâm đến câu trả lời của Windows. Tôi sẽ chỉnh sửa câu hỏi để làm rõ điều đó.
Steve Robillard

7
rsync từ Raspi đến máy tính của bạn?
Alex L

41
Đối với mã, bạn cũng có thể muốn xem xét sử dụng phần mềm kiểm soát phiên bản phân tán như githoặc hg, theo cách đó, bạn không chỉ có các bản sao mã của mình ở nhiều nơi mà còn có lịch sử đầy đủ về cách mã đó đã thay đổi.
Đánh dấu gian hàng

4
@MarkBooth Tôi không hiểu tại sao cần có DVCS qua VCS nếu chúng tôi chỉ xem xét việc có thể truy xuất mã sau này. Heck, thậm chí còn dễ dàng hơn vì bạn sử dụng số sửa đổi không cam kết băm để xác định một trạng thái cụ thể. Học CVCS như Subversion không phải là một khoản đầu tư nhiều thời gian (như tôi nhớ lại ... mặc dù đó là một thời gian rất rất lâu trước đây). Vâng, chuyển sang Git là một chút đáng sợ vào thời điểm đó, nhưng tôi chưa bao giờ nhìn lại.
Steven Lu

1
Nhận xét không phải là một nơi tốt cho loại thảo luận này @StevenLu, chúng ta nên đưa nó vào Raspberry Pi Chat .
Đánh dấu gian hàng

Câu trả lời:


294

Nếu bạn muốn lưu giữ tất cả dữ liệu, có thể bạn sẽ phải tạo một hình ảnh đĩa. Hơn nữa, Windows không thể nhận ra các hệ thống tệp Linux điển hình, do đó bạn có thể thậm chí không thể xem các tệp của mình khi bạn cắm thẻ SD.

Tạo một hình ảnh đĩa sẽ bảo vệ không chỉ các tệp mà cả cấu trúc hệ thống tệp và khi bạn quyết định flash thẻ SD mới, bạn sẽ có thể chỉ cần cắm nó vào và nó sẽ hoạt động.

Linux

Trên Linux, bạn có thể sử dụng ddcông cụ tiêu chuẩn :

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

/dev/sdxThẻ SD của bạn ở đâu

Mac

Trên Mac, bạn cũng có thể sử dụng ddcông cụ tiêu chuẩn với cú pháp hơi khác:

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

/dev/rdiskxThẻ SD của bạn ở đâu

(sử dụng ndisk là thích hợp hơn vì nó là thiết bị thô - nhanh hơn)

Để tìm ra đĩa nào thiết bị của bạn gõ diskutil listvào dấu nhắc lệnh - đồng thời, bạn có thể cần phải root; để làm loại này sudo -svà nhập mật khẩu của bạn khi được nhắc.

các cửa sổ

lựa chọn 1

Trên Windows, bạn có thể sử dụng quy trình ngược mà bạn đã sử dụng khi flash thẻ SD.

Bạn có thể sử dụng Win32 Disk Imager , đây là công cụ ưa thích để flash thẻ SD của Foundation. Chỉ cần nhập tên tệp (vị trí và tên của tệp hình ảnh dự phòng sẽ được lưu), chọn thiết bị (thẻ SD) và nhấn đọc:

Hình ảnh đĩa Win32

Tất nhiên, bạn cũng có thể sử dụng RawWrite , ddcho Windows hoặc các công cụ tương tự, quá trình này khá giống nhau.

Tùy chọn 2

Nếu bạn không muốn sao lưu toàn bộ hệ thống của mình, nhưng chỉ các tệp cụ thể, tôi khuyên bạn nên kết nối với Raspberry Pi thông qua SFTP và sao chép các tệp vào máy tính cục bộ của bạn (Bạn có thể sử dụng ứng dụng khách WinScp ). Nếu bạn đã bật SSH, SFTP thường không yêu cầu cấu hình đặc biệt ở phía Raspberry Pi.

Một tùy chọn khác là sao chép các tệp vào hệ thống từ xa bằng rsync .

Bạn cũng có thể cài đặt trình điều khiển đặc biệt để Windows của bạn có thể đọc các exthệ thống tệp (và do đó sẽ có thể đọc toàn bộ thẻ SD), chẳng hạn như ext2fsdnhưng có lẽ không đáng để bỏ công sức.


Vì hình ảnh sẽ có cùng kích thước với thẻ SD của bạn, bạn có thể muốn nén nó. Điều này có thể đạt được chỉ bằng cách sử dụng công cụ nén yêu thích của bạn, chẳng hạn như gzip, 7zip, WinZip, WinRar ...


1
+1 nói chung, mặc dù rsyncthông qua sshcó lẽ sẽ dễ dàng hơn. Ngoài ra, đối với mã nguồn - như Mark booth đã nêu - bạn hoàn toàn nên sử dụng DVCS
Tobias Kienzler

1
Nếu thẻ SD của tôi bị hỏng, tôi sẽ cài đặt hình ảnh này vào thẻ SD mới như thế nào?
Flipper

2
Liên kết của bạn đến Win32 Disk Imager xuất hiện mà không có bản tải xuống nào. Tôi giả sử nó giống như sourceforge.net/projects/win32diskimager ?
Yamikuronue

2
ồ, tôi không thể phân biệt được nếu "đọc" trong bức ảnh đó có nghĩa là "đọc tệp hình ảnh" hay "đọc PHẦN THAM GIA VÀ VIẾT NÓ VÀO tệp hình ảnh" .... tương tự cho "ghi" ... đó là gui cần được vệ sinh Một cái gì đó như "Hình ảnh -> Thiết bị" và "Thiết bị -> Hình ảnh" (hoặc một sự thay thế tốt hơn)
Olivier Dulac

4
Win32DiskImager dường như chỉ có thể xử lý các phân vùng mà Windows nhận ra. Tôi đã có rất ít may mắn với nó nhân bản thẻ SD Noobs / Raspbian. Tìm thấy chương trình phần mềm miễn phí này: hddguru.com/software/HDD-Raw-Copy-Tool . Nó hoạt động giống như một cơ duyên để tạo một bản sao từng byte của thẻ SD trong Windows (Tôi đã sử dụng nó với Win7 64 bit), bất kể sơ đồ và nội dung phân vùng.
techie007 3/2/2015

156

Nếu bạn đang chạy Linux thì bạn có thể sử dụng ddlệnh để tạo bản sao lưu đầy đủ của hình ảnh:

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

hoặc để nén:

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

sdxThẻ SD của bạn ở đâu

Để khôi phục bản sao lưu, bạn đảo ngược các lệnh:

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

hoặc khi nén:

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

3
Tôi thực sự khuyên bạn nên sử dụng gzip - Tôi đã sao lưu một số phân vùng máy tính để bàn ngày hôm nay và phân vùng 20Gb đã được lưu trong 8,9Gb.
Alex Chamberlain

2
bzip2 sẽ nén tốt hơn và có sẵn trên tất cả các hệ thống Linux. Trên các hệ thống Linux mới hơn, xz sẽ nén tốt hơn nữa. Bộ giải nén cho chúng là bunzip2 và unxz tương ứng.
Arne

4
@Arne Tôi không mong đợi một sự khác biệt như vậy! Tuy nhiên, điều đó dường như là thấp hơn nhiều so với mối quan tâm của tôi . (Btw, thật tuyệt khi bạn trả lời một nhận xét gần 1 tuổi và bạn nhận được phản hồi sau 2 phút :))
yo '

5
Đừng phạm sai lầm (như tôi vừa làm) khi để lại bs=1Mhoặc một số tham số tương tự. Kích thước khối mặc định 512 byte sẽ giết chết hiệu suất sao chép.
Steven Lu

1
@Arne Tôi đã thử sử dụng bzip2 ngay bây giờ và có lẽ nó sẽ phù hợp nếu tôi sao lưu từ thẻ SD Class 4 của mình, nhưng trên thẻ 8GB UHS 1 SanDisk 8GB này (giá 12 đô la vào tuần trước), nó đã tối đa hóa một cây cầu Ivy Chủ đề CPU và giới hạn tốc độ đọc từ thẻ xuống 6MB / s (dd với Ctrl + T báo cáo 4.2MB / s). Điều này không lý tưởng vì tôi có thể sử dụng gzip với thẻ này và đọc nó với tốc độ nhanh hơn nhiều (dd báo cáo 18MB / s). Cấp, nếu hầu hết các đĩa là không gian trống, thì đọc trong những khoảng trống đó sẽ tăng tốc. Nhưng tôi sẽ phải xem sự khác biệt trong kích thước tệp kết quả.
Steven Lu

31

Bên cạnh các bản sao lưu cấp khối, có hai cách tiếp cận phổ biến để xử lý các nguồn: lưu trữ liên tục (1) hoặc sử dụng hệ thống kiểm soát sửa đổi (2).

Chúng ta sẽ sử dụng dòng lệnh (bất kỳ thiết bị đầu cuối cục bộ hoặc kết nối SSH nào với máy Raspberry Pi), phải không?

1. Lưu trữ

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 (ví dụ 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
Cũng đáng lưu ý rằng mọi người có thể thiết lập repos trần trên các máy khác trên mạng của họ và đẩy từ Raspberry Pi của họ đến đó, thay vì phải thiết lập tài khoản github, khóa ssh, v.v. và đẩy đến đó.
Đánh dấu gian hàng

2
Đó là một khởi đầu tốt cho câu trả lời thực sự. Mã cần phải được quản lý dưới sự kiểm soát phiên bản nếu muốn có thể duy trì nó. Kiểm soát phiên bản cho phép theo dõi các thay đổi, hiểu lịch sử thay đổi, quản lý các nhánh khác nhau (ví dụ: ổn định so với dev) và hợp nhất giữa chúng. Nhưng nó không phải là bản sao lưu mỗi se. Tuy nhiên, người ta chỉ cần sao lưu kho lưu trữ (ví dụ: thư mục .git cho Git). Kiểm tra các diễn đàn Linux / Unix, wiki, stackexchanges, v.v. để biết cách sao lưu các thư mục trong Linux. Lưu ý: Tôi không coi github là bản sao lưu. Và bạn không muốn xuất bản mọi thứ để github!
Huygens

29

Trên máy Mac, bạn không muốn sử dụng /dev/diskn. /dev/rdisknThay vào đó, bạn nên sử dụng , trong đó n là số mà HĐH sử dụng để nhận dạng thẻ SD của bạn. Điều này làm giảm thời gian cần thiết để sao chép một lượng lớn.

Vì vậy, để quá trình sao lưu tối ưu trên máy Mac, tôi khuyên bạn nên làm như sau:

Chạy diskutil listvà tìm đĩa tương ứng với thẻ SD của Raspberry Pi của bạn:

$ 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

Rõ ràng /dev/disk1là thẻ SD 8GB của tôi, tên phân vùng Linux cũng là một chút manh mối.

Tuy nhiên, thay vì sử dụng /dev/disk1với dd, bạn nên sử dụng /dev/rdisk1, như vậy:

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

Và để khôi phục nó, chỉ cần trao đổi các tham số if(tệp đầu vào) và of(tệp đầu ra):

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

Hoặc, với gzip, để tiết kiệm một lượng không gian đáng kể:

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

Và, để sao chép hình ảnh trở lại vào SD:

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

Để biết thêm thông tin, xem trang wiki này.


1
Tôi thấy đây là câu trả lời hiệu quả nhất và đã bình chọn cho nó, cảm ơn @Alex Coplan.
bosch

Tuy nhiên, tôi đang tìm kiếm một công cụ GUI chống lừa đảo cho MacOS (như người dùng Windows có) và không gặp rủi ro dd và tôi đã tìm thấy "SD Clone" từ Two Canoes (mà tôi tin tưởng vì tôi là người dùng WinClone). Nó khá mới -2016- và đắt tiền (100 đô la với bản dùng thử 2 tuần) nhưng dường như hướng đến RasPi vì vậy tôi sẽ thử ngay bây giờ và cho bạn biết trong một nhận xét mới.
bosch

3
Khi đối phó lại, hãy ngắt kết nối Thẻ SD của bạn nếu bạn nhận được thông báo sau: "Tài nguyên bận"
Spipau

26

Bạn có thể chạy lệnh này từ PC Linux của bạn với nhiều dung lượng:

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

Là điều kiện tiên quyết, bạn cần phải tạo các khóa .ssh và sao chép id_XXX.pubqua /root/.ssh/authorized_keys.

Có thể có vấn đề với hệ thống tệp vì nó là bản sao lưu trực tiếp, nhưng nếu Raspberry Pi của bạn không thực sự bận thì thường sẽ ổn.

Có lẽ nhanh hơn để thực hiện nén trên PC như thế này:

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

1
hoặc với sudo 'ssh pi @ raspberry sudo dd if = / dev / mmcblk0 | gzip -c> raspberry.img.gz '
cupakob

và làm tài liệu tham khảo cho đăng nhập không cần mật khẩu, raspberrypi.stackexchange.com/a/1687/22603
Paolo

2
Tôi cũng thấy hữu ích để thêm kích thước khối và, vì nó có sẵn, sử dụng pv để kiểm tra tiến độ. ssh root@raspberry dd if=/dev/mmcblk0 bs=1M | pv | gzip -c > img.gz
Paolo

Đây là một câu trả lời tuyệt vời nếu bạn không muốn ngắt kết nối thẻ SD của mình và cũng hoạt động cho macOS. Đây là dòng lệnh tôi đang sử dụng: ssh pi @ raspberrypi sudo dd if = / dev / mmcblk0 | xz -9 -e --threads = 4> sd.img.xz. Không yêu cầu tạo khóa SSH theo cách này. Ctrl-T có thể được nhấn để xem tiến trình.
Tìm hiểu OpenGL ES

Tại sao gzip thích hơn lệnh dd ?
IgorGanapolsky

18

Nếu bạn đang sử dụng Windows:

  1. Tải xuống Win32 Đĩa Imager.

  2. Tạo đường dẫn tệp bạn muốn sử dụng để lưu hình ảnh của bạn. (Tôi sử dụng C: \ RasPi_Bkp)

  3. Chạy trình quét đĩa Win32

  4. Duyệt đến vị trí đường dẫn tệp sao lưu của bạn và nhập tên tệp.

  5. Nhấp vào để lưu

  6. Đảm bảo rằng thiết bị hiển thị trong phần thả xuống bên phải đường dẫn tệp của bạn là thiết bị bạn muốn sao lưu.

Hình ảnh đĩa Win32 đang hoạt động

  1. Nhấp vào "Đọc"

  2. Chờ đợi.


1
Cảm ơn - chỉ là công việc. (Nhưng kỳ lạ, khi tôi cắm thẻ SD của tôi vào máy tính chính của tôi, Windows 7 đi vào BSOD May mắn thay tốt đẹp của nó trên máy tính khác!.)
Jon Egerton

Đối với bất kỳ ai gặp rắc rối với Win32 Disk Imager như tôi có, hãy thử Rufus.
DavidB

9

Nếu các chương trình của bạn đều nằm trong pi userid, thực sự không có lý do gì để sao lưu toàn bộ hệ thống tập tin, như đang được đề xuất. những gì tôi làm là chỉ cần sao lưu id duy nhất. Tôi chạy lệnh:

tar -czf pi.tgz *

từ thư mục chính của pi, tạo tệp pi.tgz, chứa tất cả các tệp và thư mục chứa trong đó (không bao gồm các tệp ẩn). Sau đó tôi chuyển tệp này sang máy tính linux khác, nhưng bạn có thể gửi nó hoặc gửi e-mail ở đâu đó để giữ an toàn ... bất cứ thứ gì đưa nó vào máy tính khác.

Điều này tạo ra một tệp nhỏ hơn nhiều để sao lưu của bạn.

Lo lắng về tất cả các gói bổ sung bạn đã cài đặt trên đường đi? Tạo một tập lệnh sẽ thực hiện lại các cài đặt đó cho bạn nếu bạn cần tạo lại thẻ SD của mình và giữ nó trong thư mục chính của pi ở đâu đó. (Tôi có một thư mục ~ / bin cho những thứ như vậy). Có tất cả các lệnh bạn cần để thực hiện cài đặt để đưa bạn trở lại vị trí bạn muốn. Nó ghi lại các thay đổi của bạn và cho phép bạn nhanh chóng xây dựng thẻ SD mới. Nó sẽ chứa các lệnh ở dạng:

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

Bắt đầu với

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

để hệ thống của bạn cũng được đưa lên mức hiện tại trước khi bạn bắt đầu thêm các gói của mình.

Vì đây sẽ là trong tệp pi.tgz của bạn, bạn sẽ có nó khi bạn cần.


Lưu ý rằng đối với spin-off Raspbmc, nâng cấp apt-get rõ ràng là gây ra sự cố. Nó đã làm cho tôi, và rõ ràng đó là một vấn đề được biết đến .
Cristi Diaconescu

Điều này cũng có thể được thực hiện từ xa, ví dụ: ssh pi@raspberrypi.local "sudo tar -cvp ~ / *" | xz -9 -e --threads = 4> raspbian.home.tar.xz
Tìm hiểu OpenGL ES

8

Tôi chạy Raspbian và sử dụng dd và cron để sao lưu tự động thẻ SD vào ổ USB ngoài.

Đó là một giải pháp thực sự đơn giản. Nó chạy mỗi tuần một lần vào lúc 2 giờ sáng vào thứ Hai và tạo ra hình ảnh của thẻ SD.

Tôi đã viết một kịch bản tắt các dịch vụ như lighttpd và cron, để giảm thiểu rủi ro thẻ SD được ghi vào giữa bản sao lưu, sau đó gọi dd, trước khi bắt đầu lại dịch vụ khi sao lưu xong.

Tôi đã đặt tập lệnh và một số hướng dẫn trên blog của mình, http: // www. Wareaboutcode.com/2012/08/raspberry-pi-auto-backups.html


1
Đây có thể là một giải pháp hợp lý nếu bạn không thể rút thẻ. Tuy nhiên, dding một sd?thiết bị có phân vùng được gắn không nghe có vẻ khá an toàn.
yo '

Có lẽ bạn đúng, nhưng tôi không có vấn đề gì.
Martin O'Hanlon

4

Đối với Debian bạn có thể sử dụng dd và tar. Điều này sẽ tạo một bản sao hoàn chỉnh của thẻ SD của bạn và sẽ yêu cầu bộ nhớ ngoài (sang thẻ SD), có thể được gắn USB hoặc ổ đĩa mạng.

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

Với / dev / sdd là vị trí của thẻ SD của bạn và oflà tên tệp đầu ra.


Điều này có giới hạn là cần một nơi nào đó để ghi hình ảnh (mặc dù nó cũng đủ lớn để chụp ảnh. Có lẽ nó cũng có nghĩa là một dữ liệu lớn io thông qua trung tâm usb - sẽ mất một lúc?
Jon Egerton

Đúng, nhưng đó là loại bắt buộc trong câu hỏi: "Tôi muốn có một hình ảnh đầy đủ của thẻ SD."
Forkrul Assail

1
Tại sao bạn tạo một .tar.gztệp của dd-file? Sẽ không tốt hơn nếu chỉ chạy gziphoặc bzip2trên tệp dd trực tiếp?
Anders

Không / dev / sdd có nghĩa là gì? Tôi có /dev/mmcblk0p1/dev/mmcblk0p2liệt kê ...
IgorGanapolsky

4

May mắn thay, Raspberry Pi có thể tự tạo một bản sao lưu độc lập với hệ điều hành chính được sử dụng để truy cập Raspberry (Windows, Linux, Mac). dd, tar và rsync là các công cụ khác nhau để tạo bản sao lưu trên Linux. Tất cả các loại sao lưu này có thể được tạo bởi Pi đang chạy với điều kiện nó dừng tất cả các tác vụ bận rộn như mysql, smb, dlna, owncloud, seafile, apache et al trước khi tạo bản sao lưu. Có một câu hỏi khác nhau trong đó cách tiếp cận được giải thích chi tiết hơn và một giải pháp khả thi được giải thích ở đây


3

Nếu Raspberry Pi của bạn được kết nối với mạng và bạn muốn sao lưu tự động nhanh chóng, có lẽ cách dễ nhất là Bittorent Sync - rất dễ cài đặt và chạy mượt mà và ổn định trên Pi và nhiều nền tảng khác.


Tôi chỉ muốn quảng cáo rằng Đồng bộ hóa và sao lưu là hai thứ khác nhau
Pitto

3

Không còn đáng sợ dd, đồng bộ hóa, tar, ..., Máy photocopy thẻ SD thân thiện với người mới bắt đầu

Phiên bản mới của Raspbian gọi là căng có một ứng dụng rất mới bắt đầu thân thiện gọi là SD Card photocopy. Bạn không cần phải sử dụng các công cụ Linux như dd, vv Nó thậm chí có thể sao chép các thẻ lớn sang các thẻ nhỏ.

Làm thế nào để làm nó

Bạn bắt đầu với biểu tượng menu ứng dụng GUI RPi ở góc trên cùng bên trái, đi đến Phụ kiện, sau đó nhấp vào Máy photocopy thẻ SD.

Tất cả bạn cần làm là một vài cú nhấp chuột trong GUI!

Sau khi tạo thẻ SD dự phòng, bạn có thể sử dụng Windows Disk Manager để đọc hình ảnh của thẻ vào tệp Windows và lưu trữ trong bất kỳ thư mục Windows nào. Bằng cách này, bạn chỉ cần một thẻ SD vật lý và lưu trữ nhiều phiên bản hình ảnh trong PC Windows.

Tất nhiên bạn chỉ có thể sử dụng thẻ dự phòng làm bản sao làm việc, để thay thế thẻ gốc, giờ trở thành thẻ chính của bạn và khóa nó ở nơi an toàn.


1

Trong khi tìm kiếm để tạo một hình ảnh của thẻ SD tùy chỉnh của tôi, tôi đã tìm thấy bài đăng này. Câu trả lời tốt nhất ở đây thảo luận về việc chụp ảnh thẻ SD, nhưng những gì tôi đang tìm kiếm yêu cầu thu nhỏ hệ thống tập tin để làm cho hình ảnh càng nhỏ càng tốt. Cuối cùng tôi đã tạo ra công cụ của riêng mình để làm điều này và phác thảo quá trình tại: https://raspberrypi.stackexchange.com/a/37899/32585


1

Dưới đây là 3 tùy chọn:

  1. Trong phiên bản mới nhất của Raspbian, có một công cụ chuyển đổi hệ điều hành và tệp của bạn thành tệp .img mà sau đó bạn có thể đặt vào USB hoặc PC của mình.

  2. Cắm thẻ SD của bạn vào PC Windows và khởi động Win32 Disk Imager (cài đặt tại đây nếu bạn chưa có.)

    Trong (1) nhập tên tệp & vị trí cho tệp hình ảnh. Trong (2), chọn ký tự ổ đĩa của thẻ SD của bạn. Sau đó nhấn 3. Điều này không giống như tùy chọn 1.

  3. Cắm thẻ USB vào Pi của bạn và sao chép mọi tệp quan trọng.



0

Tôi đã tạo một tiện ích để sao lưu pi mâm xôi của bạn nếu bạn là Linux. Điều này cũng sẽ thu nhỏ hình ảnh của pi mâm xôi của bạn, vì vậy bạn có thể đặt .iso trên thẻ SD nhỏ hơn: RaspberryPiShrink

Điều này sẽ chạy một kịch bản python sẽ đưa bạn qua quy trình. Chỉ cần cắm thẻ nhớ microSD vào máy tính Ubuntu, Linux Mint hoặc Debain và làm theo hướng dẫn trong thiết bị đầu cuối.


-2

Tôi đã sử dụng usbit cho Windows. Đây là công cụ duy nhất tôi có thể tìm thấy sẽ cho phép bạn trao đổi từ thẻ SD lớn hơn sang thẻ nhỏ hơn. Tất cả những gì tôi đã làm là đánh dấu vào phần sau trên trang tùy chọn; Bỏ qua kiểm tra kích thướccắt bớt hình ảnh quá khổ .

Điều này cho phép tôi hoán đổi hình ảnh OpenELEC và Xbian của mình từ thẻ SD loại 4 16 GB sang thẻ loại 10 GB 8 GB.

Nó dễ dàng hơn nhiều so với thay đổi kích thước bảng phân vùng, v.v.


2
Bạn đã bao giờ xác minh các tập tin? Ý tôi là find -type f -exec md5sum {} \; > filelist.txtsao?
Avio

2
Điều này không được đảm bảo để hoạt động, vì dữ liệu được lưu trữ trên nửa sau của đĩa bị hủy. Hơn nữa, bảng phân vùng bị hỏng.
Alex Chamberlain
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.