Eu posso ler a partir do disco rígido, mas não consigo montá-lo somente leitura

1

Eu tenho alguns problemas com meu disco rígido - talvez esteja quebrado, talvez o cabo SATA esteja quebrado, estou apenas investigando. Uma coisa é estranha.

Eu posso ler dados brutos deste dispositivo usando:

# cat /dev/gcw/root > /dev/null

Mas quando tento montar este dispositivo usando:

# mount -o ro /dev/gcw/root /mnt/lvroot

Eu recebo erros. Dmesg diz:

[ 3561.281369] ata6.01: failed command: WRITE MULTIPLE EXT
[ 3561.281384] ata6.01: cmd 39/00:08:27:92:1c/00:00:39:00:00/f0 tag 0 pio 4096 out
[ 3561.281384]          res 51/84:01:2e:92:1c/84:00:39:00:00/f0 Emask 0x10 (ATA bus error)
[ 3561.281393] ata6.01: status: { DRDY ERR }

Minha pergunta é: por que o sistema operacional está tentando gravar neste dispositivo (o comando "WRITE MULTIPLE EXT" é para gravação) quando tento montar este dispositivo somente para leitura?

    
por user983447 18.04.2015 / 09:05

1 resposta

1

Existem sistemas de arquivos para os quais uma montagem somente leitura aciona uma operação de gravação. O único caso de que estou ciente é o journaling dos sistemas de arquivos, no qual, se você monta um sistema de arquivos que não foi montado corretamente, ele aciona uma reprodução do diário, mesmo para uma montagem somente leitura.

Com o ext3 ou ext4 no Linux, passe a opção noload mount:

mount -o ro,noload /dev/gcw/root /mnt/lvroot

Infelizmente, isso faz com que o diário não seja reproduzido, nem mesmo na memória, o que pode fazer com que o sistema de arquivos mostre dados inconsistentes.

Acho que é possível criar um dispositivo de bloco virtual, de modo que as gravações vão para uma camada na memória, mas o conteúdo original é fornecido pelo dispositivo de bloco no disco. Consulte GNU / Linux: dispositivo de bloqueio de sobreposição / empilhável dispositivo de bloco para um exemplo próximo ao seu cenário.

    
por 19.04.2015 / 00:08