当前位置:操作系统 > Unix/Linux >>

Linux多种用户模式在系统修复中的运用

当系统被破坏,或者登录遇到困难时,我们如何才能进入系统?比如我们把root密码忘记,或者系统不能正常进行启动时,我们首先想到的是如何登录系统,或如何备份文件系统中重要的数据;下面有以下几种方法供大家参考

  目录索引

  一、单用户模式;

  1、以grub 系统引导管理器,单用户登录方法;

  2、lilo 引导管理器单用户模式;

  二、linux rescue 修复模式;

  三、跨越控制台登录;

  * 1、通过grub和lilo 引导,跨越控制台登录;

  * 1)如果您用的是grub进行系统引导;

  * 2)如果您用lilo 进行系统引导;

  * 2、linux rescue ;

  * 3、借linux的livecd光盘 或第三方linux系统;

  * 1)mount 挂载文件系统;

  * 2)chroot 到已经挂载的文件系统;

  四、关于本文;

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  正文

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  一、单用户模式;

  单用户模式要求我们输入root用户的密码,否则您无法登录单用户模式;如果您丢失了root用户的密码,并不能用单用户模式来重设您的root密码;

  另外单用户模式还有一个前提是您的grub 或者lilo 是能正常工作的;并且您知道您的系统问题发生在哪里,当以单用户模式登录时,您能打开文件系统的写操作,然后进行您想要进行的系统修复;

  可能有的弟兄会说“我真的不知道系统哪块出了问题”,呵,如果真的不知道,那我也无能为力了,因为本文档主要讲述登录模式,并不是讲述如何修复系统的;

  1、以grub 系统引导管理器,单用户登录方法;

  在grub 启动后,移动键盘到Linux的启动项;按e键;然后再移动键盘到类似下面的一行,也就是kernel的那行:

  kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet

  把光标移动这行后,再按一下e键,进入编辑这行;在行尾条一个空格 ,然后输入 linux single,也就是类似如下的:

  kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet linux single

  结束编辑,按回车返回;

  接着我们要启动系统,按一下b键启动;

  当进入单用户模式运行后,系统提示我们输入root密码;输入正确后会进入系统;您可以用df -h 来查看文件系统挂载位置等,也可以用fdisk -l 来查看分区等;但对文件系统的写操作,可能还要看下面的;

  单用户进入系统后,可能系统是只读的;要运行下面的命令;

  #mount -o remount,rw /

  2、lilo 引导管理器单用户模式;

  在boot:处输入

  linux single

  当进入单用户模式运行后,系统提示我们输入root密码;输入正确后会进入系统;您可以用df -h 来查看文件系统挂载位置等,也可以用fdisk -l 来查看分区等;但对文件系统的写操作,可能还要看下面的;

  单用户进入系统后,可能系统是只读的;要运行下面的命令;

  #mount -o remount,rw /

  二、linux rescue 修复模式;

  Linux的修复模式就是 linux rescue;修复模式并不需要系统密码,当进入修复模式后,系统会提示我们要挂载哪个分区上的文件系统,我们根据自己的系统情况来选择就就是了。登录完成后,系统也会提示所在分区的文件系统会被挂载到哪个目录;如果您不知道挂载在哪里,请通过 df -h 来查看;

  修复模式需要安装盘的第一张或独立的修复盘;比如 Fedora 就有专门的修复盘;其实修复盘在一定意义上来说类似livecd,是不需要安装到硬盘也能运行系统;然后通过mount 来挂载文件系统;其实当我们执行linux rescue 时,象Fedora 这类的系统,会有一些提示,比如他提示他要mount 哪个分区,我们选择一下就行了;

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

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

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

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

  boot:linux rescue

  进入修复模式,我们能做些什么呢??什么都可以做,比如挂载usb盘进行数据备份;修改系统中的配置文件... ... 重新设置root密码、挂载文件系统 ... ... 只要能想到,大多都可以完成;

  三、跨越控制台登录;

  真正的跨越控制台登录是不需要输入root密码的,如果您把root密码丢失,就要想到跨越控制台登录;我们前面所说的linux rescue 从本质上来说,就是跨越控制台登录,因为无需要密码验证就能登录系统;

  跨越控制台登录主要包括:借grub和lilo 跨越控制台登录; linux rescue 模式;第三方livecd 系统和第三方Linux系统;

  1、通过grub和lilo 引导,跨越控制台登录;

  1)如果您用的是grub进行系统引导;

  在grub 启动后,移动键盘到Linux的启动项;按e键;然后再移动键盘到类似下面的一行,也就是kernel的那行:

  kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet

  把光标移动这行后,再按一下e键,进入编辑这行;在行尾条一个空格 ,然后输入 linux single,也就是类似如下的:

  kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/1 rhgb quiet linux init=/bin/bash

  结束编辑,按回车返回;

  接着我们要启动系统,按一下b键启动;

  可能系统是只读的;要运行下面的命令;

  #mount -o remount,rw /

  然后我们可以通过 df -h 来查看文件系统的加载情况;既然都把文件系统挂载了,有什么活干不了的呢?重设root密码,备份文件... ...

  比如重设root密码;

  #passwd

  2)如果您用lilo 进行系统引导;

  在boot:处输入

  boot:linux init=/bin/bash

  当进入系统后,您可以用df -h 来查看文件系统挂载位置等,也可以用fdisk -l 来查看分区等;但对文件系统的写操作,可能还要看下面的;

  可能系统是只读的;要运行下面的命令;

  #mount -o remount,rw /

  2、linux rescue ;

  请参考前面第二点所说的修复模式;

  3、借linux的livecd光盘 或第三方linux系统;

  linux的livecd版本是无需安装的linux 系统,在光盘上就可以运行的linux 系统; livecd 大多是用来修复之用,livecd 集成了常用的系统操作工具;

  第三方Linux系统是指你的机器上安装一个以上的Linux系统,如果其中一个发生问题,我们就可以用另一个来修复;

  livecd 和第三方linux系统来修复已经被破坏的Linux ,常用的工具有mount 和chroot等等 ;如果您只是简单的更改存在问题的系统文件,用mount 就足够了。chroot 工具可以改变/,进而进入另一个系统,这个工具的确有用。

  我们还是举个例子来说明如何通过用mount和chroot;

  至于机器中第三方Linux和Livecd的使用比较简单,这里就不多说了;

  livecd就是在光盘上运行的linux ,您可以找一个livecd的发行版本刻录一下就能用了,使用简单方便;

  下载地址:

  http://www.frozentech.com/content/livecd.php

  常用的有 SLAX,Knoppix,Damn Small Linux,Ubuntu ... ...

  大体都差不多,下载一个小的备用也行,就看您怎么用了;

  通过livecd linux 或其它linux 来修复已经破坏的Linux步骤如下:

  1)mount 挂载文件系统;

  注:执行mount 及chroot时,要以root权限运行,以下同;

  比如存在问题的系统位于 /dev/hda5 ,如果您不知道哪个分区是linux的,您可以通过fdsik -l 来查看;

  [root@localhost ~]# fdisk -l 注:查看分区情况;

  [root@localhost ~]# pwd 注:确定当前工作目录;

  /root 注:当前工作目录为/root

  [root@localhost ~]# mkdir systmp 注:在当前工作目录下创建一个临时目录;

  [root@localhost ~]# mount /dev/hda5 systmp/ 注:挂载hda5到tmpsys目录中;

  [root@localhost ~]# df -h 注:查看是否已经挂载;

  Filesystem 容量 已用 可用 已用% 挂载点

  /dev/hda8 11G 9.8G 581M 95% /

  /dev/shm 236M 0 236M 0% /dev/shm

  /dev/hda5 7.9G 5.9G 2.0G 76% /root/systmp 注:看好了,是挂载到了/root/systmp目录中;

  既然把/dev/hda5分区的文件系统已经挂载了,我们就能对已经挂载的文件系统进行写操作;如果是简单的备份和文件修改,是完全能行的;

  注意:在写操作的过程中,要倍加不心,在操作某个文件的时候,要先备份;当出现不能mount的情况,可能是您的当前所用的内核不支持相应的文件系统;如果系统要求指定文件系统的时候,请看如下的例子;

  mount -t 文件系统类型 磁盘分区 挂载目的目录

  对于linux的文件系统类型主要
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,