mysql: free space after drop table with innodb_file_per_table=False
The only way to give the free space back to the OS is to dump all the tables, remove ibdata* and reload.

Meanwhile, there is a lot of free space in ibdata1.  When you do SHOW TABLE STATUS, you will probably see that most tables have the same, large, Data_free value.  This is actually how much is free in ibdata1.  As you add more data (to existing or new tables), Data_free will decrease until it gets close to zero; then the size of the ibdata1 file will increase.

Search around for other discussions of innodb_file_per_table.

As for doing a backup with low disk space, consider sending the data across the network to a disk on another machine.  For example, if the MySQL server is host1, do this on host2:

host2&gt; mysqldump -h host1 ... &gt;/a/local/dumpfile.sql


Before you rebuild, be sure to set innodb_file_per_table=ON since it needs to apply when you CREATE the TABLEs.