Linux
不管您是使用哪一種 Linux 發行版,備份與還原 MicroSD 卡的步驟都是一樣的。首先將 MicroSD 卡插進電腦中,使用 lsblk
檢查一下磁碟的狀況:
lsblk
輸出會類似這樣:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 400M 0 part ├─sda2 8:2 0 300M 0 part /boot/efi ├─sda3 8:3 0 128M 0 part ├─sda4 8:4 0 200G 0 part ├─sda5 8:5 0 141.6G 0 part ├─sda6 8:6 0 1.9G 0 part [SWAP] ├─sda7 8:7 0 28.4G 0 part └─sda8 8:8 0 93.1G 0 part / sdb 8:32 1 14.9G 0 disk ├─sdb1 8:33 1 60M 0 part /media/gtwang/boot └─sdb2 8:34 1 14.8G 0 part /media/gtwang/ad6203a1-ec50-4f44-a1c0-e6c3dd4c9
我們可以從磁碟的容量來辨識哪一個是 MicroSD 卡,以這裡的例子來說,我的 MicroSD 卡的容量大小是 16 GB,所以是 sdb
。
如果是直接使用電腦上的 MicroSD 卡插槽,有可能會有這樣的輸出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 400M 0 part ├─sda2 8:2 0 300M 0 part /boot/efi ├─sda3 8:3 0 128M 0 part ├─sda4 8:4 0 200G 0 part ├─sda5 8:5 0 141.6G 0 part ├─sda6 8:6 0 1.9G 0 part [SWAP] ├─sda7 8:7 0 28.4G 0 part └─sda8 8:8 0 93.1G 0 part / mmcblk0 179:0 0 14.9G 0 disk ├─mmcblk0p1 179:1 0 60M 0 part /media/gtwang/boot └─mmcblk0p2 179:2 0 14.8G 0 part /media/gtwang/ad6203a1-ec50-4f44-a1c0-e6c3
這裡的 mmcblk0
就是 MicroSD 卡。
在 Linux 系統中可以使用 dd
指令來備份 MicroSD 卡:
sudo dd bs=1M if=/dev/sdb of=/home/gtwang/backup.img
if
參數所指定的 /dev/sdb
就是我們剛剛查到的 MicroSD 卡,而 of
參數所指定的 /home/gtwang/backup.img
則是要儲存備份影像檔的路徑與檔案名稱,請依照自己的狀況修改。
要從備份檔回復 MicroSD 卡的話,也是用 dd
指令:
sudo dd bs=1M if=/home/gtwang/backup.img of=/dev/sdb
把 if
與 of
對調就會變成回復的動作,當然這個動作就會把原本 MicroSD 卡中的所有資料覆蓋掉,執行前請確認 SD 卡中的資料不會再使用了。
另外我們也可以配合 gzip
將備份的影像檔壓縮,這樣可以節省備份硬碟的空間,再使用 date
自動產生日期放在檔名中,讓備份檔更好辨識:
sudo dd bs=1M if=/dev/sdb | gzip > /home/gtwang/image-`date +%d%m%y`.gz
經過壓縮的備份影像檔如果要回復的話,就先用 gzip
解壓縮,再給 dd
寫入 MicroSD 卡即可:
sudo gzip -dc /home/gtwang/image.gz | dd bs=1M of=/dev/sdb
這樣使用壓縮的影像檔進行 MicroSD 卡的備份,整個流程也是兩行指令就可以完成,很方便。
wang
G. T. Wang 大大想請教下
Read檔案時備份出來的與記憶卡大小一樣大,如何做壓縮成如再Raspberry pi 下載的iso檔案一樣變小呢?
感謝