单用户模式(emergency模式)

忘记root密码后,grub又没有密码的时候,可以在物理机器设备上进入单用户模式重置密码。在终端是不能进入单用户模式的。



1、运行级别概念介绍

CentOS6运行级别从0到6,共7个级别。CentOS7取消了这个概念,用名称代替;

0    关机------centos7:poweroff

1    单用户----centos7:rescue

234    命令行下的多用户模式。----centos7:multi-user

            没有安装图形界面的前提下,正常启动后进入的是3级别。

5        图形操作界面。-----------centos7:graphical

6        reboot重启。-------------reoobt

下面是CentOS7里的运行级别。

centos 6 单用户 centos6.7单用户_重启

从名字来看基本和6差不多,1变了。

 

 



2、重启系统

重启系统3秒内按下向下的方向键。

虚拟机可以通过重启客户机方式实现。

centos 6 单用户 centos6.7单用户_运维_02

 

选择选择上面的系统,按 e,进入grub。

grub(Grand Unified Bootloader)是一个来自GNU项目多操作系统启动程序。grub是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统,grub可以用于选择操作系统分区上的不同内核,也可以用于向这些内核传递启动参数。

centos 6 单用户 centos6.7单用户_python_03



3、进入emergency模式

通过方向键把ro改为rw init=/sysroot/bin/sh,然后按下ctrl+x启动,就正式进入emergency模式了。

(单用户模式的设置用完后不需要改回来;做完操作就重启了,下次就不会是单用户。

再次重启就恢复原来的了)

centos 6 单用户 centos6.7单用户_重启_04



4、修改root密码

此时进入emergency模式,并不是原来的系统。需要使用

# chroot /sysroot/         //切换到原来的系统。

centos 6 单用户 centos6.7单用户_python_05

 

# passwd root //修改root密码。

修改密码,但是出现了乱码。

因为VMware终端下不支持显示中文,会显示小方框乱码。

# LANG=en    //把当前终端的语言设置成英文。

然后再修改密码。

修改完了密码,一定要输入下面的命令

# touch /.autorelabel            //一个与SELinux相关的命令,需要执行才能使得当前模式修改的密码生效。

centos 6 单用户 centos6.7单用户_操作系统_06

然后再次在电源处选择重启客户机就可以用刚刚修改的密码登录了。

centos 6 单用户 centos6.7单用户_运维_02



5、小结



5.1、重启和关机命令

重启命令:

# reboot

# init 6

# shutdown -r now

其他命令:

# shutdown -r +10    //10分钟后重启

关机命令:

# init 0

#shutdown -h now

#shutdown now

#poweroff

#halt

其他相关:

# shutdown -h 5    //5分钟后关机

# shutdown -h 22:06    //在22:06关机

# shutdown -h +5    //5分钟后关机,shutdown -h +0等同于shutdown -h now,立即关机


救援模式(rescue模式)

        grub没有密码的时候才能进入单用户模式,如果有密码自己又不知道,就不能用单用户模式了。

只能用救援模式了,当然也是在物理机上才行。救援模式类似于windows的通过光盘启动。

使用虚拟及模拟之前,先把虚拟机关机。



1、光盘启动

打开“虚拟机设置”,勾选启动时连接,选择使用的ISO镜像文件。

centos 6 单用户 centos6.7单用户_运维_08

在“电源”子选项卡中,选择“打开电源时进入固件(就是BIOS)”。

centos 6 单用户 centos6.7单用户_重启_09

在Boot中通过 加号 和 减号 把CD-ROM Drive移动到最前面,然后按F10保存并退出。

centos 6 单用户 centos6.7单用户_操作系统_10

centos 6 单用户 centos6.7单用户_python_11



2、进入rescue模式

进入到光驱启动界面,选择Troubleshooting。

Install CentOS Linux7 //安装CentOS7

Test this media & install CentOS Linux7 //测试这个镜像文件并安装CentOS7

 

centos 6 单用户 centos6.7单用户_重启_12

选择Rescue a CentOS Linux system,回车确认。

centos 6 单用户 centos6.7单用户_运维_13

等到出现以下界面,提示“make a selection from the above”输入1回车选择继续

centos 6 单用户 centos6.7单用户_运维_14

提示怎样进入root模式,按照提示的命令输入进入root模式

# chroot /mnt/sysimage

centos 6 单用户 centos6.7单用户_centos 6 单用户_15

然后使用命令修改root密码

# passwd root             //修改root的密码

centos 6 单用户 centos6.7单用户_重启_16

实体机需要重新启动再次设置BIOS,把从光驱启动变更回去变成从硬盘启动,不再通过从光驱启动。

虚拟机可以直接在设置中把光驱设置中的启动时候连接取消掉,相当与没有了光驱。

然后重新启动即可,通过刚刚修改的密码登录了。

 

centos 6 单用户 centos6.7单用户_重启_17

 



克隆虚拟机



