In this paper, we present two linear-size external memory data structures for approximate range searching. Our first structure, the BAR-B-tree, stores a set of N points in Rd and can report all points inside a query range Q by accessing O(logB N + γ + k /B) disk blocks, where B is the disk block size, γ = 1 − d for convex queries and γ = −d otherwise, and k is the number of points lying within a distance of ·diam(Q) to the query range Q. Our second structure, the object-BARB-tree, is able to store objects of arbitrary shapes of constant complexity and provides similar query guarantees. In addition, both structures also support other types of range searching queries such as range aggregation and nearest-neighbor. Finally, we present I/O-efficient algorithms to build these structures.