The root directory of Maemo5 is limited to 256MB on the N900. This is a serious limitation, and users often and easily fill it up (especially if using the extras-devel repository). It is unfortunate in other ways too. For example, the standard Debian distro officially supports Arm7, so with a better partitioning, much of Debian would be directly usable through apt-get. We could use the full gamut of GNU/Linux commands instead of the settling for the Busybox replacements - imagine, "less" and "man" included by default!
The current solution is "optification". However, that solution is brittle since it requires active adaptation of all packages so that they are placed in /opt instead of in their usual locations. This means added burden on developers and makes packages slower to move into stable repositories.
As far as I know, the total set of mass storage available for the N900 is:
* 256MB Root partition (in a fast 256MB flash)
* 768MB Swap
* 2GB /home
* 27GB FAT32 USB storage
(Swap, /home and USB storage are all in a 32GB slow flash)
If I understood this correctly, the main reason for the small root partition is that it is in a faster flash than the home partition. To keep the device responsive, the speed sensitive stuff is placed in that flash, and other stuff is placed in /opt (/opt in turn is mounted in /home).
There are a few more constraints, in summary:
1) There is a fast 256MB flash and a slow 32GB flash
2) The device needs to be capable of getting to a guaranteed stable functioning state from a reflash
3) A reflash should not delete the user's document data (i.e. pics, music, etc) in the large flash storage
4) A reflash will always replace the entire contents of a flash memory.
Right now I am using a home grown solution, but it breaks each time the distro has an upgrade, forcing me to spend days rebuilding and moving everything again. And newbies end up having to reflash just because they tried out a few beta-level apps and filled the root partition to a point where booting fails. We need a better standard solution!
There is a related Brainstorm about re-partitioning the 32GB internal flash, though that doesn't solve the root directory problem.
Discus this brainstorm in the forums