Como uso a nova tabela fdisk sem reinicializar (kpartx)?

10

Quando executo o fdisk e mudo o tamanho de uma partição, o fdisk diz no final da saída:

The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)

Gostaria de fazer isso sem ter que reinicializar (e depois escrever um script que faça isso) Como usar kpartx para fazer isso corretamente? Eu tentei:

kpartx -f -v /dev/mmcblk0

Quais resultados:

mmcblk0p1 : 0 102400 /dev/mmcblk0 2048
mmcblk0p2 : 0 7657472 /dev/mmcblk0 104448

e:

kpartx -a -v /dev/mmcblk0

quais saídas:

device-mapper: reload ioctl on mmcblk0p1 failed: Invalid argument
create/reload failed on mmcblk0p1
add map mmcblk0p1 (0:0): 0 102400 linear /dev/mmcblk0 2048
device-mapper: reload ioctl on mmcblk0p2 failed: Invalid argument
create/reload failed on mmcblk0p2
add map mmcblk0p2 (0:0): 0 7657472 linear /dev/mmcblk0 104448

Isto é para um cartão SD em um raspi executando o debian.

EDIT: Para esclarecer o que estou tentando fazer; Estou excluindo um p3 não usado de um cartão SD e redimensionando p2 para preencher o cartão. O cartão contém atualmente uma pequena partição de inicialização p1 e p2 é onde o sistema operacional fica.

    
por Octopus 03.03.2014 / 17:07

3 respostas

6

Acredito que @derobert (que comentou a questão original) esteja correto. No caso do fdisking de uma partição que está sendo usada atualmente, parece que não há outra opção a não ser reinicializar.

Mesmo quando uso partprobe (obtido com apt-get install parted ), recebo a seguinte saída:

Error: Partition(s) 2, 3 on /dev/mmcblk0 have been written, but we have 
been unable to inform the kernel of the change, probably because it/they 
are in use.  As a result, the old partition(s) will remain in use.  You 
should reboot now before making further changes.
    
por 04.03.2014 / 00:06
5

Você deseja partx -u , não kpartx (que opera em dispositivos de mapeamento de dispositivo).

    
por 18.05.2015 / 04:01
1

Eu estava com esse problema porque esqueci de desmontar o dispositivo. Depois de um:

sudo umount /dev/sdb

fdisk funcionou corretamente.

    
por 11.09.2015 / 22:47

Tags