Eu finalmente tive uma chance hoje de dar uma boa olhada nesse problema, e felizmente a solução foi (principalmente) mais direta do que eu estava preocupado.
O que me ajudou foi aprender um pouco mais sobre como minha distro (Debian) configura partições de disco em uma instalação guiada ( link ), e sobre como as partições lógicas são criadas e especificadas no disco ( link ).
Depois de ler as anotações e verificar novamente, voltei para fdisk
e:
- Reescreveu o MBR (
o
) para começar de novo. - Criada (
n
) umap
rimary partition '1' com os setores "sdh1" anotados na saída do gdisk (2048 - 119883775). - Criada (
n
) uma partiçãoe
xtended '2' iniciando no primeiro setor disponível e abrangendo o restante do disco (119883776 - ...). - Criada (
n
) uma partiçãol
ogical '5' com os setores "sdh5" anotados na saída do gdisk (119885824 - 125044735). - Alterou o tipo (
t
) na partição '5' para Trocar (digite o código '82'). - Alterou o sinalizador inicializável (
a
) em "sdh1". - Escrevi minhas alterações (
w
) e saí.
Eu reiniciei para testar essa tabela de partição e o sistema não inicializou. Então, a partir daqui, tive que desconectar o disco e montá-lo em outro PC. Mas, felizmente, tudo que eu tinha esquecido de fazer era:
- Reinstale o GRUB no MBR (agora reformatado). Uma vez que o disco foi montado no meu outro PC, usei
grub-install --root-directory=/path/to/mount/point /dev/sdX
(onde sdX era o arquivo do dispositivo para o disco montado no meu outro PC).- Se eu tivesse feito isso antes de reinicializar a máquina, imagino que seria
grub-install --root-directory=/ /dev/sdh
.
- Se eu tivesse feito isso antes de reinicializar a máquina, imagino que seria
A configuração do grub no disco ainda estava bem, então reinstalar o próprio grub foi o necessário. Depois de conectar o disco novamente e inicializar, tudo parece estar funcionando perfeitamente até agora.
Uma lição importante que tirei disso foi que / sys / block data para partições estendidas é um pouco enganador. As informações de /sys/block/.../size para "sdh2" apenas reivindicaram 2 blocos, o que excluiu o tamanho real da partição, necessário para ajustar "sdh5" (minha partição lógica / swap) dentro dela.
EDIT Para uma boa medida, a saída atual fdisk -l
no meu disco (que, após a reinicialização, agora se rotula como "sdi" em vez de "sdh" como antes) é:
Disk /dev/sdi: 64.0 GB, 64023257088 bytes
255 heads, 63 sectors/track, 7783 cylinders, total 125045424 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: <...>
Device Boot Start End Blocks Id System
/dev/sdi1 * 2048 119883775 59940864 83 Linux
/dev/sdi2 119883776 125045423 2580824 5 Extended
/dev/sdi5 119885824 125044735 2579456 82 Linux swap / Solaris