现在的位置: 首页运维|APPServer>正文
在linux中错误修改fstab导致系统无法启动修复方法
发表于248 天前 运维|APPServer 暂无评论 ⁄ 被围观 +

上周安装centos,由于硬盘没有完全分区好。现在要将硬盘上剩余的空间做成一个 sda8 分区,文件系统格式为 ext3,然后成功挂载到新建的 /xp 目录。重启系统之后发现 /xp 目录不能自动挂载,于是就直接修改了 /etc/fstab 配置文件。

具体命令如下:

LABEL=/xp            /dev/sda8        ext3    defaults    1 2

杯具了,虽然上面命令按照 fstab 现有配置参数修改,但是这样的修改并不正确,所以系统重启之后就进不了,总是提示让我按“ctrl+D”重新启动或者输入密码进入shell。

当我就进入了 shell 编辑 /etc/fstab 配置文件的时候,系统又提示我,文件只读,不能修改。

最后尝试使用光盘引导进入到 rescue 修复模式,在这种模式下系统会自动把引导分区挂载在  /mnt/sysimage ,这个时候 fstab 终于可以修改了!

执行修复模式时,需要以下几个步骤:

其一:在BIOS中,设置首个启动驱动器为CDROM;

其二;找出系统安装盘的第一张;放入CDROM ;当光盘运行时,会提示安装的界面。

在boot:后面输入 linux rescue ,然后按回车:

boot:linux rescue
# vi /mnt/sysimage/etc/fstab
如果没有修改权限执行:chroot /mnt/sysimages

因为此时挂载的系统是rw的,所以我们可以注释掉错误的部分,就可以引导系统了。然后再给它添加正确的参数如下,新添加的文件系统在系统重启的时候就可以自动挂载了。

/dev/sda9         /xp            ext3               defaults      1 2

PS:手动修改 /etc/fstab 文件

  /etc/fstab 文件的内容被用来在 Linux 下自动挂装各种文件系统,文件中的每一行都提供了一种设备的信息,这种设备可以被挂装在 Linux 文件系统下的一个目录中。在 Linux 启动过程中, init 进程执行一个脚本文件,该脚本调用带有 -a 参数的 mount 命令,用 mount 来读 /etc/fstab ,并挂装所有列出的文件系统(带 noauto 选项的除外)。下面是一个典型的 /etc/fstab 文件(其中 Windows Xp 安装在第一块硬盘上, Linux 安装在第二块硬盘上):

ABEL=/ / ext2 defaults 1 1
   /dev/hda1 /dosc vfat defaults 0 0
   /dev/fd0 /mnt/floppy auto noauto,owner 0 0
   none /proc proc defaults 0 0
   none /devpts devpts sid=5,mode=620 0 0
   /dev/hdb5 swap swap defaults 0 0
   /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kud2ure 0/0

  /etc/fstab 文件的第一列是设备名,第二列是挂装点,第三列表示在设备上的文件系统的类型,第四列是应用于特定设备的一组选项,通常为 defaults ,表示的含义有:这个设备在引导阶段被挂装、只有 root 用户可以挂装它、挂装后可以进行读或写操作,此选项如是 noauto ,则表示引导时该设备不会被自动挂装,而 user 选项表示任何用户都可以挂装该设备。

  以上面的 /etc/fstab 文件为例,如果想在 Linux 下挂装 Windows98 操作系统的D分区(假设挂装点为 /dosd ),则可以在上文件中加入一行:

/dev/hda5 /dosd vfat defaults 0 0

然后存盘,重新启动后就可以访问 Windows Xp 操作系统的D分区了。

给我留言


/ 快捷键:Ctrl+Enter
不想听你唠叨×