ハードドライブから読み取ることはできますが、読み取り専用でマウントすることはできません。

ハードドライブから読み取ることはできますが、読み取り専用でマウントすることはできません。

私のハードドライブにいくつかの問題があります。問題かもしれませんし、SATAケーブルが問題かもしれません。調査中です。何かとても奇妙です。

以下を使用して、このデバイスから生データを読み取ることができます。

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

しかし、次のコマンドを使用してこのデバイスをインストールしようとすると:

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

エラーが発生します。デメグはこう言いました。

[ 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 }

私の質問は:読み取り専用でマウントしようとしたときにOSがこのデバイスに書き込みを試みるのはなぜですか(書き込みのために「WRITE MULTIPLE EXT」コマンド)

答え1

一部のファイルシステムでは、読み取り専用マウントが書き込み操作をトリガします。私が知っている1つの状況は、ジャーナルファイルシステムの場合です。完全にアンマウントせずにマウントすると、読み取り専用マウントを使用してもジャーナル再生がトリガされます。

Linuxのext3またはext4の場合は、noloadマウントオプションを渡します。

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

残念ながら、これはログがメモリ内でまったく再生できなくなり、ファイルシステムに一貫性のないデータが表示される可能性があります。

メモリ階層に書き込みが行われるように仮想ブロックデバイスを作成すればよいのですが、元のコンテンツはディスクブロックデバイスで提供することが可能ではないかと思いました。バラよりGNU/Linux: オーバーレイブロックデバイス/スタック可能ブロックデバイスあなたのようなシナリオの例を見てください。

関連情報