Localização no disco para escrever uma bandeira de byte?

1

Estou escrevendo um utilitário de atualização para um dispositivo Linux incorporado pelo qual sou responsável.

Estou criando uma configuração básica lado a lado, onde as atualizações são aplicadas a uma partição de teste e, em seguida, o carregador de inicialização é alterado para a partição de teste, alterando a partição primária para a nova de teste.

No entanto, o dispositivo incorporado usa um cartão CF, conhecido por algumas vezes gravar dados fora de ordem, etc. Por esse motivo, se eu montar um sistema de arquivos como leitura / gravação, há uma chance de corrupção. Portanto, não consigo montar minha partição de bootloader RW para apontar para a nova partição.

Existe um local no disco no qual posso escrever com segurança um único byte , onde o byte representa um 0 para a primeira partição ou um 1 para o segundo? Mesmo um cartão CF não pode estragar uma única gravação de byte, o que deve acontecer atomicamente.

Estou usando um disco formatado do DOS MBR.

    
por David Pfeffer 25.04.2012 / 15:15

1 resposta

2

Crie uma terceira partição minúscula para armazenar seus dados. Qualquer outro local em seu disco, mais cedo ou mais tarde, trará problemas se você não puder confiar nos arquivos.

Às vezes, os últimos clusters de um disco não podem ser endereçados na entrada FAT, o que pode ser uma opção, mas depende muito do tamanho exato do dispositivo.

A CPU / dispositivo embutido tem EEPROM? Esse seria um lugar ideal para um único byte.

    
por 25.04.2012 / 19:03