Using initramfs is optional. By default, the kernel initializes hardware using built-in drivers, mounts the specified root partition, loads the init system of the installed Linux distribution. The init system then loads additional modules and starts services until it eventually allows you to log in. This is a good default behavior and sufficient for many users. initramfs is for users with advanced requirements; for users who need to do things as early as possible, even before the root partition is mounted.
Here are some examples of what you can do with initramfs:
- Mount the root partition (for encrypted, logical, and otherwise special partitions);
- Provide a minimalistic rescue shell (if something goes wrong);
- Customize the boot process (e.g. print a welcome message, boot splash, etc.);
- Load modules (e.g. third party drivers);
- Anything the kernel can’t do (as long as you can do it in user space, e.g. by executing commands).
If you don’t have advanced requirements, you don’t need initramfs.