我有一个问题:当我打开 /etc/fstab 文件时,我看到以下内容:
proc /proc proc nodev,noexec,nosuid 0 0
/dev/sdb1 / ext4 errors=remount-ro 0 1 UUID=adf08252-b173-4679-a162-5786aa43eaf9
none swap sw 0 0
好的。如果我理解正确的话,这些是在操作系统一开始就安装的。但是,当我进入 /dev 时,我没有任何 sdb1,只有 sda、sda1、sda2 和 sda5。
当我执行 sudo fdisk -l 时,我发现:
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14212 114149376 83 Linux
/dev/sda2 14212 14594 3068929 5 Extended
/dev/sda5 14212 14594 3068928 82 Linux swap / Solaris
如果我运行 mount,我会得到这个(以及更多的东西,但我相信这对这个问题来说很重要):
/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)
proc on /proc type proc (rw,noexec,nosuid,nodev)
所以,我的问题是:为什么在 /etc/fstab 中我有 sdb1,而它在 mount 和 fdisk 中都没有出现?
谢谢 :)
附言:如果有推荐阅读材料来理解所有与此相关的内容,我将不胜感激。
答案1
/dev/sdb1
正在用于交换空间。运行“mount”时不会显示交换。这在逻辑上是合理的,因为它只是内核使用的原始空间 - 那里没有实际的文件系统供操作系统显示给您。
如果您的话,您应该会看到它列出cat /proc/swaps
。
您的 fdisk 命令不会显示来自 sdb 的任何内容,因为默认情况下它显示 中列出的设备/proc/partitions
。运行此命令以列出 上的分区/dev/sdb
:
sudo /sbin/fdisk -l /dev/sdb
一般来说,检查/var/log/dmesg
可以让您很好地了解磁盘设备在您的系统上是如何配置和初始化的。
答案2
如果我没看错的话,您的根文件系统在 fstab 中列为 sdb1,但实际上似乎是 sda1?您的磁盘可能在某个时候交换了顺序,或者在安装过程中有一个 CD 播放器,后来您删除了它?
无论如何,根设备通常不会从 fstab 中读取。它是在您的引导加载程序中配置的:请参阅 /boot/grub/menu.lst 文件。这里的根设备通常像这样给出:“root (hd0,0)”。磁盘 0 在某种程度上只是“第一个”磁盘。当内核启动时,它必须从某个地方读取启动内容:那就是根文件系统。在正常情况下,该文件系统被启动系统“采用”,因此不会因命名问题而混淆。