Linux rescue单用户模式修复模式

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

给大家推荐一款很不错的Linux rescue系统很有学习价值,这里我主要讲解Linux rescue系统的应用,包括介绍Linux rescue包背景知识等方面。单用户模式要求我们输入root用户的密码,否则您无法登录单用户模式;如果您丢失了root用户的密码,并不能用单用户模式来重设您的root密码;

一、单用户模式;

Linux rescue另外单用户模式还有一个前提是您的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 来查看;

  1. [root@localhost ~]# fdisk -l 注:查看分区情况;  
  2. [root@localhost ~]# pwd   注:确定当前工作目录;  
  3. /root                     注:当前工作目录为/root  
  4. [root@localhost ~]# mkdir systmp 注:在当前工作目录下创建一个临时目录;  
  5. [root@localhost ~]# mount /dev/hda5 systmp/ 注:挂载hda5到tmpsys目录中;  
  6. [root@localhost ~]# df -h   注:查看是否已经挂载;  
  7. Filesystem            容量  已用 可用 已用% 挂载点  
  8. /dev/hda8              11G  9.8G  581M  95% /  
  9. /dev/shm              236M     0  236M   0% /dev/shm  
  10. /dev/hda5             7.9G  5.9G  2.0G  76% /root/systmp  注:看好了,是挂载到了/root/systmp目录中; 

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

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

对于Linux的文件系统类型主要有:reiserfs,ext3,ext2;具体用什么文件系统类型,你最明白;如果您还是不知道,就一个一个的尝试;比如我的hda5是reiserfs的,可以用下面的命令来挂载;[root@localhost ~]# mount -t reiserfs   /dev/hda5 systmp/

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

chroot这个工具很有用,很多Linux都支持chroot切换到另一个文件系统中,然后进行一系列系统包的安装和系统配置;这并不是说任何文件系统都能chroot切入 ,首先这个文件系统中得具备系统运行的一定的工具和环境,比如/bin和/sbin 目录是拥有等..用中文表达不清楚,还是举例来说明;

比如我的机器中有两个Linux系统,一个运行正常,另一个有点问题(比如是root密码忘记了),我想通过正常的系统来修复另一个;首先我们进行的是mount ,也就是前面所说的,然后下一步就是chroot ;通过chroot 切换到要修复的文件系统中;

比如存在问题的系统位于 /dev/hda5

  1. [root@localhost ~]# fdisk -l    
  2. [root@localhost ~]# pwd     
  3. /root                       
  4. [root@localhost ~]# mkdir systmp   
  5. [root@localhost ~]# mount /dev/hda5 systmp/    
  6. [root@localhost ~]# df -h      
  7. Filesystem            容量  已用 可用 已用% 挂载点  
  8. /dev/hda8              11G  9.8G  581M  95% /  
  9. /dev/shm              236M     0  236M   0% /dev/shm  
  10. /dev/hda5             7.9G  5.9G  2.0G  76% /root/systmp     
  11.  
  12. [root@localhost ~]# chroot systmp   注:chroot到hda5分区的系统中;  
  13. bash-3.00#     注:已经登录;  
  14. bash-3.00# df -lh   注:查看文件系统挂载情况;  
  15. Filesystem            容量  已用 可用 已用% 挂载点  
  16. /dev/hda5             7.9G  5.9G  2.0G  76% /  
  17. proc                  7.9G  5.9G  2.0G  76% /proc  
  18. sysfs                 7.9G  5.9G  2.0G  76% /sys  

Linux rescue上面我们就通过chroot 命令完成了通过一个系统到另一个系统的跨控制台登录;Livecd 如果要完成此任务,也是通过这样过程完成的。我们既然已经登录到有问题的系统了,可以进行相应的修复工作,比如对root密码的恢复,软件包的安装,相应文件的修改... ... 我想您应该知道怎么做,对不对???

Linux rescue有些发行版的安装盘类似livecd ,比如slackware 的安装盘的第一张,当他启动到让你输入用户名和密码进行安装时,我们不必输入什么,或者直接输入root ,就能进入cdrom 虚拟环境了;这时我们就用前面所说mount加载文件系统,然后chroot挂载的文件系统;

四、后记; 正在写文件系统的管理,可能要花几天时间;努力之中;

看到论坛的弟兄还在大呼丢了root密码怎么恢复,虽然坛里也有不少文档,但大多没有形成系统,为了解决问题而重写此文,可能有的弟兄需要这样的文档;既然有“市场”,我就写,没有什么大不了的;有的弟兄认为是小题大作,就当我锻炼身体好了;这样的文档谁都会写,没有什么难的;

【编辑推荐】

  1. Linux rescuev修复模式跨越控制台登录
  2. 深入浅出的了解Linux rescue
  3. Linux ifconfig关于网络接口及配置工具说明
  4. Linux vmware操作系统v添加vmhgfs的模块到内核
  5. Linux Monitorix套件解壓縮修改安裝程式
责任编辑:佚名 来源: 博客园
相关推荐

2010-04-06 14:16:59

CentOS系统

2010-01-06 09:35:55

2018-12-03 14:15:36

SUSE 12 Lin单用户模式命令

2022-01-05 22:39:35

SQL单用户模式

2018-10-16 17:10:14

UbuntuDebian 9服务器

2010-02-02 17:38:17

2020-05-06 14:34:03

CentOSRHELLinux

2010-02-26 17:47:07

2010-03-22 18:42:23

2010-03-22 17:52:13

2017-11-10 09:30:43

Linux系统启动故障修复

2013-07-25 14:50:03

2019-11-06 10:00:21

Linux 技巧操作系统

2019-08-19 14:51:56

Linux 系统 数据

2009-10-23 08:41:14

Linux系统操作系统Grub

2013-04-10 13:52:23

2010-08-23 13:27:25

NAT表项

2009-08-13 17:25:40

Linux服务器安全隐患防范对策

2020-12-09 08:04:27

Centos8root密码

2010-08-06 14:14:33

点赞
收藏

51CTO技术栈公众号