如何将 520 字节扇区硬盘hdd格式化为 512 字节扇区

您所在的位置:网站首页 如何低格固态硬盘 如何将 520 字节扇区硬盘hdd格式化为 512 字节扇区

如何将 520 字节扇区硬盘hdd格式化为 512 字节扇区

2024-07-12 10:49| 来源: 网络整理| 查看: 265

Sector(扇区)是硬盘中最小储存单位,一般情况下会是512 bytes的大小,但是使用在专业的Storage 储存装置上会使用520 bytes大小的Sector size。这“多出”的8 bytes是做什么的呢?通过查阅相关资料,多出来的那8 bytes厂商可以依据自己需求来定义,大多是储存错误检查相关的信息。这种具有520 bytes大小扇区的硬盘在接到我们常用硬件基础上的Windows或者Linux系统机器,操作系统启动非常慢,甚至可能因为磁盘问题导致系统异常,当用磁盘工具或者数据恢复相关工具对磁盘进行读取操作时,返回错误信息,硬盘无法进行任何读写操作,俗称“非标硬盘”。那我们如果在没有专业存储机的情况下,如何使用520 bytes扇区的硬盘呢?要想改变扇区大小,就需要借助相关工具,在Windos / Linux下有什么工具是可以改变Sector size呢?答案是肯定有的,市面上也有相关企业在运营这方面的软硬件。我们今天要说的,当然是Free的,而这个工具就是Sg,这个工具在RHEL系列镜像中皆有提供, 在我们今天的实际操作中用到的Ubuntu server 20.04系统也早有预装该工具,所以我们无需安装。sg_format主要是由套件sg3_utils、 sg3_utils_libs所提供,在其他Linux操作系统上,我们可以通过安装这个套件实现我们需要的功能。

基本环境

系统镜像 ubuntu-20.04.2-live-server-amd64.iso -主机硬件 Thinkserver -存储磁盘 HITACHI 450G 2.5吋 SAS (Sector size:520)

一、准备

1、开机进入操作系统(开机前及开机过程中存储磁盘暂时不要插上去,否则可能因为储存磁盘报错或者硬件故障导致系统无法正常操作,并浪费时间); 2、开机完成后,插入数据硬盘HITACHI 450G(当然前提是得支持硬盘热插拔),硬盘盘位灯可能闪烁; 3、待硬盘盘位灯状态不再闪烁,我们可以通过执行命令(lsblk通常是无法看到未格式化完成520扇区的硬盘):

ls /dev/sg*

来查看盘位上的硬盘数量是否大致正确,当然这其中如果服务器硬件存在阵列卡以及必要的系统硬盘,它们都会被识别为其中的sg符号设备,也就是说sg0可能是系统盘,sg1可能是阵列卡,磁盘编号顺序根据系统识别顺序而来。我们可以通过执行sudo sg_format /dev/sg[number]来获取相关硬件信息(产品名称、规格、序列号以及磁盘扇区大小等等),比如:

test@test:~$ sudo sg_format /dev/sg0 ATA TurXun S500 128G 207 peripheral_type: disk [0x0] Unit serial number: 2021000001325 LU name: 5000000000000533 Mode Sense (block descriptor) data, prior to changes: Number of blocks=0 [0x0] Block size=512 [0x200] Read Capacity (10) results: Number of logical blocks=250069680 Logical block size=512 bytes No changes made. To format use '--format'. To resize use '--resize'

根据实际硬件,可以判断为系统硬盘↖

test@test:~$ sudo sg_format /dev/sg1 NETAPP X421_HCOBD450A10 NA05 peripheral_type: disk [0x0] > Unit serial number: PNGW7G4Y LU name: 5000cca012318808 Mode Sense (block descriptor) data, prior to changes: Number of blocks=879097968 [0x3465f870] Block size=520 [0x208] Read Capacity (10) results: Number of logical blocks=879097968 Logical block size=520 bytes No changes made. To format use '--format'. To resize use '--resize'

根据实际硬件,可以判断为数据硬盘↖

test@test:~$ sudo sg_format /dev/sg12 LSI Bobcat 1302 peripheral_type: enclosure services device [0xd] Unit serial number: LU name: 56c92bf000345abd MODE SENSE (10) command: Illegal request, Invalid opcode try '-v' for more information sg_format failed: Illegal request, Invalid opcode

