¿Por qué copiar lleva tiempo entre particiones en el mismo disco?

¿Por qué copiar lleva tiempo entre particiones en el mismo disco?

Este es un posible duplicado deMover archivos de una partición a otra en un SSD

Cuando copio archivos de C:\...\Downloads\a C:\...\Desktop\, sucede instantáneamente,perosi copio el mismo archivo (1,12 GB), D:lleva bastante tiempo. ¿Porque?

Respuesta1

Primero, su pregunta central es esta:

¿Por qué copiar lleva tiempo entre particiones en el mismo disco?

Se detallará a continuación, pero un solo disco con múltiples particiones no es "el mismo disco" desde la perspectiva del sistema de archivos. Desde la perspectiva del sistema de archivos, una partición es simplemente otro “disco físico”, incluso si es simplemente un espacio asignado “lógicamente” en un disco físico principal más grande donde residen dos particiones:

  • Los discos tienen particiones,
  • Las particiones tienen sistemas de archivos.
  • Los sistemas de archivos tienen archivos.

Siga leyendo para obtener más detalles.

Nota: Estoy usando la terminología de Linux/Unix/Mac OS X ya que ahí es donde está mi experiencia principal, pero el concepto básico se aplica a Windows y, en realidad, a cualquier sistema operativo.

¿Por qué el sistema operativo/kernel simplemente no mueve la información? de bytes/sectores/punteros de dirección/lo que sea asignado a ese archivo desde una tabla del sistema de archivos a la tabla del sistema de archivos de otra partición?

Esto se debe a que la tabla de inodos que controla y administra qué sectores están conectados a qué archivos es una construcción por disco y por partición.

  • Entonces, cuando copia algo, C:lo C:único que sucede es que se está editando una entrada de inodo en la C:unidad para indicar la nueva ruta al archivo en la misma C:unidad.

  • Pero cuando copia algo de C:a D:, se deben copiar los datos y se debe crear una nueva entrada de inodo en la D:unidad.

Supongamos que se pregunta por qué no mantener todos los datos del disco en el C:disco principal en lugar de hacerlo por dispositivo y por partición. Bueno, entonces ¿qué sucede cuando esa unidad o partición se mueve a otra máquina? La D:unidad parecería un espacio vacío y no utilizado sin los datos de la tabla de asignación. Y si la C:unidad falla en un escenario como este, no solo se pierde la C:unidad sino también la información más profunda del sistema de archivos conectada a la D:unidad.

También editaste tu pregunta para decir esto:

Supongo que la partición es lógica, no física.

Si y no. Fraccionamientoes lógicoen el costado de la mesa divisoria. Pero a nivel del sistema de archivos, el sistema de archivos ve una partición.como si fuera otro disco físico.

Y también preguntas esto:

Entonces, ¿por qué el sistema operativo o el controlador del sistema de archivos simplemente no copian estos metadatos en helloKitty.txtotras tablas de particiones?

Élhacecopiar los metadatos de un lugar a otro. Pero también copia los datos reales del archivo, ya que esos datos D:no existirán hasta que se copien C:. Y los metadatos que copia se limitan a lo básico sobre el contenido del archivo, ya que los datos de bytes y sectores cambiarán cuando se copien del C:disco/partición al D:disco/partición.

Los punteros del byte no cambian, son absolutos porque la partición es lógica, no física.

La partición es "lógica" en el contexto de una partición. Los datos almacenados en el sistema de archivos de esa partición no son "lógicos" en el contexto de los datos sobre archivos individuales que suben a la tabla de particiones. Así es simplemente como es y la partición...tal como lo define Wikipedia—se describe a continuación; el énfasis es mío:

La partición de disco es el acto de dividir una unidad de disco duro (HDD) en múltiples unidades de almacenamiento lógicas denominadas particiones.tratar una unidad de disco física como si fueran varios discos, de modo que se pueda utilizar un sistema de archivos diferente en cada partición.

Respuesta2

Un sistema de archivos es más que solo direcciones para el contenido de cada archivo. También debe realizar un seguimiento de qué partes de la partición no están asignadas (“espacio libre”) y cuánto espacio libre hay disponible en total. Si el sistema de archivos en la partición C:almacenara algunos datos de archivos dentro de la partición D:, primero tendría que buscar en las D:estructuras del sistema de archivos para encontrar algo de espacio libre y tendría que marcar ese espacio como asignado en el sistema de archivos D:para que los datos no sean sobrescrito por otro archivo creado en D:. Más tarde, cuando elimine el archivo que parece estar en el sistema de archivos C:, tendrá que acceder D:nuevamente al sistema de archivos para marcar ese espacio como libre.

La verificación de errores sería problemática: normalmente, si hay espacio marcado como asignado pero que en realidad no forma parte de ningún archivo en la estructura de directorios del sistema de archivos, esto se considera un error. Un verificador de coherencia (por ejemplo, Windows chkdsko Linux/Unix fdisk) marcará el espacio como libre o creará un archivo asignado a ese espacio para que un humano pueda examinar los datos y eliminarlos manualmente. Pero si los datos en cuestión son en realidad parte de un archivo en algún otro sistema de archivos, esto daría como resultado que el espacio se marque como libre (ya sea inmediatamente o cuando alguien elimine el archivo "recuperado") mientras todavía hay un archivo usándolo.

La asignación segura de archivos a través de los límites del sistema de archivos requeriría que los dos sistemas de archivos estuvieran permanentemente "conscientes" de las estructuras del otro, hasta el punto de que bien podrían ser simplemente un único sistema de archivos que abarque múltiples particiones. Algunos sistemas de archivos realmente lo admiten: consultezfsybtrfs. Actúan como una especie de RAID integrado en el sistema de archivos: pueden hacer que varias particiones, incluso en varios discos, aparezcan como una única unidad lógica. Pero las particiones (y los discos) dependen unas de otras; no puedes simplemente tomar uno y usarlo solo.

Respuesta3

En este aspecto, las diferentes particiones son como discos diferentes.

Los bloques para cada partición se asignan de forma contigua, lo que propones es que el disco se reparticione automáticamente asignando los sectores que pertenecen a una partición a otra.

Este enfoque sería muy propenso a errores, degradaría el rendimiento del disco y alteraría otras funciones como el registro en diario.

información relacionada