单用户模式(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里的运行级别。
从名字来看基本和6差不多,1变了。
2、重启系统
重启系统3秒内按下向下的方向键。
虚拟机可以通过重启客户机方式实现。
选择选择上面的系统,按 e,进入grub。
grub(Grand Unified Bootloader)是一个来自GNU项目多操作系统启动程序。grub是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统,grub可以用于选择操作系统分区上的不同内核,也可以用于向这些内核传递启动参数。
3、进入emergency模式
通过方向键把ro改为rw init=/sysroot/bin/sh,然后按下ctrl+x启动,就正式进入emergency模式了。
(单用户模式的设置用完后不需要改回来;做完操作就重启了,下次就不会是单用户。
再次重启就恢复原来的了)
4、修改root密码
此时进入emergency模式,并不是原来的系统。需要使用
# chroot /sysroot/ //切换到原来的系统。
# passwd root //修改root密码。
修改密码,但是出现了乱码。
因为VMware终端下不支持显示中文,会显示小方框乱码。
# LANG=en //把当前终端的语言设置成英文。
然后再修改密码。
修改完了密码,一定要输入下面的命令
# touch /.autorelabel //一个与SELinux相关的命令,需要执行才能使得当前模式修改的密码生效。
然后再次在电源处选择重启客户机就可以用刚刚修改的密码登录了。
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镜像文件。
在“电源”子选项卡中,选择“打开电源时进入固件(就是BIOS)”。
在Boot中通过 加号 和 减号 把CD-ROM Drive移动到最前面,然后按F10保存并退出。
2、进入rescue模式
进入到光驱启动界面,选择Troubleshooting。
Install CentOS Linux7 //安装CentOS7
Test this media & install CentOS Linux7 //测试这个镜像文件并安装CentOS7
选择Rescue a CentOS Linux system,回车确认。
等到出现以下界面,提示“make a selection from the above”输入1回车选择继续
提示怎样进入root模式,按照提示的命令输入进入root模式
# chroot /mnt/sysimage
然后使用命令修改root密码
# passwd root //修改root的密码
实体机需要重新启动再次设置BIOS,把从光驱启动变更回去变成从硬盘启动,不再通过从光驱启动。
虚拟机可以直接在设置中把光驱设置中的启动时候连接取消掉,相当与没有了光驱。
然后重新启动即可,通过刚刚修改的密码登录了。
克隆虚拟机
1、克隆虚拟机
克隆虚拟机,在linux虚拟机关闭的情况下进行。选择管理-克隆选项
选择创建连接克隆。
请按正克隆克隆一个完整的独立的副本,复制了所有的文件,很大,此处不必要。
名称随意,便于自己区分即可。
位置更改一下可以,最好不要放在C盘,免得占用空间。
完成后可以看到有两台机器了就。
登录进去克隆的虚拟机后会发现,IP地址和原来的是一模一样的,因为是克隆来的嘛,所以配置参数都是一样的。因此这里需要把他的IP修改一下,否则两台不能同时登录了就。
修改IP地址
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
UUID含义是通用唯一识别码 (Universally Unique Identifier)
编辑完后重启网络服务
# systemctl restart network.service
检查一下IP地址是否已改好
# ifconfig
发现已经改过来了
然后检查一下网络是否正常
# ping -c 4 www.baidu.com //ping 4次 百度
结果显示发4个包收到4个包,丢失0%,所以网络正常。
2、更改主机名称
2.1、命令行更改主机名
hostname查看主机名
#hostname
然后把主机名字改为自己想要的名字
#hostnamectl set-hostname colin_02
然后在次查看主机名
#hostname
虽然这时候查看的主机名变为了刚刚改的主机名字,但是全局中还没有真的生效。这需要我们重启以后才能生效。
重启后如下,说明已经生效了。
2.2、修改配置文件改主机名
#hostnamectl set-hostname colin_02 //这条命令其实是直接改了hostname文件的内容
执行下面的命令
#vi /etc/hostname
(或者#cat /etc/hostname这里以vi为例)
可以看到文件里只有这几个刚刚改的字符
所以也可以通过改这个配置文件,来达到改主机名字的目的。
现在我们通过这种方式把主机名字改为colinLinux_02
改完重新启动后,名字就改过来了。
2.3、两种方式的区别
区别1:
#hostnamectl set-hostname xxx
不但更改了/etc/hostname
而且内存映射/proc下的也被改了。
而vi /etc/hostname
则只改了/etc/hostname配置文件
区别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
简写这样命令就变成了
#ssh 192.168.74.128
1.2、通过密钥登录
例如,想要通过02去连接01,则需要在01上有个公钥,02上有相应的私钥
1、客户端生成密钥对
Linux也可以过ssh协议方式登录的方式登录其他Linux。CentOS自带的客户端软件叫做openssh-clients。
首先通过命令检查是否安装了软件。
#ssh -V //查看软件版本。V是大写的,小写的是另外一个命令,有自己的作用
如果没有安装则通过yum命令安装,
#yum install -y openssh-clients
下面以02连接01为例。
首先需要生成密钥对。
2、把公钥复制到要登录的机器上(服务器)
把公钥放到Linux_01响应的位置。
然后在linux_02中连接LInux_01,直接就连接上了。
同理通过Linux_01连接Linux_02则需要把01的公钥放到02上。