得到一个“不是块特殊设备”。尝试在 CentOS 7.6 中挂载 8TB 磁盘时出错

acm*_*e64 1 centos hard-drive ext4

我正在尝试将 8TB 外部硬盘格式化并安装为 ext4,但它似乎无法正常工作。该硬盘是希捷 8TB 扩展台式机硬盘。型号为STEB8000402

\n\n

我可以使用 gdisk 创建分区:

\n\n
sdc               8:32   0   7.3T  0 disk\n\xe2\x94\x94\xe2\x94\x80sdc1            8:33   0   7.3T  0 part\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当我创建文件系统时,我收到一个奇怪的错误: \xe2\x80\x9c/dev/sdc1 不是块特殊设备。\xe2\x80\x9d 但它似乎完成了:

\n\n
# mke2fs -t ext4 /dev/sdc1\nmke2fs 1.42.9 (28-Dec-2013)\n/dev/sdc1 is not a block special device.\nProceed anyway? (y,n) y\nDiscarding device blocks: done\nFilesystem label=\nOS type: Linux\nBlock size=4096 (log=2)\nFragment size=4096 (log=2)\nStride=0 blocks, Stripe width=0 blocks\n246512 inodes, 984801 blocks\n49240 blocks (5.00%) reserved for the super user\nFirst data block=0\nMaximum filesystem blocks=1008730112\n31 block groups\n32768 blocks per group, 32768 fragments per group\n7952 inodes per group\nSuperblock backups stored on blocks:\n        32768, 98304, 163840, 229376, 294912, 819200, 884736\n\nAllocating group tables: done\nWriting inode tables: done\nCreating journal (16384 blocks): done\nWriting superblocks and filesystem accounting information: done\n
Run Code Online (Sandbox Code Playgroud)\n\n

但后来安装时似乎不起作用,/dev/loop0而是安装了?我什至不确定那是什么,并且文件系统的大小错误。

\n\n
/dev/loop0               4.0G   16M  3.7G   1% /mnt/test\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在读显然这是某种新型驱动器,其扇区不在正常位置?任何帮助,将不胜感激。

\n

Kam*_*ski 5

我的猜测是您以某种方式在那里创建了一个常规文件(或者可能是指向此类文件的符号链接)。核实。如果它是块设备,则在输出中

ls -l /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

第一个字母是b; 此外

file /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

会说block special。如果情况并非如此,请调查该物体到底是什么。它可能一开始就不应该在那里。注意安装常规文件使用循环设备,这适合您的情况。

如果该对象确实是常规文件或符号链接,umount则将其删除(rm)或移动(mv)它。请记住mke2fs对文件进行操作,因此如果您已经将任何重要数据放入文件系统中,则它位于文件中,而不是分区中。

要将正确的设备重新创建/dev/sdc1为块设备,请调用sudo partprobe. /dev/sdc这假设其分区表没有问题。您还应该mke2fs再次调用,因为该分区甚至没有被您之前的mke2fs.


/dev/sdc1拥有常规文件的一个可能原因是在不确保目标存在的情况下写入图像文件(通常作为块设备)。对不存在的目标进行此类操作会创建一个常规文件。

如果问题再次出现(例如重新启动后、再次连接外部驱动器后),则意味着某些内容重新创建了该文件。这可能是由于一些假设/dev/sdc1总是存在的写得不好的脚本造成的。请注意,当连接驱动器时,此类脚本可能会覆盖您的实际分区。希望根本没有脚本,整个问题都是由于如上所述的一次性事故造成的。

  • 你显然是在正确的地方,我以某种方式创建了一个文件而不是分区。我将其删除并按照 harrymc 说明进行操作,现在一切正常。谢谢你们俩! (2认同)