Во-первых, ваш основной вопрос заключается в следующем:
Почему копирование занимает много времени между разделами на одном диске?
Ниже подробно рассмотрим, но один диск с несколькими разделами не является «одним и тем же диском» с точки зрения файловой системы. С точки зрения файловой системы раздел - это просто еще один «физический диск», даже если это просто «логически» выделенное пространство на большом родительском физическом диске, где находятся два раздела:
- Диски имеют разделы,
- Разделы имеют файловые системы.
- Файловые системы имеют файлы.
Читайте дальше для более подробной информации.
Примечание. Я использую терминологию Linux/Unix/Mac OS X, поскольку именно в этом заключается мой основной опыт, но базовая концепция применима к Windows и в действительности к любой ОС.
Почему ОС / ядро просто не перемещает информацию. байтов / секторов / адресных указателей / что бы ни выделялось этому файлу из одной таблицы FileSystem в таблицу FileSystem другого раздела?
Это связано с тем, что таблица inode, которая контролирует и управляет тем, какие сектора связаны с какими файлами, является конструкцией для каждого диска и каждого раздела.
Поэтому, когда вы копируете что-то из C:
в C:
все, что происходит, - это запись inode, которая редактируется на диске C:
чтобы указать новый путь к файлу на том же диске C:
.
Но когда вы копируете что-то из C:
в D:
данные должны быть скопированы, и на диске D:
должна быть создана новая запись inode.
Допустим, вам интересно, почему бы просто не сохранить все данные диска на главном диске C:
вместо того, чтобы делать это для каждого устройства, для каждого раздела? Что же происходит, когда этот диск или раздел перемещается на другую машину? Диск D:
выглядел бы как пустое и неиспользуемое пространство без данных таблицы распределения. И если диск C:
дает сбой в подобном сценарии, вы теряете не только диск C:
но и более подробную информацию о файловой системе, подключенную к диску D:
.
Вы также отредактировали свой вопрос, чтобы заявить это:
Я предполагаю, что разделение логично, а не физически.
И да и нет. Разделение логично на стороне таблицы разделов. Но на уровне файловой системы файловая система видит раздел, как если бы это был другой физический диск.
И вы также спросите это:
Так почему же ОС или контроллер FileSystem просто не копируют эти метаданные о helloKitty.txt
в таблицу других разделов?
Он делает копию метаданных из одного места в другое. Но он также копирует фактические данные файла, так как эти данные на D:
не будут существовать, пока они не будут скопированы из C:
И метаданные , которые он копирует ограничиваются основами о содержимом файлов , так как байты и сектор данные изменятся , когда он копируется из C:
диск / раздел на D:
диск / раздела.
Указатели байта не меняются, они являются абсолютными, поскольку раздел является логическим, а не физическим.
Раздел «логический» в контексте раздела. Данные, хранящиеся в файловой системе этого раздела, не являются «логическими» в контексте данных об отдельных файлах, поступающих в таблицу разделов. Это просто так, как оно есть, и раздел - как определено в Википедии - описывается следующим образом; Акцент мой:
Разделение диска - это разделение жесткого диска (HDD) на несколько логических блоков хранения, называемых разделами, для обработки одного физического диска, как если бы это было несколько дисков, так что в каждом разделе может использоваться другая файловая система.