mount:错误的 fs 类型、错误的选项、错误的超级块

Eli*_*igo 118 ubuntu mount fdisk

/dev/sdb向 Ubuntu Server 16添加了一个新硬盘驱动器 ( ),运行parted /dev/sdb mklabel gpt并运行sudo parted /dev/sdb mkpart primary ext4 0G 1074GB. 一切顺利。然后我尝试挂载驱动器

mkdir /mnt/storage2
mount /dev/sdb1 /mnt/storage2
Run Code Online (Sandbox Code Playgroud)

结果导致

mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
Run Code Online (Sandbox Code Playgroud)

我尝试mount -t ext4 /dev/sdb1 /mnt/storage2了相同的结果。我以前做过很多次这样的事情,从来没有遇到过这样的事情。我已经读过这个安装:错误的 fs 类型,错误的选项,错误的超级块在 CentOS 6.0 上的 /dev/sdb 上无济于事。

关于驱动器的 fdisk 输出

Disk /dev/sdb: 1000 GiB, 1073741824000 bytes, 2097152000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0E136427-03AF-48E2-B56B-A467E991629F

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 2097149951 2097147904 1000G Linux filesystem 
Run Code Online (Sandbox Code Playgroud)

rud*_*ier 149

警告:这会毁掉你的驱动器!


您仍然需要创建一个(新的)文件系统(又名“格式化分区”)。 

仔细检查您是否真的要覆盖指定分区的当前内容!?相应地替换XY,但请仔细检查您是否指定了正确的分区,例如sda2,,sdb1

mkfs.ext4 /dev/sd XY

parted?/? mkpart不创建文件?系统。该分手的用户手册所示:

2.4.5 mkpart

命令: mkpart [part-type fs-type name] start end

    创建一个新分区, 而不在该分区上创建新文件系统

???[强调。]

  • 这将清除您当前的驱动器! (97认同)
  • @SudarP 它会清除 /dev/sdb1 设备。不是你的电流。如果您确定自己在做什么,只需执行(https://linux.die.net/man/8/mkfs.ext4) (4认同)

小智 21

我在 Ubuntu 16.04 上使用 /dev/sda 时遇到了这个问题,我通过启动到实时 USB 并执行以下操作来解决它:

要查看您的磁盘使用 lsblk

如果您可以看到您的驱动器很好,请运行fdisk -l以查看系统是否可以使用它。

运行此命令以尝试修复驱动器上的坏超级块。

fsck /dev/sda1 (将 /dev/sda1 替换为您要修复的驱动器)。

当它要求修复块时,按“ y ”选择“是”

允许 fsck 修复所有坏块。

然后我能够使用安装设备

sudo mount /dev/sda /media/ubuntu
Run Code Online (Sandbox Code Playgroud)

这为我解决了它。


小智 11

我对此有一个不同的过程,用其中一种替代方案替换了坏的超级块。FSCK 可能是一个“有损”过程,因为 FSCK 可能想要删除太多数据或从敏感位置(例如数据库的数据目录)删除数据,因此有时我不想使用它或它不使用它不工作。

您可以愚蠢地使用 sudo 自己,或者只是成为该过程的 root。请记住,当您是 root 时,Linux 假定您在发出命令时知道自己在做什么。如果有指示,它将迅速将“子弹先生”交付给“脚先生”。与许多其他事情一样,权力越大,责任越大。我对以 root 身份运行系统的警告到此结束。

sudo -s

fdisk -l
Run Code Online (Sandbox Code Playgroud)

找出哪个设备 - 在此示例中假设 /dev/sdc1 以及 EXT4 作为本说明中最常见的设备。

fsck -N /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

您的设备和文件系统(ZFS、UFS、XFS 等)可能有所不同,因此请先了解您拥有什么。不要假设它是 EXT4。如果它不是 EXT4 文件系统,忽略此步骤可能会在以后给您带来问题。

fsck.ext4 -v /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

获取错误消息,表明超级块已损坏。如果你的超级块没问题,你就不想这样做。

mke2fs -n /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

这将输出存储在分区上的备用超级块。

*Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208*
Run Code Online (Sandbox Code Playgroud)

选择一个备用超级块 - 请记住,第一个是默认的,而且它很糟糕,所以我们不要使用那个。 您还需要从分区列表中选择一个。不要使用该示例。您的超级块可能存储在其他地方

e2fsck -b 98304 /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

重新启动并看看这是否有效。如果没有尝试列表中的下一个超级块。我不得不去第三个或第四个几次。

e2fsck -b 163840 /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

现在再次尝试命令来验证磁盘。看看您是否对坏超级块也有同样的困惑。

fsck.ext4 -v /dev/sdc1
Run Code Online (Sandbox Code Playgroud)

继续尝试,直到你用完超级块或者它起作用为止。如果你用完了,你可能会遇到更大的问题,我希望你有良好的备份。此时您可以尝试运行 FSCK。


Fer*_*man 9

就我而言,解决方案是nfs-utils在客户端安装。

CentOS/红帽:

yum install nfs-utils
Run Code Online (Sandbox Code Playgroud)

Ubuntu/Debian:

apt update
apt install nfs-kernel-server
Run Code Online (Sandbox Code Playgroud)

  • 对于 Arch:`sudo pacman -S nfs-utils` (3认同)

lap*_*asz 9

对我来说,问题是 mount 命令包含不被接受的选项(umask、uid)(可能是因为设备具有 ext4 文件系统)

sudo mount /dev/sda1 /media/ssd -o uid=pi,gid=pi
mount: /media/ssd: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error.
sudo mount /dev/sda1 /media/ssd -o umask=000
mount: /media/ssd: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error.
Run Code Online (Sandbox Code Playgroud)

删除选项后,它起作用了

sudo mount /dev/sda1 /media/ssd
df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4      220G   61M  208G   1% /media/ssd
Run Code Online (Sandbox Code Playgroud)

挂载后,可以将权限或所有权设置为能够对非 root 用户具有写入权限。

sudo chown -R pi:pi /media/ssd
Run Code Online (Sandbox Code Playgroud)


nee*_*Gag 5

我必须安装 ntfs-3g,因为它是 NTFS 格式的分区,并且 5.15 之前的 Linux 内核版本不支持开箱即用的 ntfs。NTFS-3G 是 FUSE 文件系统(用户空间中的文件系统)

对我来说,这条信息出现在海豚中。安装ntfs-3g后,dolphin就可以正确挂载它了。


Mag*_*Tun 5

我的硬盘在 Gparted 中显示为,unallocated但没有显示在文件中(Windows 磁盘管理和文件资源管理器中也是如此)

我使用testdisk重新创建分区表,并且无需格式化即可恢复我的硬盘和所有数据。

  1. 在终端中输入testdisk
  2. 然后选择创建日志
  3. 然后选择HD并选择分区类型(最有可能是Intel)
  4. 然后选择分析
  5. 如果您的硬盘中只有 1 个分区,则只需将显示的分区标记为Bootable partition(使用左右箭头)。然后按“Enter”继续
  6. 如果您有更多,您现在应该进行“更深入的搜索”,否则选择Write

拔下硬盘并再次插入(这就是他们的意思,在这种情况下,“重新启动”)