Installation from filesystem on a hard disk partition that's not
currently mounted.

The partition should contain the Packages.gz file from each
distribution area being installed (usually stable, contrib and
non-free) as well as the corresponding binary/*/*.deb files.

The easiest way to get this is to make a (partial) copy of the
distribution site's directory hierarchy, if possible.
