有没有办法在现代 Linux 中强制使用特定的 CHS 驱动器几何形状?

有没有办法在现代 Linux 中强制使用特定的 CHS 驱动器几何形状?

我确实有一些,真的旧的 IDE 硬盘驱动器,例如 Conner CP3024 驱动器,其大小高达 21 MB。我一直在尝试挽救它,但磁盘几何形状似乎有些奇怪。

驱动器的数据表表明,您应该在 BIOS 中将 CHS 驱动器几何形状设置为 615/4/17,这是某种“虚拟”几何形状,它使用 Conner 称为“通用转换模式”的某些功能。但这不是身体的驱动器的几何形状,当您让 BIOS 自动检测或使用 hdparm 查询驱动器时获得该几何形状,显示为 636/2/33。

尝试读取驱动器时会出现问题。由于某种原因,驱动器认为它处于虚拟几何模式,并且会对每个扇区号高于 17 的扇区号抛出读取错误。我最终通过使用 Linux 发行版的非常旧的版本修复了这个问题,您可以在其中作为启动hdc=615,4,17参数传递并强制Linux 遵守一定的驱动器几何结构。

随着 Linux 迁移到 libata,此功能似乎已被删除 - 而且我找不到任何方法在现代 Linux 内核下执行相同的操作。是否存在替代驱动器几何形状的方法?

答案1

#!/bin/bash

# Install hdparm if not already installed (for Debian-based systems)
sudo apt-get install -y hdparm

# Set the desired geometry using hdparm
sudo hdparm -g 615,4,17 /dev/sdX

# Disable LBA translation and force the drive to use the specified geometry
sudo hdparm -N p615,4,17 /dev/sdX

请注意,此脚本提供了一个用于使用较旧的 IDE 硬盘驱动器的通用框架,您可能需要根据您的特定设置和要求对其进行调整。请记住将 /dev/sdX 替换为适合您系统的设备标识符。

相关内容