In this paper, we consider the task of deterministically extracting randomness from sources consisting of a sequence of n independent symbols from {0,1}d. The only randomness guarantee on such a source is that the whole source has min-entropy k . We give an explicit deterministic extractor which extract Ω(logk-loglog(1/ e)) bits with error e , for any n, d, k ∈ \BBN and e ∈ (0,1). For sources with a larger min-entropy, we can extract even more randomness. When k ≥ n1/2+γ, for any constant γ ∈ (0,1/2), we can extract m=k-O(d log(1/ e)) bits with any error e ≥ 2-Ω(nγ). When k ≥ logcn , for some constant c > 0, we can extract m=k-(1/ e)O(1) bits with any error e ≥ k-Ω(1). Our results generalize those of Kamp and Zuckerman and Gabizon which only work for bit-fixing sources (with d=1 and each bit of the source being either fixed or perfectly random). Moreover, we show the existence of a nonexplicit deterministic extractor which can extract m=k-O(log(1/ e)) bits whenever k=ω(d+log(n/ e)) . Finally, we show that even to extract from bit-fixing sources, any extractor, seeded or not, must suffer an entropy loss k-m=Ω(log(1/ e)). This generalizes a lower bound of Radhakrishnan and Ta-Shma on extracting from general sources.