Por que a cópia demora tempo entre partições no mesmo disco?

Por que a cópia demora tempo entre partições no mesmo disco?

Esta é uma possível duplicata deMovendo arquivos de uma partição para outra em um SSD

Quando copio arquivos para C:\...\Downloads\isso C:\...\Desktop\acontece instantaneamente,masse eu copiar o mesmo arquivo (1,12 GB), D:levará algum tempo. Por quê então?

Responder1

Primeiro, sua questão central é esta:

Por que a cópia demora tempo entre partições no mesmo disco?

Entraremos em detalhes abaixo, mas um único disco com múltiplas partições não é “o mesmo disco” do ponto de vista do sistema de arquivos. Do ponto de vista do sistema de arquivos, uma partição é simplesmente outro “disco físico”, mesmo que seja simplesmente um espaço alocado “logicamente” em um disco físico pai maior, onde residem duas partições:

  • Os discos têm partições,
  • As partições possuem sistemas de arquivos.
  • Os sistemas de arquivos possuem arquivos.

Continue lendo para mais detalhes.

Nota: Estou usando a terminologia Linux/Unix/Mac OS X, pois é aí que está minha principal experiência, mas o conceito básico se aplica ao Windows e a qualquer sistema operacional.

Por que o sistema operacional/kernel simplesmente não move as informações. de bytes/setores/ponteiros de endereço/o que quer que seja alocado para esse arquivo de uma tabela FileSystem para a tabela FileSystem de outra partição?

Isso ocorre porque a tabela de inodes que controla e gerencia quais setores estão conectados a quais arquivos é uma construção por disco e por partição.

  • Portanto, quando você copia algo de C:tudo C:o que está acontecendo, uma entrada de inode está sendo editada na C:unidade para indicar o novo caminho para o arquivo na mesma C:unidade.

  • Mas quando você copia algo de C:para D:, os dados devem ser copiados e uma nova entrada de inode deve ser criada na D:unidade.

Digamos que você esteja se perguntando por que não manter todos os dados da unidade na C:unidade principal em vez de fazê-lo por dispositivo, por partição? Bem, então o que acontece quando essa unidade ou partição é movida para outra máquina? A D:unidade pareceria apenas um espaço vazio e não utilizado sem os dados da tabela de alocação. E se a C:unidade travar em um cenário como esse, você não apenas perderá a C:unidade, mas também as informações mais profundas do sistema de arquivos conectadas à D:unidade.

Você também editou sua pergunta para afirmar o seguinte:

Suponho que o particionamento seja lógico e não físico.

Sim e não. Particionamentoé lógicona lateral da tabela de partições. Mas no nível do sistema de arquivos, o sistema de arquivos vê uma partiçãocomo se fosse outro disco físico.

E você também pergunta isso:

Então, por que o sistema operacional ou o controlador do sistema de arquivos simplesmente não copia esses metadados helloKitty.txtpara outras tabelas de partições?

Istofazcopie os metadados de um lugar para outro. Mas também copia os dados reais do arquivo, uma vez que esses dados D:não existirão até que sejam copiados do arquivo C:. E os metadados que ele copia são limitados ao básico sobre o conteúdo do arquivo, uma vez que os dados de bytes e setores serão alterados quando copiados do C:disco/partição para o D:disco/partição.

Os ponteiros do byte não mudam, são absolutos porque a partição é lógica e não física.

A partição é “lógica” no contexto de uma partição. Os dados armazenados no sistema de arquivos dessa partição não são “lógicos” no contexto dos dados sobre arquivos individuais que vão para a tabela de partições. É simplesmente assim que as coisas são e particionam—conforme definido pela Wikipédia—é descrito a seguir; a ênfase é minha:

O particionamento de disco é o ato de dividir uma unidade de disco rígido (HDD) em várias unidades de armazenamento lógico chamadas partições,tratar uma unidade de disco físico como se fosse vários discos, para que um sistema de arquivos diferente possa ser usado em cada partição.

Responder2

Um sistema de arquivos é mais do que apenas endereços para o conteúdo de cada arquivo. Ele também precisa controlar quais partes da partição não estão alocadas (“espaço livre”) e quanto espaço livre está disponível no total. Se o sistema de arquivos na partição C:armazenasse alguns dados de arquivo dentro da partição D:, ele teria que primeiro examinar as D:estruturas do sistema de arquivos para encontrar algum espaço livre e teria que marcar esse espaço como alocado no sistema de arquivos D:para que os dados não fossem substituído por outro arquivo criado em D:. Mais tarde, quando você excluir o arquivo que parece estar em filesystem C:, ele terá que acessar o sistema de arquivos D:novamente para marcar esse espaço como livre.

A verificação de erros seria problemática: normalmente, se houver espaço marcado como alocado, mas que não faça parte de nenhum arquivo na estrutura de diretórios do sistema de arquivos, isso é considerado um erro. Um verificador de consistência (por exemplo, Windows chkdskou Linux/Unix fdisk) marcará o espaço como livre ou criará um arquivo mapeado para esse espaço para que um ser humano possa examinar os dados e excluí-los manualmente. Mas se os dados em questão fizerem realmente parte de um arquivo em algum outro sistema de arquivos, isso resultaria no espaço sendo marcado como livre (imediatamente ou quando alguém exclui o arquivo “recuperado”) enquanto ainda houver um arquivo utilizando-o.

Alocar arquivos com segurança através dos limites do sistema de arquivos exigiria que os dois sistemas de arquivos estivessem permanentemente “conscientes” das estruturas um do outro, na medida em que poderiam muito bem ser apenas um único sistema de arquivos que abrange múltiplas partições. Alguns sistemas de arquivos realmente suportam isso: Vejazfsebtrfs. Eles agem como uma espécie de RAID embutido no sistema de arquivos: eles podem fazer com que várias partições, mesmo em vários discos, apareçam como uma única unidade lógica. Mas as partições – e os discos – dependem umas das outras; você não pode simplesmente pegar um e usá-lo sozinho.

Responder3

Partições diferentes são como discos diferentes neste aspecto.

Os blocos de cada partição são atribuídos de forma contígua, o que você propõe é que o disco se reparticione automaticamente atribuindo os setores que pertencem a uma partição a outra.

Essa abordagem seria muito propensa a erros, degradaria o desempenho do disco e prejudicaria outros recursos, como o registro no diário.

informação relacionada