升级您的系统

升级您的系统

我是一名半经验的 Linux 管理员,正在尝试弄清楚如何将外部硬盘驱动器自动安装到我的 Linux 机器上。 (版本 2.6.16.13-4-smp)(我知道它是一个较旧的盒子。)我可以手动安装驱动器:

me@linux:/> mount /dev/sdc1 /media/Seagate
me@linux:/> 

意思是我想将位于的设备安装/dec/sdc1到目录/media/Seagate。这效果非常好。当我这样做时,我看到以下内容:

me@linux:/> df -h
Filesystem            Size  Used Avail Use% Mounted on
...other stuff...
/dev/sdc1             917G   13G  858G   2% /media/Seagate
me@linux:/>

问题是,我需要机器在重新启动时自动执行此操作。我用谷歌搜索了一下并了解了一些关于该/etc/fstab文件的信息。为此,我在文件末尾添加了这一行/etc/fstab

/dev/sdc1            /media/Seagate       ext3       defaults              0 2

/etc/fstab前任管理员留下了曾经工作过的注释行。我克隆了它,为我的外部硬盘编辑了它,然后就开始了。 “ext3”来自该行,我不确定它的作用。我在网上找到的一些教程建议将“默认值”和“0 2”作为最简单的实现。

因此,当我使用上面的行重新启动机器时/etc/fstab,机器执行了不是成功重启。当我检查显示器时,出现了许多错误消息,包括:

Waiting for /dev/sdc1
error on stat() /dev/sdc1: No such file or directory
fsck.ext3: No such file or directory while trying to open /dev/sdc1
/dev/sdc1:  The superblock could not be read or does not describe a correct ext2

下面是全显示器屏幕的照片。

我不确定这里发生了什么,但看起来我的 Linux 盒子尝试挂载外部硬盘,但硬盘不可用,因此 Linux 盒子无法成功启动?但重启时硬盘已插入。

如果我删除添加的一行并再次重新启动,系统会正常运行,但随后我必须手动安装硬盘。

那么……知道这里发生了什么吗?谢谢。

在此输入图像描述

答案1

检查你的/etc/fstab文件。每行的最后一个数字是fs_密码。如果设置为 1(真),则需要成功引导 fsck 运行并在给定设备上成功完成。如果该行/dev/sdc1/etc/fstab最后一个数字为 1,则该设备需要在启动过程中出现,否则启动将停止,如图所示。

将 1 更改为 0,以允许 /dev/sdc1 行在未插入 USB 设备的情况下存在fstab,或者如果未插入 USB 设备,则从 fstab 中完全删除该行,或者插入 USB 设备如果您要在 fstab 中的行尾保留 1,则能够通过 fsck。

我不确定 fs_passno 的值对不同的 Linux 发行版是否有不同的影响,除了将其设为 0 表示不进行 fsck 之外。

另外,你的安装按名字位于/dev/sdc1fstab 的第一列中。我强烈建议通过任何其他方式安装,最好是按-uuid。按名称挂载并不可靠,您的外部磁盘sdc现在可能是这样,但如果任何其他硬件发生变化导致其他问题,则很容易变成其他磁盘。

答案2

升级您的系统

这是一个已知的错误(Bug 204396 - 内核在引导期间看不到 USB 拇指驱动器)在与您正在使用的版本接近的内核版本中。

乍一看,问题似乎介于模块自动加载和 udev 之间。可能存在解决方法,您可以尝试一下。添加mount /dev/sdc1 /media/Seagate到您的/etc/rc.local可能会有所帮助。不过,我真的建议您切换到更新的内核。它将远没有那么麻烦(前提是您不依赖于这个特定版本)。

相关内容