根据实际硬件,可以判断为阵列卡↖

二、低格操作

1、根据执行sudo sg_format /dev/sg[number]获取的信息中,我们可以得到具有Block size=520的磁盘sg[number],接下来就是对其进行低格操作,执行sudo sg_format -v --format --size=512 /dev/sg[number],例:

test@test:~$ sudo sg_format -v --format --size=512 /dev/sg1 NETAPP X421_HCOBD450A10 NA05 peripheral_type: disk [0x0] PROTECT=1 > Unit serial number: PNGW7G4Y LU name: 5000cca012318808 mode sense(10) cdb: 5a 00 01 00 00 00 00 00 fc 00 Mode Sense (block descriptor) data, prior to changes: Number of blocks=879097968 [0x3465f870] Block size=520 [0x208] mode select(10) cdb: 55 11 00 00 00 00 00 00 1c 00 A FORMAT UNIT will commence in 15 seconds ALL data on /dev/sg1 will be DESTROYED Press control-C to abort A FORMAT UNIT will commence in 10 seconds ALL data on /dev/sg1 will be DESTROYED Press control-C to abort A FORMAT UNIT will commence in 5 seconds ALL data on /dev/sg1 will be DESTROYED Press control-C to abort Format unit cdb: 04 18 00 00 00 00 Format unit has started Format in progress, 1.99% done Format in progress, 3.99% done

执行后,通常是有15秒的犹豫期,也就是在执行命令后15秒内,你可以通过Ctrl+c终止掉任务,避免操作错误。最下方Format in progress, 3.99% done 中的百分比就是低格进度,当这个过程结束,硬盘即从520扇区低格到512扇区完毕; 2、格式化完毕后,通常在没有刷新磁盘设备总线的情况下,执行lsblk任然会找不到可用的存储硬盘,我们可以通过执行下列命令去刷新磁盘总线: 查找所有磁盘总线,并记下host[number];

ls -l /sys/class/scsi_host/

依次刷新总线,直到所有磁盘识别完毕

sudo sh -c "echo '- - -' > /sys/class/scsi_host/host0/scan" sudo sh -c "echo '- - -' > /sys/class/scsi_host/host1/scan" sudo sh -c "echo '- - -' > /sys/class/scsi_host/host2/scan" sudo sh -c "echo '- - -' > /sys/class/scsi_host/host3/scan" ...

3、当然也有笨方法,对所有格式化的数据硬盘重新插拔或者干脆重启系统…; 4、待磁盘识别完毕,你就可以进行分区和格式化文件系统相关操作了。

三、批量操作

1、可以通过循环获取sudo sg_format /dev/sg[number]信息,筛选Block size=520磁盘进行格式化操作; 2、通过nohup命令可以将命令切入后台执行,后续进度可以通过sudo sg_format /dev/sg[number]获取格式化进度; 3、通过循环获取磁盘总线number,批量刷新磁盘状态(也可以通过echo 1 > /sys/block/sdx/device/delete剔除特定问题磁盘); 4、对于系统lsblk已经识别到的磁盘,但是分区和格式化时出错,而这个错误不是由于硬盘硬件问题导致的,可能由于格式化进程意外中止导致,这种情况可以通过再次低格得到解决,定位查询:

ls -l /dev/disk/by-id/ |grep sdx

得到磁盘scsi ID号(eg:scsi-35000cca012318808) 再通过

sudo sg_format /dev/sg[number]

得到LU name: 5000cca012318808,与之前csi ID号比对得到具体磁盘sg[number]; 5、如果需要对磁盘进行硬件定位,也可以参考上条得到Unit serial number: PNGW7G4Y或者LU name: 5000cca012318808,并与阵列相关工具获取的磁盘信息进行比对得到sloto number,然后借助工具并点亮磁盘盘位状态灯。 当然这篇文章仅提供思路,实际操作遇到相关问题,欢迎大家下方讨论吧!

致谢

参考: [1]: https://forum.level1techs.com/t/how-to-reformat-520-byte-drives-to-512-bytes-usually/133021 https://forum.level1techs.com/t/how-to-reformat-520-byte-drives-to-512-bytes-usually/133021 感谢wendell分享!

转载请注明出处



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3