如何強制 Linux 不嘗試任何自動讀取物理硬碟?
我的硬碟在分區表或超級塊中有一個不幸的不可恢復扇區,這會導致磁碟韌體在訪問該 LBA 時鎖定。我對恢復遠離物理壞扇區的數據感興趣,如果我可以指示 Linux 對驅動器完全不做任何事情,我認為我很有可能做到這一點,除非它對應於我
/dev/sdX
使用我執行的工具讀取明確如sg_read_long
,sg_write_long
和ddrescue
.目前,我的 Linux 安裝(Ubuntu)嘗試讀取分區表並自動掛載;我不希望在機器啟動後通過 USB 連接驅動器時發生任何這種情況。除了 mtab、Nautilus 等所有使用者模式的內容之外,是否需要設置核心配置選項才能停止對驅動器的所有自動讀取?
您必須刪除執行大量自動化操作(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 將已經掃描設備以查找引導分區。您可能可以禁用它,但您無法直接控制它。
祝你康復順利。
我需要設置核心配置選項以停止對驅動器的所有自動讀取嗎?
核心參數會使這更容易,但我不知道。最多您可以將設備完全列入黑名單,使其消失。對於您只想擺脫的當機內置設備可能很有用,但是您也無法從中恢復任何東西。