Here’s how to store portage in a file. Ext2/3 filesystems on a 2GB partition do not have enough inodes to store the , use reiserfs, for example.
/ # dd if=/dev/null of=/usr/portage.disk bs=1M count=0 seek=2048 / # mkreiserfs -f /usr/portage.disk / # mkdir -p /usr/portage / # mount /usr/portage.disk /usr/portage -o loop,notail,noatime,nodev
The portage file is limited to 2GBs, hence we have to move the distfiles directory (default: /usr/portage/distfiles). This can be done either by editing make.conf and specify a new location or creating a distfiles directory somewhere else and have /usr/portage/distfiles link to it:
/ # mkdir -p /var/tmp/portage/distfiles / # cd /usr/portage /usr/portage # ln -s /var/tmp/portage/distfiles
Finally, add a line to /etc/fstab to have the portage disk mounted at boot time:
/usr/portage.disk /usr/portage reiserfs loop,notail,noatime,nodev,noexec 0 0
Done.