Querying sys.master_files over a linked server
This approach works fine for me:

SELECT * FROM [linked_server_name].master.sys.master_files;


What you need to be sure of is that the linked server is running in the context of a user who has enough privileges to see the contents of the DMV. You can check who you're executing as using:

EXEC [linked server name].master.sys.sp_executesql N'SELECT SUSER_SNAME(),
   ORIGINAL_LOGIN();';