Partition required for ext4 filesystem?

Solution 1:

Not required, but you should partition. The partition table eats up very little space, but it is universally recognizable. Windows will know that there's a filesystem there if you put it in a Windows box. If you have no partitions, other operating systems will just treat it as an empty drive.

Solution 2:

You can run any filesystem on a bare block device with or without partitions, however the danger is that both people and OSes expect to see a partition table on a block device to realize that there is data present.

(both raw disks and partitions are just block devices, after all)

ZFS actually creates such a guardian partition table which is why it's safe to do it on an unpartitioned device:

$ zpool status
...
    NAME        STATE     READ WRITE CKSUM
    storage     ONLINE       0     0     0
      raidz2-0  ONLINE       0     0     0
        sda     ONLINE       0     0     0
        sdb     ONLINE       0     0     0
            ...

$ sudo gdisk -l /dev/sda
...
  MBR: protective
  GPT: present
...
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      7814019071   3.6 TiB     BF01  zfs
   9      7814019072      7814035455   8.0 MiB     BF07  

Solution 3:

Yes you can format a whole block device and need not create a partition first.

On SAN LUNs and multi-boot systems I would recommend creating partitions though and setting the correct filesystem id, as you run the risk that other operating systems and/or operators could interpret a unpartitioned disk as free and unused.