将逻辑扇区大小更改为 4k

Don*_*ion 6 linux partition

很多次被问到,但没有确凿的答案:能否将逻辑块大小从 512e 更改为 4k(物理块大小)?

使用的解决方案hdparm --set-sector-size 4096在 qemu/kvm 下不起作用,因此如果不使用我没有的备用设备,我无法真正测试它。

能否说服 Linux 内核切换到 4k 扇区大小而不是 512e?最好以某种方式,可以在虚拟机中进行测试。

小智 8

将 HDD 更改为原生 4k 扇区至少适用于 WD Red Plus 14 TB 驱动器,但会丢失所有数据。数据实际上并未被擦除,但分区表和文件系统在更改后无法找到,因为它们现在的 LBA 位置不正确。

hdparm --set-sector-size 4096 --please-destroy-my-drive /dev/sdX
Run Code Online (Sandbox Code Playgroud)

此命令将您的驱动器更改为本机 4k 扇区。该更改在驱动器重新启动后仍然存在,但您可以稍后通过设置 512 来恢复它。调整磁盘后立即重新启动。仅在重新启动后才尝试对驱动器进行分区并添加数据(gdisk 将显示 4096/4096 扇区大小)。

  • 调整后尝试直接访问驱动器时,内核出现读取错误。可以使用控制器重新扫描或热插拔来代替,但对于大多数人来说,重新启动机器是最简单的。

  • 如果您尝试添加以 512 字节扇区大小创建的任何磁盘映像(例如用于安装发行版的 .iso 文件),预计会出现问题。

  • 对于 NVME SSD,可以使用该实用程序更改 LBA 扇区大小nvme(在nvme-cli基于 Debian 的 ditros 上的软件包中)。


Ste*_*itt 2

\n

能否将逻辑块大小从 512e 更改为 4k(物理块大小)?

\n
\n

您可以要求驱动器更改其逻辑块大小。这就是hdparm --set-sector-size 4096作用。

\n

在驱动器中实现这一点的事实有两个实际后果:

\n
    \n
  • 它仅在驱动器支持时才有效(正如Johan Myr\xc3\xa9en 所说);
  • \n
  • 它只能通过访问驱动器本身来完成,因此只有当虚拟机被授予对目标驱动器的完全访问权限时,虚拟机中的测试才有效。
  • \n
\n