То, что происходит, когда данные записываются на твердотельный диск, достойно нескольких статей (хорошее резюме здесь), потому что это очень сложно и зависит от базовой технологии. Короткая история заключается в том, что твердотельные накопители вообще не могут записать нулевые биты в память. Вместо этого они должны обнулить (стереть) целый раздел памяти, а затем они могут хранить данные после этого, просто записывая их в него. Обычно в эти дни они пишут блоки по 512 байт, но стирают страницу из 8 блоков, что составляет 4096. Это, а также тот факт, что каждый цикл записи / стирания вызывает некоторый физический износ памяти, а память со временем изнашивается, делает SSD сильно отличающимися от вращающихся магнитных HDD.
Кроме этого, диски SATA (и диски AFAIK SAS) не реализуют встроенную команду для копирования данных из одного сектора в другой. (Или, по крайней мере, в спецификации SATA или SAS этого не требуется, поэтому ОС не может рассчитывать на наличие такой команды) Таким образом, копирование файла через раздел будет включать чтение данных из одного сектора диска в память хоста, а затем запись их обратно на диск в другом секторе.
Это связано с тем, что в отношении ОС диск представляет собой набор пронумерованных логических секторов, и все, что он может сделать, - это читать из секторов и записывать в сектора. ОС не может сказать, чтобы диск переназначил секторы.
Кроме того, файловая система (HFS+, NTFS, ext3 и т.д.) Представляет собой набор структур данных, которые устанавливают порядок в наборе логических блоков. Эти структуры данных реализуют "файлы", "имена файлов", "каталоги", "разрешения" и т.д. Итак, да, когда вы перемещаете файл из одного каталога в другой, он не копируется; обновляются только данные файловой системы, указывающие, в каком каталоге находится файл.
Концепция раздела заключается в том, что он представляет собой набор логических секторов на диске, заявленных одной файловой системой. Следствием этого является то, что файловая система не может получить доступ к секторам за пределами своего раздела. В значительной степени это функция безопасности, но она также вытекает из того факта, что все структуры данных файловой системы построены вокруг учета каждого сектора диска, находящегося в собственности файловой системы, и нетрудно добавлять или удалять сектора к этим структурам. Вот почему вы должны запускать специальные подпрограммы для настройки размера раздела, а также почему файловые системы настаивают на работе на непрерывном наборе секторов.
Поэтому нецелесообразно и опасно реализовывать копию файла как просто перенос секторов из одной файловой системы в другую. На вращающемся магнитном диске это также было бы кошмаром производительности, потому что, хотя диск будет делать исключения для плохих секторов, в целом он обеспечивает физическое расположение секторов таким образом, чтобы оптимизировать скорость чтения и записи последовательно пронумерованных сектора.
Кроме того, две файловые системы могут не хранить данные на диске одинаковым образом, что означает, что замена секторов не будет работать, даже если это будет практично. Даже если они относятся к одним и тем же типам файловых систем, например NTFS, одна может использовать шифрование или сжатие, а другая нет, или оба могут шифровать данные, но с разными ключами. Не требуется, чтобы данные в файле были именно тем, что хранится на диске, все, что нужно сохранить, - это обратимое преобразование данных, чтобы файловая система могла получить данные файла, выполнив что-то с данные на диске. Таким образом, если обе файловые системы не используют одно и то же преобразование, простое переключение секторов не приведет к цели передачи данных файла.
По всем этим причинам для создателей ОС и разработчиков файловой системы слишком много работы и слишком мало выгоды для реализации функции, оптимизирующей перемещение по разделам для твердотельных накопителей. Таким образом, любое перемещение между разделами будет чтение и запись.
Внутри SSD это немного другая история. Хотя ОС не сообщала накопителю о том, что копирует данные из одного места в другое, запись на твердотельные накопители настолько дорогая (и сложная), что контроллеры твердотельных накопителей выполняют большую работу для минимизации операций записи. Некоторые SSD пытаются обнаружить, когда сектор, записываемый в хранилище, соответствует уже сохраненному сектору, и пометить этот физический фрагмент памяти как теперь отображающийся на 2 различных логических секторах, а не копировать его, делая на уровне внутреннего диска то, что ОС не смогла.
Но не рассчитывай на это.