热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux的单用户、修复模式等在系统修复中的运用

文章标题:Linux的单用户、修复模式等在系统修复中的运用。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

一、单用户模式;

 

单用户模式要求我们输入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 /

 

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

 

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 从本质上来说,就是跨越控制台登录,因为无需要密码验证就能登录系统;

 

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

 

1、通过grublilo 引导,跨越控制台登录;

 

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 /

 

2linux rescue

 

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

 

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

 

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

 

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

 

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

 

我们还是举个例子来说明如何通过用mountchroot

 

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

 

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

 

下载地址:

 

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

 

常用的有 SLAXKnoppixDamn Small LinuxUbuntu ... ...

 

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

 

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

 

1mount 挂载文件系统;

 

注:执行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/ 注:挂载hda5tmpsys目录中;

[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的文件系统类型主要有:reiserfsext3ext2;具体用什么文件系统类型,你最明白;如果您还是不知道,就一个一个的尝试;比如我的hda5reiserfs的,可以用下面的命令来挂载;

 

[root@localhost ~]# mount -t reiserfs /dev/hda5 systmp/

 

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

 

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

 

用中文表达不清楚,还是举例来说明;

 

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

 

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

 

[root@localhost ~]# fdisk -l

[root@localhost ~]# pwd

/root

推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • PHP函数实现分页含文本分页和数字分页【PHP】
    后端开发|php教程PHP,分页后端开发-php教程最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。影视网源码带充值系统,vscode配置根 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
author-avatar
我的想念穿不透那面墙-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有