1、克隆虚拟机

克隆虚拟机,在linux虚拟机关闭的情况下进行。选择管理-克隆选项

centos 6 单用户 centos6.7单用户_操作系统_18

 

选择创建连接克隆。

请按正克隆克隆一个完整的独立的副本,复制了所有的文件,很大,此处不必要。

centos 6 单用户 centos6.7单用户_操作系统_19

名称随意,便于自己区分即可。

位置更改一下可以,最好不要放在C盘,免得占用空间。

centos 6 单用户 centos6.7单用户_重启_20

完成后可以看到有两台机器了就。

centos 6 单用户 centos6.7单用户_重启_21

 

 

登录进去克隆的虚拟机后会发现,IP地址和原来的是一模一样的,因为是克隆来的嘛,所以配置参数都是一样的。因此这里需要把他的IP修改一下,否则两台不能同时登录了就。

centos 6 单用户 centos6.7单用户_python_22

修改IP地址

# vi /etc/sysconfig/network-scripts/ifcfg-ens33

UUID含义是通用唯一识别码 (Universally Unique Identifier)

centos 6 单用户 centos6.7单用户_运维_23

编辑完后重启网络服务

# systemctl restart network.service

centos 6 单用户 centos6.7单用户_操作系统_24

 

检查一下IP地址是否已改好

# ifconfig

发现已经改过来了

然后检查一下网络是否正常

# ping -c 4 www.baidu.com //ping 4次 百度

结果显示发4个包收到4个包,丢失0%,所以网络正常。

centos 6 单用户 centos6.7单用户_centos 6 单用户_25

 



2、更改主机名称



2.1、命令行更改主机名

hostname查看主机名

#hostname

然后把主机名字改为自己想要的名字

#hostnamectl set-hostname colin_02

然后在次查看主机名

#hostname

虽然这时候查看的主机名变为了刚刚改的主机名字,但是全局中还没有真的生效。这需要我们重启以后才能生效。

centos 6 单用户 centos6.7单用户_运维_26

重启后如下,说明已经生效了。

centos 6 单用户 centos6.7单用户_操作系统_27



2.2、修改配置文件改主机名

#hostnamectl set-hostname colin_02 //这条命令其实是直接改了hostname文件的内容

执行下面的命令

#vi /etc/hostname

(或者#cat /etc/hostname这里以vi为例)

centos 6 单用户 centos6.7单用户_centos 6 单用户_28

可以看到文件里只有这几个刚刚改的字符

centos 6 单用户 centos6.7单用户_重启_29

所以也可以通过改这个配置文件,来达到改主机名字的目的。

现在我们通过这种方式把主机名字改为colinLinux_02

改完重新启动后,名字就改过来了。

centos 6 单用户 centos6.7单用户_操作系统_30



2.3、两种方式的区别



区别1:

#hostnamectl  set-hostname xxx

不但更改了/etc/hostname

而且内存映射/proc下的也被改了。

而vi /etc/hostname

则只改了/etc/hostname配置文件

centos 6 单用户 centos6.7单用户_重启_31

centos 6 单用户 centos6.7单用户_python_32



区别2:改文件才能得到大写主机名

另外通过#hostnamectl set-hostname xxx命令是不能得到大写的主机名字的。想要名字中有大写,需要通过vi编辑保存重启。

 



Linux机器互相登录



1.1、通过密码登录

远程连接命令:

完整命令

#ssh -p 22 root@192.168.74.128

-p 22用于指定端口,如果不写,则默认是22端口,有些设备未必是22端口。

root@192.168.74.128如果不指明用户名(这里是root)只填写目标IP,则默认是当前用户登录目标IP。

查看当前用户命令

#whoami

 

centos 6 单用户 centos6.7单用户_重启_33

简写这样命令就变成了

#ssh 192.168.74.128

 

centos 6 单用户 centos6.7单用户_重启_34



1.2、通过密钥登录

例如,想要通过02去连接01,则需要在01上有个公钥,02上有相应的私钥



1、客户端生成密钥对

Linux也可以过ssh协议方式登录的方式登录其他Linux。CentOS自带的客户端软件叫做openssh-clients。

首先通过命令检查是否安装了软件。

#ssh -V //查看软件版本。V是大写的,小写的是另外一个命令,有自己的作用

如果没有安装则通过yum命令安装,

#yum install -y openssh-clients

下面以02连接01为例。

首先需要生成密钥对。

centos 6 单用户 centos6.7单用户_重启_35

centos 6 单用户 centos6.7单用户_重启_36

 

 



2、把公钥复制到要登录的机器上(服务器)

把公钥放到Linux_01响应的位置。

centos 6 单用户 centos6.7单用户_python_37

 

然后在linux_02中连接LInux_01,直接就连接上了。

centos 6 单用户 centos6.7单用户_运维_38

同理通过Linux_01连接Linux_02则需要把01的公钥放到02上。