Answers:
可以读取分区的范围 /sys/block/sda/sda1/start
, /sys/block/sda/sda1/size
等等。值在扇区中。 在执行任何其他操作之前记下这些值,尤其是重新启动。
获得值后,可以使用重新创建分区 fdisk
。使用 u
命令将单元切换到扇区,然后通过输入创建分区
n
p
主/ l
ogical / e
xtended +
行业规模 fdisk
?你是什么意思 expert menu
?谢谢!
x
“额外的功能(仅限专家)”菜单,但实际上它不需要,你只需要使用 u
命令切换到扇区。
问题问题已经过去差不多两年了。昨天我们处于完全相同的情况:我们有一个带有2个磁盘的Linux软件RAID级别1。其中一个磁盘坏了,必须更换。我们交换了磁盘,然后想要将分区表从剩余的(工作)磁盘复制到新磁盘。不幸的是,我们将空分区表从新磁盘复制到旧磁盘。幸运的是,我们在重新启动计算机之前立即发现了这一点,因此正确的分区表在内核中仍处于活动状态。以下是我们为解决此问题所做的工作:
/sys/block/
文件系统如Gilles的回答所述。 fdisk
但不得不使用 gdisk
代替。 gdisk
与...非常相似 fdisk
除了没有必要指定 u
对于部门。 /sys/block/
。还有其他类似问题的答案可以说将分区大小减少一个,但这对我们来说并不是必需的。 sys/block
文件系统不包含有关文件系统类型的信息,因此我们使用它们提取它们 mount
。 BIOS boot partition
(通常是第一个分区)。 用分区表写完后 gdisk
,我们能够重新启动系统,一切运行正常。
就个人而言,我会使用从Trinity Rescue Kit CD运行的testdisk。这是有据可查的。不过,我不知道如何恢复第一个分区的覆盖区域。
我认为其他答案不够全面,并留有错误的余地。 这是一个实际的恢复工作的例子,我在任何地方都没有提到过一个小小的警告。 从/ sys / block / sda / *获取扇区开始和大小时,你必须记住从大小中减去1,否则你将关闭1个扇区。
还记得在fdisk中为扇区模式命中“u”。
这是我成功遵循的例子: 步骤1 - 在/ sys / block / sda / sda1中找到您的设备目录(更改/ sda和/ sda1以匹配您的磁盘设备名称和分区号)。
你必须在'start'和'size'上做一只猫,它代表分区的起始扇区,'size'代表它有多少扇区。
fdisk / dev / sda
/ SYS /块/ SDA [root @ server1 sda] #cat sda1 / start 2048 [root @ server1 sda] #cat sda1 / size 1024000
[root @ server1 sda] #cat sda2 / start 1026048 [root @ server1 sda] #cat sda2 / size 1464121344
步骤2 - 使用fdisk获取上面的扇区信息并输入它(记住在告诉fdisk结束扇区时从大小中减去1)
运行后,“按u”切换到扇区模式:
fdisk / dev / sda
命令(m求助):n 命令行动 扩展 p主分区(1-4) p 分区号(1-4):1 第一部门(63-1465149167,默认63):2048 最后一个扇区,+扇区或+大小{K,M,G}(2048-1465149167,默认1465149167):+ 102490
命令(m求助):n 命令行动 扩展 p主分区(1-4) p 分区号(1-4):2 第一部门(63-1465149167,默认63):1026048 最后一个扇区,+扇区或+大小{K,M,G}(1026048-1465149167,默认1465149167):+ 1464121343
#