使用:
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
我们有一个原始磁盘 = 全零 =unrecognized
是fdisk -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 是破坏性写入测试