Linuxが物理ハードドライブの*すべて*自動読み取りを試みないように強制する方法は?

Linuxが物理ハードドライブの*すべて*自動読み取りを試みないように強制する方法は?

ハードドライブのパーティションテーブルやスーパーブロックに残念ながら回復できないセクタがあり、LBAにアクセスするとディスクファームウェアがロックされます。私は物理的な不良セクタから離れたデータを回復することに興味があります。 Linuxにドライブに何もしない/dev/sdXように指示できれば、そうする可能性が高いと思います。sg_read_longsg_write_longおよびなど、明示的に実行されているツールですddrescue

現在、私のLinuxインストール(Ubuntu)はパーティションテーブルを読み込み、自動的にマウントしようとします。マシンが起動した後、ドライブがUSB経由で接続されたときにこれが発生したくありません。 mtab、Nautilusなど、すべてのユーザーモード項目を除いて、ドライブのすべての自動読み取りを停止するには、カーネル構成オプションを設定する必要がありますか?

答え1

多くの自動化を実行するユーザースペース全体(systemd、udevなど)を削除する必要があるため、busyboxとddrescue(または他の必要なもの)を使用して最小限のinitramfsを構築できます。このガイドを参考として使用できます。https://wiki.gentoo.org/wiki/Custom_Initramfs

これに加えて、パーティションテーブルをサポートしていないカスタムカーネルをコンパイルする必要があります。それ以外の場合、カーネル自体は自動的にパーティションテーブルを読み取ろうとします。

人々は自分のパーティションを表示したいので、これは珍しい設定なので、通常、すべてのカーネルは次をyesに設定します。

CONFIG_MSDOS_PARTITION=y # for old school dos/mbr partitions
CONFIG_EFI_PARTITION=y   # for new GPT/UEFI partitions
# but there are many others like:
CONFIG_AIX_PARTITION=y
CONFIG_MAC_PARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y

HDDからカーネル読み取りを削除するには、そのカーネルをすべて無効にする必要があります。どの種類のパーティションテーブルもサポートしていないカーネルを作成してください。

それでも、ドライブをホットプラグする前に、カスタムカーネル+ initramfsを起動する必要があります。それ以外の場合、BIOSはデバイスの起動パーティションを検索します。無効にすることはできますが、直接制御することはできません。

回復に頑張ってください。


ドライブのすべての自動読み取りを停止するには、カーネル設定オプションを設定する必要がありますか?

カーネルパラメータを使用すると、これははるかに簡単になりますが、私はそれを知りません。あなたができる最善の方法は、デバイスを完全にブラックリストに登録して消えるようにすることです。削除したいが何も修復できない死んだ組み込みデバイスに役立ちます。

関連情報