工作时有一台 Ubuntu 12.04 服务器,配有 2 个内置硬盘(1.0TB 和 2.0TB)、2 个外置硬盘(2.0TB 和 4.0TB)以及一个用作交换空间的 32GB USB 内存。这是一个比较复杂的设置,所以我想他们只是在内存满了之后才继续添加东西。我的用户会话被分配到 4.0TB 外置硬盘上的一个分区。
最近它运行得相当慢,所以我尝试重新启动,但它在关机时冻结了,所以我通过切断电源手动将其关闭(这不是一件好事,但我知道没有其他选择)。
现在,当我尝试启动系统时,收到以下消息:
swapon: /dev/sde1: read swap header failed: Invalid argument
mountall: swap on /dev/sde1 [1049] terminated with status 255
mount all: Problem activating swap: /dev/sde1
/dev/sdc1: clean, 201/40697856 files, 2604786/162790314 blocks
/dev/sdc2: clean, 17/40697856 files, 141991259/162790321 blocks
/dev/sdc3: clean, 870/40697856 files, 53137157/162790322 blocks
The disk drive for /home/member/USB_Disk/Disk1 is not ready yet or not present.
Continue to wait, or Press S to skip mounting or M for manual recovery
_
如果我跳过 S,其他分区也会出现同样的问题。我仍然可以启动 Ubuntu,但没有硬盘,我的用户会话显然是空的。所以这次我按了 M 以 root 模式进行手动恢复,但现在我不确定该怎么做。
/etc/fstab 的内容如下:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# /dev/sda10
UUID=[...] / ext4 errors=remount-ro 0 1
# /dev/sda1
UUID=[...] /boot ext4 defaults 0 2
# /dev/sda6
UUID=[...] /home ext4 defaults 0 2
# /dev/sda9
UUID=[...] none swap sw,pri=0 0 0
# /dev/sda8
UUID=[...] /home/member/Data ext4 defaults 0 2
# /dev/sdb1
UUID=[...] /home/member/Data2 ext4 users 0 2
# /dev/sdd2
UUID=[...] /home/member/USB_Disk/Disk1 vfat users,uid=1001 0 2
# /dev/sdd3
UUID=[...] /home/member/USB_Disk/Disk2 ext4 users 0 2
# /dev/sdd4
UUID=[...] /home/user1/Data ext4 defaults 0 2
# /dev/sdd5
UUID=[...] /var/www ext4 defaults 0 2
# /dev/sdc1
UUID=[...] /media/Backup1 ext4 defaults 0 2
# /dev/sdc2
UUID=[...] /media/Backup2 ext4 defaults 0 2
# /dev/sdc3
UUID=[...] /media/Backup3 ext4 defaults 0 2
/dev/sde1 none swap sw,pri=1 0 0
/dev/sdf1 /home/user2 ext3 defaults 0 2
/dev/sdf2 /home/user3 ext3 defaults 0 2
最后一行中的“user3”是我,所以我的文件通常位于 /dev/sdf2 中。当我运行 fsck -f 时,它告诉我已安装以下磁盘。请注意,这是输出的简化,它实际上向我发出警告,说系统已安装,我将冒着损坏系统的风险,我是否仍要继续 (y/n)?- 我按 (n)。在大多数情况下,它会告诉我磁盘已安装:
/dev/sda10 is mounted.
/dev/sda1 is mounted.
/dev/sda6 is mounted.
/dev/sda8 is mounted.
/dev/sdb1 is mounted.
fsck.ext4: Unable to resolve 'UUID=[ID for /dev/sdd3]'
fsck.ext4: Unable to resolve 'UUID=[ID for /dev/sdd4]'
fsck.ext4: Unable to resolve 'UUID=[ID for /dev/sdd5]'
/dev/sdc1 is mounted.
/dev/sdc2 is mounted.
/dev/sdc3 is mounted.
fsck.ext3: No such file or directory while trying to open /dev/sdf1
Possibly non-existent device?
fsck.ext3: No such file or directory while trying to open /dev/sdf2
Possibly non-existent device?
我下一步该做什么?最重要的是不要删除任何数据。
答案1
这
fsck.ext3: No such file or directory while trying to open /dev/sdf1
Possibly non-existent device?
fsck.ext3: No such file or directory while trying to open /dev/sdf2
Possibly non-existent device?
告诉我们系统中不存在 3 个外部驱动器中的一个,可能是硬件故障(或插入的 USB 端口出现故障)或只是因强制关机而损坏。您应该检查日志中的错误消息或lsusb
找出哪个驱动器丢失/出现问题。很可能是设备问题/dev/sdd
,因为未找到该驱动器上分区的 UUID:
fsck.ext4: Unable to resolve 'UUID=[ID for /dev/sdd3]'
fsck.ext4: Unable to resolve 'UUID=[ID for /dev/sdd4]'
fsck.ext4: Unable to resolve 'UUID=[ID for /dev/sdd5]'
和
The disk drive for /home/member/USB_Disk/Disk1 is not ready yet or not present.
由于该/dev/sdd
设备现在丢失,因此它之后的所有设备都获得了较低的/dev
名称,即/dev/sde
成为/dev/sdd
和/dev/sdf
成为/dev/sde
。这可能是导致这种情况的原因:
swapon: /dev/sde1: read swap header failed: Invalid argument
mountall: swap on /dev/sde1 [1049] terminated with status 255
mount all: Problem activating swap: /dev/sde1
因为该/dev/sde1
分区现在不是交换空间,所以无法以此方式安装。
这就是/dev/sdf
现在失踪的原因。
fsck.ext3: No such file or directory while trying to open /dev/sdf1
Possibly non-existent device?
fsck.ext3: No such file or directory while trying to open /dev/sdf2
Possibly non-existent device?
但这只是猜测,请检查外部驱动器或另一台机器并检查日志,lsusb
以找出哪一个(或哪些)有问题。
此外,fstab
您使用的命名方式也不一致。在文件的开头,您使用的是 UUID,这没问题,但在文件的结尾,您又改回使用简单的/dev
设备名称。请坚持使用 UUID 命名方案,并更改这些行
/dev/sde1 none swap sw,pri=1 0 0
/dev/sdf1 /home/user2 ext3 defaults 0 2
/dev/sdf2 /home/user3 ext3 defaults 0 2
也使用 UUID,就像 中的所有其他行一样fstab
。如果您fstab
只使用 UUID,我上面描述的一些问题就不会发生。(/dev/sdf
可以安装交换空间和驱动器。)
@biohazard 在评论中写道,问题确实出在硬件上,/dev/sdd
但幸运的是,不是硬件故障,只是驱动器断电了。 fstab 中没有 UUID 导致了我上面提到的其他问题。