Could anyone explain the reasons why df -h shows less disk space for /dev/root than board actually has (compared to fdisk)?
4.3G is the size of the filesystem mounted under /. 7.2G is the size of /dev/mmcblk1p4 which is a block device, a partition of /dev/mmcblk1(?).
Filesystems and block devices are different concepts (compare this answer of mine). A filesystem usually exists inside some block device. It may be smaller than the block device; such situation is totally possible and most likely the case here.
Note nothing in your question really indicates the filesystem mounted under / exists directly or indirectly inside /dev/mmcblk1p4. df associates it with /dev/root which may be a symlink to /dev/mmcblk1p4; it may be something else though.
There may be an additional layer (or even layers) between mmcblk1p4 and /dev/root, e.g. LVM.
Check ls -l /dev/root. If it shows you root -> mmcblk1p4 then yes, the filesystem mounted under / lives directly in /dev/mmcblk1p4 but its size is smaller. If /dev/root is something else then further investigation is required.
The rest of this answer assumes /dev/root is a symlink to /dev/mmcblk1p4.
There are tools to enlarge filesystems. First you need to know the filesystem type. Invoke mount and examine the relevant entry. It will look like this:
/dev/root on / type <type> …
<type> will tell you the filesystem type. Next:
- Pick the right tool (
resize2fs for ext2/ext3/ext4, btrfs filesystem resize for btrfs, …). - Read the manual.
- Check if the tool supports enlarging a mounted filesystem.
btrfs filesystem resize requires the filesystem to be mounted. resize2fs allows it to be mounted when enlarging. Tools specific to other types may require the filesystem to be unmounted; in this case you cannot resize what is mounted as /. - Enlarge the filesystem. Some tools can automatically check the size of the underlying block device and make the filesystem take all available space, if asked to. Check the manual for the right syntax.
I cannot give you one exact command to enlarge because I don't know your exact setup. Anyway, my answer to the explicit question you asked ("why does df -h show less disk space?") is: because df deals with filesystems while fdisk deals with block devices; filesystems and block devices are different concepts.