使用原始磁盘,在分区之前,在文件系统之前,如何映射坏块?

使用原始磁盘,在分区之前,在文件系统之前,如何映射坏块?

使用:
neofetch --stdout |grep 'OS:'
操作系统:Kubuntu 22.04.3 LTS x86_64

将磁盘归零后:

time sudo dd if=/dev/zero of=/dev/sd_ bs=1M status=progress               #Zero_disk_delete_wipe  

我们有一个原始磁盘 = 全零 =unrecognizedfdisk -l

编辑
fdisk -l 不正确
sudo parted -l正确

因此
sudo parted -l |grep -i 'Error'
Error: /dev/sda: unrecognised disk label

对于原始磁盘,在创建ext4文件系统之前,如何映射坏块?
使用什么程序?
使用什么命令?
是否可以在文件系统和分区之前在原始磁盘上映射坏块?


猜测是——在映射坏块之前我们必须有一个文件系统。
请确认上述猜测。


使用原始磁盘,ext4文件系统已完成,共 6 个步骤:

sudo parted --align opt /dev/sd_ mktable gpt                              #Make_Partition_Table GPT 
sudo parted --align opt /dev/sd_ mkpart PART_1  0% 100%                   #ext4 Partition disk / Label 
sync; sudo partprobe ; sudo parted /dev/sda align-check optimal 1 ; sync  #Okresult = 1 aligned 
time sudo mkfs.ext4 -L _xxxxG_GEX4 /dev/sd_1                              #ext4_wait_17_seconds G=GPT EX4=ext4 filesystem
sync; sudo chgrp adm /media/u3/_xxxxG_GEX4 ;sync                          #disk permissions for ext4 not NTFS 
sync; sudo chmod g+w /media/u3/_xxxxG_GEX4 ;sync                          #disk permissions for ext4 not NTFS 

文件系统映射坏块之后:

time sudo e2fsck    -fccky      /dev/sd_1                              #6hours/1000GBor1TB sd_1 has filesystem ext4  
e2fsck 1.46.5 (30-Dec-2021)
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done                                                 
_xxxxG_GEX4: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
_xxxxG_GEX4: ***** FILE SYSTEM WAS MODIFIED *****
_xxxxG_GEX4: 11/61054976 files (0.0% non-contiguous), 4114691/244190208 blocks
real    340m11.067s = 20411.067 seconds ~ 6hours 
user    0m0.292s
sys     0m1.126s

HDD
sudo blockdev --getsize64 /dev/sd_ 
1000204886016 bytes / 20411.067 seconds = 49,003,067 ~ 49MB/s 

参考:
“现代硬盘支持自我监控、分析和报告技术 (SMART),它会自动映射出坏块,并从正常块池中替换它们。如果您在操作系统级别看到坏块,则意味着您的磁盘已经用完了其备份块的“紧急供应”。通常,这表明磁盘已经快要报废了。虽然它可能只靠一个坏块持续数月,但它更有可能在不久的将来开始产生更多坏块。事实上,这可能是灾难性的,坏块数量会不断增加,在几分钟内消耗大量数据。”
是否可以标记或隔离硬盘上的坏块?


问题:
是否有可能在文件系统之前将坏块映射到原始磁盘上?

换句话说,
在完成分区之前和
在选择NTFS文件系统之前或
在选择ext4文件系统之前
,是否可以在上述 2 个文件系统之前在原始磁盘上映射坏块?

--

答案1

Linux 具有坏块命令参考这里:

https://linux.die.net/man/8/badblocks

另请参阅此处

https://www.geeksforgeeks.org/badblocks-command-in-linux-with-examples/

badblocks -o out.txt -s /dev/sdb

-sn 是非破坏性写入测试

-sw 是破坏性写入测试

相关内容