快速业务通道

Linux 技巧: 在系统引导期间查找 rootfs

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-12

作为一名 Linux® 管理员,您可能会在增加外部存储卷之后或者甚至在安装新 Linux 操作系统之后,尝试重新启动服务器时遇到诸如 cannot mount rootfs 和 kernel panic 之类的 rootfs 错误.本文将概要介绍 x86 平台上的 Linux 引导进程,显示出现此问题的原因,并提供避免或修正此问题的四个技巧.
问题概述

根文件系统(在样例错误消息中名为 rootfs)是 Linux 的最基本的组件.根文件系统包含支持完整的 Linux 系统所需的所有内容.它包含所有应用程序、配置、设备、数据等.没有根文件系统,您的 Linux 系统将无法运行.

在重新启动系统后,您可能会遇到 cannot mount rootfs 错误(在 Linux 主机得到 kernel panic 之后).这种问题经常会在从外部存储中增加一些存储卷之后出现,也可能会在完成文件复制并需要重新启动来完成安装时出现.

如果出现此问题,您的系统将不会重新启动.诊断和修正此问题都需要花时间.本文介绍的 4 个技巧应当可以帮助您解决问题并节省时间.

另一个问题是 Linux 内核需要装入根文件系统,但是它找不到目标设备.换言之,根文件系统没有出现在它应该在的位置.例如,您把 Linux 根文件系统安装在 /dev/sda 磁盘中,但是您的系统在重新启动时无法装入它.出现这个问题有两个可能的原因:

1.磁盘 /dev/sda 在系统重新启动时没有显示.
出现这种情况的可能的原因是您的 Linux 主机没有装入根文件系统的关键驱动器.情况未必如此.Linux 安装程序将把需要的所有驱动器构建到 initrd 映像中,以便 Linux 系统可以在启动时轻松地载入设备驱动器.但是,如果您是手动安装了磁盘,则可能会出现此错误.

2.显示了磁盘 /dev/sda,但是它不是根文件系统.在重新启动后,您的根文件系统已经改为 /dev/sdb.
这是最可能出现的情况.

那么,系统重新启动后 /dev/sda 是如何被重命名为 /dev/sdb 的?在 Linux 中,/dev/sd* 表示 SCSI 设备.Linux 将把这些设备的名称从 sda 改为 sdz(以及从 sdaa 改为 sdzz,以此类推).它将把第一个 SCSI 设备命名为 /dev/sda,把第二个 SCSI 设备命名为 /dev/sdb,以此类推.

如果使用在根文件系统设备适配器驱动器之前装入的驱动器(最初位于 /dev/sda)在适配器中安装设备,则根文件系统将移到命令链的下一个字母(/dev/sdb),并且根文件系统不是遇到的第一个设备.因此,如果它在行首找不到 rootfs,它就无法装入.

这是所发生情况的简单说明,但是为了给这个场景补充更多上下文,让我们概要说明一下 Linux 引导进程(如果您了解 “根本” 原因,请直接跳到 修正问题的四个技巧).

Linux 引导的工作原理

引导加载程序

Linux Loader(LILO)是适用于 Linux 的通用引导加载程序,它不依赖于特定的文件系统,并且可以从软盘和硬盘引导操作系统.引导时,您最多可以从十六个不同映像中做出选择,并且可以分别为每个内核设置不同的参数(如根设备).LILO 可以放在主引导记录(MBR)或分区的引导扇区中;如果执行第二个选项,还把另一些内容放到 MBR 中才能装入 LILO.

另一个引导加载程序是 GNU GRUB(GRUB).GRUB 是多重引导规范(Multiboot Specification)的参考实现,它将允许用户在计算机中立即拥有多个不同的操作系统,以及选择要运行哪个操作系统.GRUB 是动态配置的,在启动时载入其配置并允许在引导时更改,例如选择不同的内核或初始的 RAM 磁盘.GRUB 具有高度可移植性,支持多种可执行格式,并且不依赖于几何参数转换.GRUB 可以从网络下载操作系统映像,因此它可以支持无磁盘系统.GRUB 支持先自动解压缩操作系统映像,然后再引导.不同于其他引导加载程序,它可以通过 GRUB 提示符直接与用户进行通信.

以下步骤将概要介绍 Linux 引导进程的工作原理

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号