分区未显示在/ dev中


13

我最近从一台计算机上卸下了4TB硬盘驱动器,以便直接从另一台计算机上访问文件。卸载过程似乎没有问题。将硬盘驱动器连接到另一台计算机时,该硬盘驱动器在“ / dev”中被识别为sdb,但是未出现分区“ sdb1”,因此无法安装它。如果我跑

fdisk -l /dev/sdb


WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot          Start     End      Blocks      Id  System
/dev/sdb1               1  4294967295  2147483647+  ee  GPT

出现sdb1分区。由于这是一个4TB分区,因此我也运行了命令

parted /dev/sdb

GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ASMT 2105 (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

然后键入“打印”。在这种情况下,不会显示sdb1分区。

为什么这里的信息不匹配?这是否意味着该分区已被删除?有什么办法可以恢复该分区并将其挂载吗?

提前非常感谢你


/ dev / sdb1行不出现而/ dev / sdb行出现的原因有三个。1.因为该磁盘上没有分区表,因此未创建分区表。2.分区表已损坏或3.分区表中包含一个主文件系统,由于该计算机未安装该库,因此该计算机无法识别该文件系统。补救措施:您可以使用fdisk /dev/sdb并键入'p'来在分区表上运行诊断,以获取更多信息。如果该分区在那里并且没有损坏,并且您有可以解析和读取的库,则应显示该行。
埃里克·莱斯钦斯基

Answers:


16

运行命令partprobe以使计算机重新扫描磁盘上的分区。


感谢您的回复。我尝试运行该命令,以及仅重新启动整个计算机,但均未成功。
rmsrms1987

输出是fdisk -l /dev/sdb什么?还有什么输出dmesg
劳伦斯

1
@ rmsrms1987这很奇怪...您正在4TiB分区上使用fdisk,它似乎工作正常。但是,本文ibm.com/developerworks/linux/library/l-gpt/index.html解释说,MBR无法处理大于2 TiB的分区(只能由GPT处理),而fdisk无法处理GPT。这似乎暗示您的磁盘上有MBR。您能给我们fdisk -l / dev / sdb的输出吗?TY
MariusMatutiae

我相信该分区是用GNU Parted创建的,因为它超过2TB,但是当我尝试通过此方法访问时,没有任何输出。由于某些原因,仅在使用fdisk时出现sdb1。
rmsrms1987

1
我已经编辑了原始文章,以显示fdisk的更详细的输出和parted输出。再次感谢您为我解决此问题。
rmsrms1987

3

我不知道这是否仍然是最新的问题,但是我的一个硬盘驱动器也遇到了同样的问题。我曾经testdisk告诉过它分析磁盘。它找到了丢失的分区并更新了磁盘分区表。然后,我运行命令partprobe,分区显示在/ dev /中。


这看起来像是另一个答案的重复。
bwDraco

1

这可能不是您的问题,但是我遇到了类似症状的问题,该问题是由于驱动器上存在RAID超级块引起的。

现在,理所当然的是,我还是想擦除驱动器上的所有内容,因此不建议您这样做。但是,mdadm --zero-superblock /dev/sdb就我而言,这为我做了the俩。


0

没有人谈论过从支持GPT的现代LiveCD / LiveUSB引导吗?

只需尝试使用任何现代Linux的Live发行版来引导计算机,还可以尝试使用GParted实时磁盘,SystemRescueCD等。

可能是您所使用的计算机与GPT和/或<2TiB磁盘不兼容,也可能是不支持> 2TiB磁盘的SATA控制器(我看到有些在我的手上,有些在主板上,有些在USB机箱上)。 ..而您是4TiB,那也是最糟糕的情况,某些控制器仅支持最多3 TiB,但每个磁盘不支持4TiB或更多。

为什么在使用fdisk -l时看到主分区?您很可能会看到保护GPT分区的“保护性” MBR分区;存储在磁盘的第一个扇区上的磁盘...大多数磁盘问题> 2TiB的SATA控制器,还有一些仅问题> 3TiB的SATA控制器,可以看到磁盘的第一个2TiB / 3TiB,因此他们看到了MBR(第一个扇区)正确,但GPT则不正确,因为GPT在MBR之后和磁盘的最末端存储数据。

尝试同时确保这两点:您具有GPT兼容性(使用gfisdk代替fdisk检查),并且SATA控制器不仅限于<2TiB,而且不限于<3TiB。

最好的检查方法:从任何LiveLinux引导,例如GParted,SystemRescueCD等,并尝试列出分区(带有fdisk),而Modern fdisk -l可以列出GPT分区。

PD:MBR字段结构将可用区域限制为第一个2TiB,这是因为字段长度(MBR设计时具有该限制)。


0

尽管fdisk(取决于版本)将尝试在4TB驱动器上创建分区,甚至将分区类型标记为GPT,但该分区将无法被parted识别。

解决方案是删除使用fdisk创建的分区,然后使用parted来完成整个操作:

parted /dev/sdb
mklabel gpt
unit TB
mkpart primary 0 3
print
quit

您可能需要运行“ mkpart primary 0 3TB”,而不是“ mkpart primary 0 3”。

在极少数情况下,您在此之后看不到/ dev / sdb1,请运行partprobe并再次查看。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.