Copy texture data?? Why would that ever be required? You can change the texture's filtering mode/params after creation, you know...
Just create the mipchain, and then set filtering the way you want it for the current material. It takes a few nanoseconds. You can even put only 1 mip in the rare cases, and set the max_level param - this way the texture will be valid for even gl_linear_mipmap_linear.