您的位置:首页 > 运维架构 > Linux

Linux系统恢复技术

2017-04-13 20:16 369 查看
unit11.系统恢复技术.
系统引导过程概述
通电-bios初始化-grub2磁盘引导阶段-grub2文件引导阶段-指定boot所在分区-启动内核,只读挂在
/ 设备-启动init程序进入初始化阶段-启动systemd初始化进程-读取/etc/systemd/中的文件-启动程序-启动登陆环境
(1)bios初始化
基本输入 / 输出系统 ( BIOS ) 是内置于标准 x86/x86-64硬件的固件接口 ,
将硬件置于已知状态并准备好系统以加载操作系统

• 出现什么情况 ?

          – 检测并初始化硬件

          – 确定从中引导的设备

• 可能出现了什么错误 ?

          – 错误或异常BIOS 设置

          – 错误引导设备顺序

• 可以如何中断或影响 ?

          – 按特定于供应商的键

          – 使用特定于供应商的配置实用程序

          – 通常 ,<F12> 可以执行一次引导顺序覆盖
(2)grub 磁盘引导阶段

• MBR

          – mbr 的作用是为了记录 /boot 目录所在分区位置

          – 磁盘的 0 磁道 1
扇区的前 446 字节

          – dd if=/dev/zero of=/dev/xdabs=446 count=1

          - 用镜像引导系统进入排错模式,先chroot /mnt/sysimage/

          – grub2-install /dev/vda

(3)grub 文件引导阶段

• /boot/grub2/grub.cfg

          – 指定/boot 分区位置

          – 加载内核

          – 启动系统初始化进程

          – grub2-mkconfig

[root@localhost ~]# cd /boot/grub2/

[root@localhost grub2]# ls

device.map  fonts  grub.cfg grubenv  i386-pc  locale themes

[root@localhost grub2]# rm -rf grub.cfg

[root@localhost grub2]# ls

device.map  fonts  grubenv i386-pc  locale  themes

[root@localhost grub2]# grub2-mkconfig > /boot/grub2/grub.cfg

Generating grub configuration file ...

Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64

Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img

Found linux image:/boot/vmlinuz-0-rescue-4360b9e5bcf24cc98c41c3460887444a

Found initrd image:/boot/initramfs-0-rescue-4360b9e5bcf24cc98c41c3460887444a.img

done

[root@localhost grub2]# ls

device.map  fonts  grub.cfg grubenv  i386-pc  locale themes
(4)内核引导阶段

         检测硬件设备

         设备驱动初始化

         将 / 只读挂载

         载入初始进程systemd

         内核文件丢失请重新安装内核

[root@localhost grub2]# cd

[root@localhost ~]# cd /boot

[root@localhost boot]# ls

config-3.10.0-327.el7.x86_64

grub2

initramfs-0-rescue-4360b9e5bcf24cc98c41c3460887444a.img

initramfs-3.10.0-327.el7.x86_64.img

initramfs-3.10.0-327.el7.x86_64kdump.img

initrd-plymouth.img

symvers-3.10.0-327.el7.x86_64.gz

System.map-3.10.0-327.el7.x86_64

vmlinuz-0-rescue-4360b9e5bcf24cc98c41c3460887444a

vmlinuz-3.10.0-327.el7.x86_64
其中initramfs-3.10.0-327.el7.x86_64.img和vmlinuz-3.10.0-327.el7.x86_64为内核引导文件
以上文件丢失,可以先进入排错模式,找到相应的文件cp到原位置。

(vmlinuz-3.10.0-327.el7.x86_64)排错模式-df查看镜像是否挂载在/dev/sr0-chroot /mnt/sysimage-mount /dev/sr0 /mnt-cd /mnt/Packages-建一个目录mkdir /westos-cp /mnt/Packages/kernel-3.10.0-327.el7.x86_64.rpm/westos-cd
/westos-rpm2cpio kernel-3.10.0-327.el7.x86_64.rpm | cpio -id - cdboot/ ls -cp vmlinuz-3.10.0-327.el7.x86_64 /boot/

(initramfs-3.10.0-327.el7.x86_64.img)排错模式-df查看镜像是否挂载在/dev/sr0-chroot /mnt/sysimage-mkinitrd /boot/initramfs-$(uname-r).img $(uname -r)
(5)systemd 初始化

         开启selinux 和 systemd-tools

         加载内核参数

         加载系统时钟,键盘,主机名称

         读写挂载 / 文件系统

         激活 raid, lvm 设备

         激活系统配额

         启动multi-user.target.wants 中的所有服务脚本

         启用虚拟控台

         启动图形

[root@localhost boot]# cd /etc/systemd/system

[root@localhost system]# ls

basic.target.wants

dbus-org.freedesktop.NetworkManager.service

dbus-org.freedesktop.nm-dispatcher.service

default.target

default.target.wants

getty.target.wants

multi-user.target.wants

remote-fs.target.wants

sockets.target.wants

system-update.target.wants

[root@localhost system]# cd multi-user.target.wants/

[root@localhost multi-user.target.wants]# ls

auditd.service     NetworkManager.service rsyslog.service

crond.service      nfs-client.target      sshd.service

httpd.service       postfix.service         tuned.service

irqbalance.service remote-fs.target

kdump.service      rhsmcertd.service

[root@localhost system]# rm -fr /etc/systemd/system/default.target

[root@localhost system]# ln -s /lib/systemd/system/poweroff.target/etc/systemd/system/default.target
会出现开机又关机的情况
在开机初始选项阶段按e将ro####改为rw rd.break-chroot /sysroot/-rm -rf /etc/systemd/system/default.target-ln -s/lib/systemd/system/multi-user.target /etc/systemd/system/default.target

(6)启动级别

runlever0.target -> poweroff.target

runlever1.target -> rescue.target

runlever2.target -> multi-user.target

runlever3.target -> multi-user.target

runlever4.target -> multi-user.target

runlever5.target -> grapical.target

runlever6.target -> reboot.target
(7)设定启动级别

• systemctl set-default + 启动级别

• /etc/systemd/system/default.target

(8)忘记root用户密码,修改root用户密码
在开机初始选项阶段按e将ro####改为rw rd.break->chroot /sysroot/->passwd->输入并且确认密码->touch /.autorelabel
退出重启
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: