On non-Windows, FileUtil#unTar is implemented using external Unix shell commands. On Windows, FileUtil#unTar is implemented in Java using commons-compress. TestDFSUpgradeFromImage uses a testing tarball image of an old HDFS layout version, hadoop-22-dfs-dir.tgz. This file contains hard links. It appears that commons-compress cannot handle the hard links correctly. When it unpacks the file, each hard link ends up as a 0-length file. This causes the test to fail during cluster startup, because the 0-length block files are considered corrupt.