一、安裝所需工具程式
sudo apt-get update
sudo apt-get install dosfstools dump parted kpartx rsync
環境說明與準備:
Raspberry Pi 3 Linux raspberrypi 4.4.21-v7+ x1
SD容量:32G x1 、16Gx1
外接式USB 16G
二、進行備份
進行備份工作前須先確認本機已使用容量是否超過總容量的50%,如超過時必須將備份空白檔案產生於外部磁碟空間,否則備份過程將會失敗,本範例是預設本機磁區使用空間已超過50%為示範。
確認已使用容量 (root + boot)
df -lh
先掛載外部空間並切換至掛載目錄後再進行產生空白檔案
sudo mount /dev/sda1 /mnt/pi
cd /mnt/pi
分割虛擬磁碟
掛載虛擬磁碟
跳過raspberry.img檔案不備份
sudo chattr +d raspberrypi.img
三、回存檔案至SD卡
完成後將raspberrypi.img檔案透過Win32 Disk Imager工具寫入16G SD卡。
寫入16G SD卡的容量狀況,總容量僅為9G。
因為此備份檔案僅有9.5G,寫入16G的SD卡後,本機總容量會呈現為9.5G,此時必須用raspi-config工具中的Expand Filesystem功能,將空間況展為實際空間16G。
況展後總容量回復為16G之空間檢視。
sudo apt-get update
sudo apt-get install dosfstools dump parted kpartx rsync
環境說明與準備:
Raspberry Pi 3 Linux raspberrypi 4.4.21-v7+ x1
SD容量:32G x1 、16Gx1
外接式USB 16G
二、進行備份
進行備份工作前須先確認本機已使用容量是否超過總容量的50%,如超過時必須將備份空白檔案產生於外部磁碟空間,否則備份過程將會失敗,本範例是預設本機磁區使用空間已超過50%為示範。
確認已使用容量 (root + boot)
df -lh
先掛載外部空間並切換至掛載目錄後再進行產生空白檔案
sudo mount /dev/sda1 /mnt/pi
產生空白image檔案,大小為9.5G(需大於已使用空間)
sudo dd if=/dev/zero of=raspberrypi.img bs=1M count=9500
確認Boot & Root磁區大小
sudo fdisk -l /dev/mmcblk0
分割虛擬磁碟
第一磁區為boot,格式FAT32,由sector 8192開始到sector 137215
第二磁區為root,格式EXT4,由sector 137215開始到空白img結尾。
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 137215s
sudo parted raspberrypi.img --script -- mkpart primary ext4 137216s -1
掛載虛擬磁碟
loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"
格式化虛擬磁碟
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
開始複製檔案
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
跳過raspberry.img檔案不備份
sudo chattr +d raspberrypi.img
sudo mount -t ext4 $partRoot /media/
cd /media
sudo rsync -aP --exclude="raspberrypi.img" --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/tmp/* / ./
cd
sudo umount /media
卸載虛擬磁碟
sudo kpartx -d $loopdevice
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice
三、回存檔案至SD卡
完成後將raspberrypi.img檔案透過Win32 Disk Imager工具寫入16G SD卡。
寫入16G SD卡的容量狀況,總容量僅為9G。
因為此備份檔案僅有9.5G,寫入16G的SD卡後,本機總容量會呈現為9.5G,此時必須用raspi-config工具中的Expand Filesystem功能,將空間況展為實際空間16G。
況展後總容量回復為16G之空間檢視。
沒有留言:
張貼留言