func Untar(tarArchive io.Reader, dest string, options *archive.TarOptions) error {
	return untarHandler(tarArchive, dest, options, true, dest)
}
Untar reads a stream of bytes from `archive`, parses it as a tar archive,
and unpacks it into the directory at `dest`.
The archive may be compressed with one of the following algorithms:
identity (uncompressed), gzip, bzip2, xz.
package chrootarchive
import (
	stdtar "archive/tar"
	"fmt"
	"io"
	"io/ioutil"
	"net"
	"os"
	"os/user"
	"path/filepath"
	"sync"
	"github.com/containers/storage/pkg/archive"
	"github.com/containers/storage/pkg/idtools"
	"github.com/opencontainers/runc/libcontainer/userns"
	"github.com/pkg/errors"
)
func init() {
	_, _ = user.Lookup("storage")
	_, _ = net.LookupHost("localhost")
}
func NewArchiver(idMappings *idtools.IDMappings) *archive.Archiver {
	archiver := archive.NewArchiver(idMappings)
	archiver.Untar = Untar
	return archiver
}
func NewArchiverWithChown(tarIDMappings *idtools.IDMappings, chownOpts *idtools.IDPair, untarIDMappings *idtools.IDMappings) *archive.Archiver {
	archiver := archive.NewArchiverWithChown(tarIDMappings, chownOpts, untarIDMappings)
	archiver.Untar = Untar
	return archiver
}