調整安裝好的映像檔。
$ apt-get install partclone
$ apt-get install btrfs-tools
# 針對 ext4 檔案系統調整大小。
$ apt-get install gparted
# http://140.109.23.171/ubuntu-pandaboard/
# 如果第一個分割起始位置在 32 (安裝),用底下的檔案。
$ wget http://140.109.23.171/ubuntu-pandaboard/boot.partclone
# 如果第一個分割起始位置在 2048,用底下的檔案。
$ wget http://140.109.23.171/ubuntu-pandaboard/boot.partclone-2048
$ wget http://140.109.23.171/ubuntu-pandaboard/rootfs-btrfs.partclone
# 先把 sdcard 切成兩個分割,第一個放 boot.partclone,並設定成 active; 第二個放 root-btrfs.partclone。
# http://www.tldp.org/HOWTO/html_single/Partition/
# 用 n 切,用 t 設檔案系統類型,用 a 設定啟動分割。
$ fdisk /dev/sdb
/dev/sdb1 * 2048 206847 102400 6 FAT16
/dev/sdb2 206848 62552063 31172608 83 Linu
# 正常要看到 /dev/sdb1 和 /dev/sdb2
$ ls /dev/sdb?
$ partclone.vfat -s boot.partclone -o /dev/sdb1 -r
$ mount /dev/sdb1 /mnt/tmp
# boot.scr 和 MLO 是 bootloader,uImage 是內核映像。
$ ls /mnt/tmp
boot.scr MLO u-boot.bin uImage uInitrd
# 請用以下指令寫入 sdcard, sdx2 請依照實際路徑修改,我的是 sdb2。
# 這裡寫入的檔案系統是 btrfs,故底下用的是 btrfsctl 來調整大小。
# 遇到 CRC 錯誤,用 md5sum 檢查映像檔的正確性。
$ partclone.btrfs -s rootfs-btrfs.partclone -o /dev/sdb2 -r
# mount /dev/sdb2 /mnt/tmp
# 修改 /etc/hosts /etc/hostname /etc/network/interfaces
# 寫入完成後, 依照以下方式調整 size
# (因每張卡的 boot partition 大小有點差異, 所以還是需要跑 resize, 但速度比 ext4 快很多)
$ mkdir /mnt/tmp
$ mount -t btrfs /dev/sdx2 /mnt/tmp
$ btrfsctl -r max /mnt/tmp
$ umount /mnt/tmp
# 另外如果發生連 boot loader 都無法載入的情況時,可嘗試把 mbr 清除。
$ dd if=/dev/zero of=/dev/sdb bs=1024 count=1024