Tutta la tua setup() è una scopiazzatura mal riuscita, ci sono semplici esempi già scritti.
Questa una versione più corretta, non so se ti serve quel while(!Serial) si usa solo per Leonardo
const byte chipSelect = 10; //ArduinoNano
void setup()
{ delay(1000);
Serial.begin(9600);
while (!Serial) ; // wait for serial port to connect. Needed for native USB port only
Serial.println("Initializing SD card module datalogger");
// see if the card is presente and can be initialized:
if (! SD.begin(chipSelect))
{ Serial.println("Card failed, or not present");
while (1); // don't do anything more
}
Serial.println ("card initialized");
}