deb  http://archive.raspberrypi.org/debian ${release} main
   endef
 
-  PACKAGES += firmware-brcm80211 libraspberrypi-bin libraspberrypi0 pi-bluetooth raspberrypi-bootloader raspberrypi-kernel initramfs-tools nilfs-tools
-  fstype := nilfs2
+  PACKAGES += firmware-brcm80211 libraspberrypi-bin libraspberrypi0 pi-bluetooth raspberrypi-bootloader raspberrypi-kernel initramfs-tools btrfs-tools
+  fstype := btrfs
 
   _target: _umount _config
   
 
 _copy: ${SYSROOT} ${CFGROOT}
        sync
-       find "$${SYSROOT}" -lname '' -exec ln -sf /dev/null '{}' \;
        cp -au "$${SYSROOT}/." "$${CFGROOT}/"
 
 _config: ${CFGROOT}
 ifdef raspi
 _format_root: ${PROOT}
        -umount "$${CFGROOT}/boot" "$${CFGROOT}" "${PROOT}"
-       mkfs.nilfs2 -f -L FSROOT "$${PROOT}"
+       mkfs.${fstype} -f -L FSROOT "$${PROOT}"
 else
 _format_root: ${PROOT}
        -umount "$${CFGROOT}/boot" "$${CFGROOT}" "${PROOT}"
        mount -t vfat -o loop "$${PBOOT}" "efi/"
 
 _efi_umount: _efi_mount
+       sync
        umount efi/ && rmdir efi/
 
 .PHONY: _syslinux_mbr _grub_mbr
        mountpoint "$${CFGROOT}" \
        || mount -o loop,offset="$$((${BOOT_MB} + 2))"M,sizelimit=${ROOT_MB}M \
                 -t ${fstype} "$${VOLUME}" "$${CFGROOT}"
-       sync
        chmod 755 "$${CFGROOT}"
        mkdir -p -m 755 "$${CFGROOT}/boot"
        mountpoint "$${CFGROOT}/boot" \
                 -t vfat "$${VOLUME}" "$${CFGROOT}/boot"
 
 _umount_boot: ${CFGROOT} _config
+       sync
        -umount "$${CFGROOT}/boot"
 
 _umount_root: _umount_boot _config
+       sync
        umount "$${CFGROOT}" && rmdir "$${CFGROOT}"
 
 _umount: _umount_boot _umount_root