挂载错误,特殊设备不存在

我在ubuntu 12.04 64位系统上有一块320GB的硬盘。 我的硬盘中有两个驱动器(sda7和sda8,文件系统类型为ext3)无法挂载。
执行命令sudo mount /dev/sda7 /home/newfolder -t ext3后的输出:
mount: special device /dev/sda7 does not exist

/dev/ 包含以下内容:

 sda   sda1   sda5   sda6

但是GParted显示sda7和sda8: GParted blkid的输出:
/dev/sda1: UUID="a898f3ad-11d9-4dbb-9ea8-71a819dc8f70" TYPE="ext4" 
/dev/sda5: UUID="998c7c6f-5ff8-426c-83d4-1a309b7cdc4f" TYPE="swap" 
/dev/sda6: UUID="da0460d0-714e-40ae-b88b-a0deca87087c" TYPE="ext4" 
/dev/sdb1: LABEL="FLASH DRIVE" UUID="8A24-B5CD" TYPE="vfat"

fdisk -l的输出:

Disk /dev/sda: 320.1 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625140335 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: 0x17ea17ea

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      194559       96256   83  Linux
/dev/sda2          196607   625121279   312462336+   f  W95 Ext'd (LBA)
/dev/sda5          196608     8007679     3905536   82  Linux swap / Solaris
/dev/sda6         8009728    61431807    26711040   83  Linux
/dev/sda7        61432623   337911209   138239293+  83  Linux
/dev/sda8       337911273   625121279   143605003+  83  Linux

/etc/fstab的输出为:cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda8 during installation
UUID=da0460d0-714e-40ae-b88b-a0deca87087c /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=a898f3ad-11d9-4dbb-9ea8-71a819dc8f70 /boot           ext4    defaults        0       2
# swap was on /dev/sda7 during installation
UUID=998c7c6f-5ff8-426c-83d4-1a309b7cdc4f none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

输出ls /dev/mapper

control

尝试创建一个挂载点。不要试图将一个分区挂载在整个/home下。使用sudo mkdir /home/mydevice/sudo mount /dev/sda7 /home/mydevice命令进行挂载。 - NickTux
我试过了,但是... - Dariush
点击这里阅读答案,然后将cat /etc/fstab的结果提供给我们。 - NickTux
cat /etc/fstab 的输出已添加。 - Dariush
你能在/etc/fstab中添加一条条目并查看发生了什么吗?试试看。/dev/sda7 /home/mydevice/ ext3 defaults 0 2。另外一个重要的事情是,blkid没有显示/dev/sda7的UUID。你能检查一下Gparted是否为这个分区有一个UUID号码吗? - NickTux
虽然不是一个完整的答案,但是我遇到了这个错误,因为我把UUDI打成了UUID,就像一个傻瓜一样。 - Phil
3个回答

你最近重新分区了那个磁盘吗?这是我能想到的唯一可能导致内核对分区布局的理解与fdisk不同的原因。
如果是这样的话,你需要告诉内核使用以下命令重新读取分区表:
sudo blockdev --rereadpt

(过去是使用 sfdisk -R,但在2.26版本中,sfdisk 移除了 -R。)

如果您已经挂载了该磁盘的任何分区,这可能会失败(附带错误消息)。请卸载它们然后重试。有时候这是不可能的(例如当您的根分区也在同一磁盘上时),那么您必须重新启动。

(实际上有一种方法可以强制内核重新读取分区表,如果您没有改变任何已挂载分区的大小或位置,这应该足够安全,但我记不清确切的命令行了。我想它涉及 partx 或 kpartx。)


sfdisk没有-R选项... - Calmarius
2@Calmarius:谢谢!我已经更新了答案,使用blockdev --rereadpt,就像sfdisk手册建议的那样。 - Marius Gedminas
谢谢,这对我在尝试挂载旧硬盘时很有帮助。 - Ben Davis

检查LV状态:
lvscan

检查一下INACTIVE是否与你所缺少的内容相同。
要修复,请执行vgchange命令:
vgchange -ay

在我的情况下,我也遇到了“特殊设备/dev/vg_lun10/lv_lun10_01_000不存在”的问题,但是在运行vgchange -ay之后,我能够立即挂载LVM卷,并且一切都按预期工作。谢谢! - Wojtek_B

我尝试了已接受的解决方案,但它没有解决问题。问题出现在我删除分区"A"后,我试图将分区"B"挂载到与"A"相同的文件夹中。操作系统试图将其保留给一个无效的分区,所以我编辑了etc/fstab文件,并将"A"的挂载点(仍然存在该行)更改为另一个位置,在重新启动后一切正常工作。也许你可以删除整个无效分区的那一行,但我不确定...
要编辑分区:
sudo nano /etc/fstab

我改变了:
/dev/disk/by-uuid/YOUR-UIID path/to/mount/point auto uid=1000,rw,umask=111,dmask=000 0 0

使用:

/dev/disk/by-uuid/YOUR-UIID UNUSED/path/to/mount/point auto uid=1000,rw,umask=111,dmask=000 0 0