Corrigir partições criptografadas desalinhadas

7

Eu criptografei meu SSD com dm-crypt / LUKS para instalar um Archlinux em um contêiner LVM. Aqui está um gráfico da estrutura (é em francês, mas deve ser compreensível):

Agora,percebiquedeveriateralinhadominhaspartiçõesparaobtermelhoresdesempenhosdeSSD(como explicado aqui ).

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      481949      240943+  83  Linux
/dev/sda2          481950   250069679   124793865   83  Linux

A minha pergunta é: posso (e como) corrigir o desalinhamento das minhas partições ou devo reinstalar tudo? Sabendo que a segunda partição é criptografada e contém um contêiner LVM.

    
por Martin Trigaux 14.01.2013 / 16:03

1 resposta

3

O problema é que você tem que encolher o container luks cryptsetup que atualmente não é possível (crescer é possível, mas não encolher).

Então você precisa reinstalar tudo ou usar um linux de resgate de um pendrive e fazer o seguinte:

  1. backup do conteúdo de todos os seus LVs
  2. exclua o volumegroup e os volumes lógicos
  3. elimine o contentor cryptsetup
  4. alinha as partições (o que significa excluir as antigas e criar novas partições alinhadas)
  5. crie o contêiner cryptsetup (veja a nota 1 abaixo)
  6. Crie um PV alinhado (veja nota 2 abaixo)
  7. Crie o VG
  8. Crie todos os LVs necessários
  9. Crie seus sistemas de arquivos
  10. Restaurar seus dados / sistema

Nota 1: Por favor, lembre-se que não deve alinhar pelo menos as suas partições, deve alinhar todos os dispositivos de contêiner / bloco no seu ssd ou em um HDD do setor 4KB.

Para alinhar corretamente seu contêiner cryptsetup para uma unidade de setor de 4KB, use a seguinte fórmula:

alignment (512Byte sectors) = (sector size (Byte)) / 512

alignment (512Byte sectors) = (4KB * 1024) / 512 = 8

Portanto, você deve adicionar o seguinte ao seu comando cryptsetup: --align-payload=8

Nota 2: Para criar um PV alinhado, você deve garantir que o início dos dados do PV (pe_start) esteja alinhado em um limite de largura de setor de 4KB completo.

Tenha em mente que o seu physicalextentsize (que você pode especificar ao criar um VG) deve ser um múltiplo do seu alinhamento.

Portanto, você deve adicionar o seguinte ao seu comando pvcreate: --dataalignment 8s

    
por 21.01.2013 / 12:27