A abordagem de Dru provavelmente funcionará, embora eu não tenha testado. Duas outras abordagens são usar uma combinação de sgdisk e parted ou usar sgdisk de maneira mais complexa. Especificamente, você poderia fazer qualquer um de:
- Use
sgdisk -epara mover os dados da tabela de partições de backup para o final do disco, seguido porparted {device-file} resize...para redimensionar a partição. Usar dois utilitários em vez de um é um pouco deselegante, mas deve funcionar. - Use
sgdisk -e {device-file}para mover os dados da tabela de partição de backup para o final do disco, seguido porsgdisk -d...para excluir a partição e, em seguida,sgdisk -n...para criar uma nova partição em seu lugar. Você provavelmente pode combiná-los em apenas dois ou talvez apenas uma chamada parasgdisk. Uma ressalva é que essa abordagem alterará o valor do GUID para a partição. Se for importante que permaneça o mesmo, você precisará extrair esses dados e redefinir o valor do GUID - ou, considerando que está começando a partir de uma imagem conhecida, você pode armazenar o valor do GUID como parte do script e redefini-lo sem primeiro extraí-lo.
Note que eu não testei nenhuma dessas abordagens, então não posso garantir a elas mais do que posso garantir o método de Dru.