fdisk trava em “Sincronizar disco” ao redimensionar uma imagem bruta do QEMU

1

Estou usando o fdisk para redimensionar as partições em uma imagem bruta do QEMU. Quando escrevo a nova tabela de partições, ela é interrompida em "Sincronizando discos".

Observe que estou executando o fdisk como não-raiz, pois não preciso de raiz para editar o arquivo de imagem.

O que faria com que "Sincronizar discos" fosse interrompido assim?

    
por Lorin Hochstein 28.02.2012 / 12:42

2 respostas

3

Após imprimir a mensagem "Sincronizando disco", o fdisk chama sync (2) syscall, o que faz com que todas as modificações em buffer dos metadados e dados do arquivo sejam gravadas nos sistemas de arquivos subjacentes. Espera-se que esta operação leve algum tempo, mas não deve ser interrompida para sempre. Em caso afirmativo, você poderá ver em qual função no kernel ele está travado em / proc / FDISK_PID / stack.

A questão é por que o fdisk chama sync () ao trabalhar com o arquivo de imagem (dispositivo não real). Não deve ser necessário IMHO.

    
por 28.02.2012 / 16:40
0

Possível solução alternativa:
Eu tive o mesmo problema e a maneira de contornar isso foi usar sfdisk em vez de fdisk . Você descobrirá que pode fazer qualquer coisa com o fdisk do sfdisk.

Por exemplo, em vez de fazer:

  fdisk $image <<FDISK
p
d
$partition
n
p
$partition
$start
p
w
FDISK

eu fiz:

echo ",+," | sfdisk -N2 $image

De repente, não há problemas de sincronização.

    
por 06.01.2016 / 11:21

Tags