Redimensionando a partição de inicialização com criptografia de disco completa

12

Eu vi as respostas para a pergunta geral sobre o redimensionamento da partição de inicialização. No meu caso, instalei o Ubuntu 12.04 Alternate com criptografia de disco completo. Como a unidade não pode ser montada durante a operação de redimensionamento, isso não corromperá a partição principal?

Tenho tudo em backup para poder reinstalar, mas não sei como especificar o tamanho da partição de inicialização antes da criptografia.

Tom Stone
fonte

Respostas:

3

Sei que essa pergunta é antiga, mas surge quando procuramos pelo pequeno problema da partição de inicialização e usando a criptografia de disco.

O instalador do Ubuntu ubiquityusa partmanpara particionar. Quando a opção "Usar o disco inteiro" está selecionada, as configurações da partição vêm dos arquivos de receita do partman no /lib/partman/recipes-[arch]/*e /lib/partman/recipes/*no CD ao vivo. Encontre a receita usada pelo instalador e modifique o tamanho máximo da /bootpartição. No meu sistema, a receita padrão usada é /lib/partman/recipes/30atomic. Abra o terminal:

ubuntu@ubuntu:~$ sudo nano /lib/partman/recipes/30atomic

Vá para a seção da partição de inicialização e altere o terceiro número (256 abaixo) para o tamanho desejado (eu recomendo pelo menos 512):

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

Esta seção diz que o tamanho ficará entre 128M e 256M com uma prioridade de 512, o que determina a importância do tamanho dessa partição em relação a outras.

Salve-o com Ctrl+ O, Enter. Em seguida, inicie o instalador, instale como de costume.

mkayaalp
fonte
2

Eu suponho que por criptografia de disco completo, você quer dizer ter uma pequena partição de inicialização não criptografada e outra partição que é um volume físico para criptografia (dm-crypt). Se não houver espaço entre eles, você não poderá redimensionar de maneira não destrutiva a partição criptografada para criar mais espaço para / boot.

Dê uma olhada na minha resposta aqui - isso pode ajudar.

Marcin Kaminski
fonte
0

Sim, é possível redimensionar a inicialização, mas é muito complicado. Eu só tentaria isso depois de fazer backup de TODOS os seus dados. Se você cometer um erro, o potencial de perda de dados é bastante alto. Você deseja ter alguns USB / CD ao vivo do Ubuntu inicializáveis, pois você deve executar essas operações após a inicialização em um USB / CD ao vivo.

Descobri da maneira mais difícil um tempo atrás, quando a comunidade linux alterava os requisitos em relação ao tamanho necessário da partição de inicialização. Anteriormente, 100-200 MB eram suficientes para a inicialização, mas a comunidade dobrava seus requisitos de tamanho. Isso impactou os usuários que estavam seguindo as diretrizes anteriores.

/server/334663/what-is-the-recommended-size-for-a-linux-boot-partition

Para os requisitos atuais de / boot, remeto-o para as diretrizes oficiais.

https://help.ubuntu.com/community/DiskSpace

No momento da redação deste artigo, as diretrizes recomendam / inicializam de 250 MB a 1 GB de espaço. Eu recomendaria uma partição de inicialização separada com o maior espaço necessário. A partição de inicialização precisa ser descriptografada durante o processo de inicialização. O processo de inicialização montará diferentes partições criptografadas ao longo do caminho, por exemplo, discos criptografados LUKS ou diretórios HOME criptografados e há diferenças entre essas abordagens. Na minha experiência, o uso das várias opções de criptografia de disco rígido do Ubuntu tende a resultar em problemas ao atualizar o Ubuntu mais tarde, exigindo intervenção manual.

Para uma visão geral, encaminharei você para este artigo que considero bem escrito.

'LUKS criptografando várias partições no Debian / Ubuntu com uma única senha'

https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/

Quando você achar necessário alterar suas partições, achei este post muito útil.

'Como redimensionar um sistema de arquivos criptografados LUKS'

https://ubuntuforums.org/showthread.php?t=726724

Agora, como o gparted não suporta a movimentação de partições LUKS criptografadas, isso não pode ser feito usando os comandos gparted da linha de comando nem da GUI. Descobri que você pode usar o gparted para criar partições e, em seguida, o dd para mover suas partições criptografadas, usando cópias setor por setor. Isso envolve a capacidade de calcular tamanhos de partição em termos de setores. Cometer um erro significa perda de dados e reinstalação.

No meu caso, preciso aumentar o tamanho da minha partição de inicialização de 537MB para 1GB. Eu preciso disso como parte da minha atualização do Ubuntu 12.04 para 14.04, para que a atualização do Ubuntu possa encontrar espaço suficiente no / boot. Sim, você pode remover o autoremove para liberar espaço no / boot, mas os requisitos gerais foram alterados, então eu estava ampliando o boot para ajustar essas diretrizes também. Aqui estava o meu layout de partição.

Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot
 2      538MB   794MB  256MB  ext2
 3      794MB   240GB  239GB

Eu tenho o disco criptografado LUKS na partição 3 e minha inicialização na partição 1, portanto não havia espaço suficiente para estender / inicializar. Nota O Gparted não pode mover a partição nº 3, pois é uma partição criptografada. Para corrigir isso, criei uma quarta partição no final do meu disco do mesmo tamanho em setores e usei o dd para copiar o conteúdo da partição 3 para a partição 4. Achei útil redimensionar minha raiz para o tamanho mínimo necessário. Portanto, realizei as seguintes operações para abordar o tamanho do meu / boot.

  1. Encolher o sistema de arquivos raiz na partição nº 3
  2. Redimensionada a partição nº 3 (para ser menor)
  3. Criou uma partição nº 4 do mesmo tamanho (no final do disco)
  4. DD usado para copiar os setores da partição nº 3 para a partição nº 4
  5. Excluiu a partição nº 3 para liberar espaço no disco
  6. Gparted usado para redimensionar e mover as partições nº 1 e 2
  7. Criou uma nova parte # 3 do mesmo tamanho que a parte 3 (ou partição 4) reduzida
  8. DD usado para copiar os setores da partição nº 4 para a partição nº 3
  9. Exclua a partição nº 4
  10. Expanda o tamanho da parte # 3 para o tamanho original # 3
  11. Atualizado o sistema de arquivos contido na partição criptografada nº 3 para o espaço restante

Dessa forma, eu poderia excluir a partição nº 3 e usar o gparted para mover e ampliar as partições nº 1 e nº 2. A leitura dos guias acima deve fornecer informações suficientes para você avançar. Não é mostrado aqui, mas ao diminuir minha partição raiz, excluí um grupo de volumes de troca na mesma partição e o recrio no final. Tudo isso está sendo feito enquanto inicializado em uma unidade flash Linux Live USB. A seguir, algumas das minhas anotações que não estavam prontamente disponíveis nos guias acima.

Achei o blockdev útil para exibir o tamanho das partições em setores. Isso me ajudou a calcular os tamanhos do setor.

sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

O comando Gparted 'unit s' exibirá sua tabela de partição em setores. Todo o dimensionamento, exclusão e criação da partição é feito usando o Gparted. Dessa forma, você pode apenas fazer toda a matemática nos setores. A 'unidade compacta' retornará ao formato MB / GB, se você quiser ver como é a matemática do setor.

(parted) unit s
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  456656896s  455106561s

O comando resize2fs tem uma opção bacana para redimensionar para o mínimo. Além disso, excluí meu grupo de volumes de troca durante esta parte.

ubuntu@ubuntu:~$ sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.

Quando você redimensionar as tabelas de partição, volte e atualize o gparted. Utilizou 4096 * 2260992 e depois blockdev para verificar a matemática aqui. Aqui está o comando gparted.

(parted) resizepart 3
End?  [224419843s]? 225970179s 
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes                                                               
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  225970179s  224419844s

Observe que o tamanho da contagem de setor da partição nº 3 é menor que a minha lista original, ou seja, dessa forma, você pode usar o gparted para criar a partição nº 4 antes da cópia do DD. O encolhimento libera mais espaço em disco para essa cópia.

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s

Após a cópia do DD, vá em frente e aumente o tamanho da sua partição / boot. Você excluirá a partição nº 3 original e recriará a partição nº 3 em um novo local do setor após as partições nº 1 e 2 ampliadas. Novamente, o blockdev foi usado para medir o tamanho do setor. Eu criei essa partição nº 3 com o mesmo tamanho da partição nº 4, menor do que originalmente era a nº 3. Use DD para copiar os setores 4 para a partição 3.

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624

Após copiar, exclua a partição nº 4 e expanda o tamanho da partição nº 3. No meu caso, eu apenas restaurei a parte # 3 do tamanho que era quando comecei. Eu tinha espaço suficiente para fazer isso.

(parted) resizepart 3                                                     
End?  [464349185s]? 464349184s                                           
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y                                                                 
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     4192255s    4190208s    fat32              boot
 2      5146624s  9242623s    4096000s    ext2
 3      9242624s  464349184s  455106561s

Quando o gparted aumentou o tamanho da partição, ele não atualiza o sistema de arquivos. Observe que o sistema de arquivos está contido na partição criptografada e, portanto, deve ser aberto e montado para fazer essa alteração. Use o seguinte comando para corrigir isso. Isso pode ser feito no sistema ativo, se necessário.

user@zagyg:/$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.

Em conclusão, enquanto Gparted não suporta sua operação nativamente, mas é uma ferramenta útil incrível para gerenciar partições. Na minha opinião, é um pouco mais útil que o fdisk. Entre o Gparted e o DD, eu consegui gerenciar minhas partições e usar as ferramentas do Ubuntu para atualizar do 12.04 LTS para o 14.04 LTS.

Doc
fonte
A partição de inicialização não precisa ser descriptografada. Eu não tenho uma partição separada / de inicialização, é apenas parte dos meus principais rootfs criptografados. O Grub pode inicializar em tal configuração muito bem. Inicialização II da minha partição 1 MiB EFI. E enquanto o redimensionamento / inicialização executa aproximadamente essas etapas, não há necessidade de executá-las manualmente. Você pode apenas usar o KDE Partition Manager 3.0 para executar todas essas etapas. Por exemplo, eu realizo algumas operações aqui em meus rootfs criptografados de dentro do sistema sem usar o live cd youtube.com/watch?v=FKCQ7pJN1vY Embora o live cd seja necessário para mover a partição luks.
Andrius Štikonas