Batch criando partição e depois nó de partição; falha de acesso

1

Portanto, eu tenho um programa que pega um dispositivo, particiona-o e cria o nó de dispositivo para a partição. O problema é que o kernel não pega o dispositivo até que algum tipo de nova varredura seja forçado. Por exemplo:

  • Dispositivo de partição
  • Criar nó
  • nó do cat > cat: / dev / xxx: nenhum desses dispositivos ou endereço

Mas isso funciona:

  • Dispositivo de partição
  • Criar nó
  • Execute o cfdisk / dev / xxx e saia instantaneamente
  • nó do cat > Funciona bem

Por que isso? Existe algum tipo de ioctl para escanear o barramento SCSI ou algo do tipo?

E isso não funciona:

echo "- - -" > /sys/class/scsi_host/hostX/scan
    
por Gala 08.08.2016 / 15:24

1 resposta

1

Use partprobe /dev/xxx

partprobe faz parte do pacote parted . Na página do manual:

partprobe is a program that informs the operating system kernel of partition table changes'

Outra alternativa se você tiver um dispositivo de bloco particionado (por exemplo, um arquivo de imagem de disco) e desejar criar automaticamente nós de dispositivo (por exemplo, / dev / loop *) para ele E informar o kernel, use kpartx . É chamado automaticamente em eventos hotplug, como inserir uma unidade SATA USB ou hot-swap.

    
por 09.08.2016 / 00:08