8月31日 启动和内核管理3

1、centos6启动流程

POST(加电自检) --> Boot Sequence(BIOS)(读取第一个启动设备MBR的引导加载程序(grub)的启动信息) --> Boot Loader(grub引导加载器,将内核文件和ramdisk文件加载到内存中,分为三个阶段,第一阶段是读取mbr,1.5阶段是mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统,第二阶段是在磁盘分区上找到/boot/grub/grub.conf,通过这个文件规定的路径才能找到内核文件和ramdisk文件,并把他们加载到内存中,删除grub.conf文件就看不到启动菜单了) --> Kernel(ramdisk)(加载内核和ramdisk文件,安装设备驱动和根文件系统驱动) --> rootfs(以只读方式挂载根文件系统)--> switchroot(切根,之前根是boot,切根后就可以访问根下的数据)--> /sbin/init(启动根下的第一个程序)-->(读取第一个程序的配置文件/etc/inittab, /etc/init/*.conf,根据配置文件中定义的内容进行后续操作) --> 设定默认运行级别--> 系统初始化脚本rc.sysinit(设置主机名、挂载/etc/fstab文件中定义的文件系统、以读写方式重新挂载根文件系统、激活lv和swap设备等)--> 关闭或启动对应级别的服务--> 启动终端。

2、安装grub

  • 将/boot/grub 目录下的所有文件,除了/grub.conf文件都移动到/app下,如何恢复
[root@centos6 app]#mv /boot/grub/* /app
[root@centos6 app]#ls  --grub目录下的文件有1阶段、1.5阶段和2阶段
生成的一文件和grub.conf文件
device.map     grub.conf         minix_stage1_5     stage2
e2fs_stage1_5  iso9660_stage1_5  reiserfs_stage1_5  ufs2_stage1_5
fat_stage1_5   jfs_stage1_5      splash.xpm.gz      vstafs_stage1_5
ffs_stage1_5   menu.lst          stage1             xfs_stage1_5
[root@centos6 app]#mv grub.conf /boot/grub/
[root@centos6 app]#cd /boot/grub/
[root@centos6 grub]#ls    ---只留这一个文件
grub.conf
reboot  ---重启发现系统仍然可以启动
所以grub下的文件除了grub.conf文件是用于启动之外,其他的文件都是
备份用的。用来备份1、1.5、2阶段,当这些阶段出现故障的时候,可
以通过一些命令来修复这些阶段,将会用到这些备份文件。
  • 破坏gurb的第一阶段,如何恢复
[root@centos6 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=446  ---破坏
mbr跟引导相关的前446个字节
[root@centos6 ~]#hexdump -C -n 512 /dev/sda  ---发现前446个字节变成空的了
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 80 20  |............... |
000001c0  21 00 83 aa 28 82 00 08  00 00 00 00 20 00 00 aa  |!...(....... ...|
000001d0  29 82 83 fe ff ff 00 08  20 00 00 80 1a 06 00 fe  |)....... .......|
000001e0  ff ff 83 fe ff ff 00 88  3a 06 00 80 1a 06 00 fe  |........:.......|
000001f0  ff ff 05 fe ff ff 00 08  55 0c 00 f8 aa 0c 55 aa  |........U.....U.|
00000200

重启之后发现直接进入光盘引导界面,说明硬盘已经没有启动功能了,mbr上的启动代码已经被删除了。如何恢复。进入救援模式进行如下操作

QQ截图20170901101712.png

发现已经前446个字节已经被恢复


QQ截图20170901101732.png

退出救援模式重启后发现已经恢复正常。注意在执行操作之前最好将selinux禁用,不然开机会比较慢。

  • 破坏grub的1.5阶段,如何恢复
[root@centos6 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=10240 skip=512 seek=512     ---1.5阶段在磁盘的后512个字
节的扇区中,这里我们删除后面的20个扇
区,一个扇区512个字节。
[root@centos6 ~]#getenforce   ---selinux是
关闭状态的,如果没有关闭最好关闭
Permissive
reboot  ---重启后发现不是像破坏第一阶段一样直接进入光盘界面,而是卡在中间位置,而且启动菜单也看不到,说明此时认为硬盘还是有启动功能的,1.5阶段被破坏了就无法识别二阶段分区上的文件系统,就无法进入/boot/grub这个目录去找到grub.conf文件
恢复方法是进入救援模式进行如下操作
QQ截图20170901111230.png
QQ截图20170901111342.png
QQ截图20170901111406.png

退出救援模式后重启发现恢复正常了
但是此时如果我们想像之前一样,将/boot/grub 目录下的所有文件,除了/grub.conf文件都移动到/app下,再重启,系统会启不来,说明重新安装grub后需要这些备份文件,但因为重启的时候能看到启动菜单,说明只是第二阶段破坏了,只要将 stage2这个文件复制回来就可以正常启动了。

root (hd0,0) 其实是在定义哪个是根,hd0代表第一块硬盘,0代表第一个分区,此时boot就第一个硬盘的第一个分区,所以此时的根是boot,安装grub时指明此时的根是在boot。

3、配置文件:/boot/grub/grub.conf

QQ截图20170901114100.png

菜单默认是隐藏的,所以在启动的时候我们要按esc才能看到,可以把hiddenmenu一行去掉,就不隐藏了。

[root@centos6 ~]#cat /proc/cmdline ---此命令可
以查看内核参数,其中rhgb这个参数如果删除,
系统启动时就不会转圈圈,quiet参数如果删除就
会显示内核的加载信息,默认是不显示内核的加
载信息的
ro root=UUID=6350f737-89cd-4f10-b687-13672099dae5 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16   KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

4、如何设置进入单用户时的密码和启动密码

[root@centos6 ~]#grub-md5-crypt ---生成md5加密算法
Password:   ---输入的是magedu,可以是任意的密码
Retype password: ---输入两遍
$1$SgJnT/$bSXysp55sZ.potjDJ3dmy0
[root@centos6 ~]#grub-crypt ---生成sha512加密算法
Password: 
Retype password: 
$6$tVAsZFsFr/DY.mUk$4nF84mpLE4lEFtnpO/T.p0H5dN318kDCH3bAleMl3IVbCk7b2XhxHWSuA5Z9OhX3VNZGzBkBlHJKGyNtEKeUK1
后面的这种方法更安全一些,位数比较长,同样密码是magedu。后面一种算法的安全性更高

将这个口令放到配置文件中,格式如下

6854348-d54c88500173ca57.png

如果要想进入单用户模式需要先输入p,然后输入口令才能输入e进入单用户模式。

5、如何更改启动菜单的背景图片

首先制作一个图片,图片大小按下图格式

QQ截图20170901131533.png
[root@centos6 grub]#ls     ---我们发现这个文件
的格式和原来系统自带的.xpm 格式不一样
device.map     iso9660_stage1_5  reiserfs_stage1_5  vstafs_stage1_5
e2fs_stage1_5  jfs_stage1_5      splash.xpm.gz      xfs_stage1_5
fat_stage1_5   linux. jpg  stage1
ffs_stage1_5   menu.lst          stage2
grub.conf      minix_stage1_5    ufs2_stage1_5
[root@centos6 grub]#yum install ImageMagick  ---安装图形处理工具convert
[root@centos6 grub]#convert -colors 14 linux.jpg linux.xpm  ---转换格式成.xpm
[root@centos6 grub]#ls
device.map     iso9660_stage1_5  minix_stage1_5     ufs2_stage1_5
e2fs_stage1_5  jfs_stage1_5      reiserfs_stage1_5  vstafs_stage1_5
fat_stage1_5   linux.jpg         splash.xpm.gz      xfs_stage1_5
ffs_stage1_5   linux.xpm         stage1
grub.conf      menu.lst          stage2
[root@centos6 grub]#gzip -c linux.xpm >linux.xpm.gz   ---压缩成和原来的格
式一样的.gz格式的后缀
[root@centos6 grub]#ls
device.map     iso9660_stage1_5  menu.lst           stage2
e2fs_stage1_5  jfs_stage1_5      minix_stage1_5     ufs2_stage1_5
fat_stage1_5   linux.jpg         reiserfs_stage1_5  vstafs_stage1_5
ffs_stage1_5   linux.xpm         splash.xpm.gz      xfs_stage1_5
grub.conf      linux.xpm.gz      stage1
更改配置文件中的路径
QQ截图20170901135201.png

重启系统见证奇迹的时刻

QQ截图20170901135239.png

6、删除/boot/grub/grub.conf文件,如何恢复

[root@centos6 app]#mv /boot/grub/grub.conf /app   ---移动这个文件到app目录下
[root@centos6 app]#ls
grub.conf
reboot系统

重启系统后我们发现进入grub交互式界面下,看不到启动菜单,恢复时按照下图操作

QQ截图20170901142805.png

7、删除/boot/grub目录如何恢复

[root@centos6 ~]#rm -rf /boot/grub/  ---删除这个目录
[root@centos6 ~]#reboot   ---重启

恢复进入光盘的救援模式下。进行如下图操作

QQ截图20170901144619.png
QQ截图20170907194814.png

退出救援模式后重启就可恢复。

8、删除/boot目录,如何恢复

[root@centos6 ~]#rm -rf /boot
rm: cannot remove `/boot': Device or resource busy
[root@centos6 ~]#cd /boot   ---发现/boot目录下已经什么文件都没有了
[root@centos6 boot]#ls
[root@centos6 boot]#reboot

进入救援模式进行如下操作

QQ截图20170901151608.png
QQ截图20170901152234.png

手写一个/boot/grub/grub.conf文件

QQ截图20170907194922.png

退出救援模式后重启即可恢复

9、删除/sbin/init文件,如何恢复

[root@centos6 ~]#mv /sbin/init /app
[root@centos6 app]#reboot

恢复时进行如下操作


QQ截图20170901160528.png
QQ截图20170901160642.png
QQ截图20170901161509.png

重新启动就可以了

10 、删除/boot目录和/etc/fstab文件如何恢复

进入救援模式下进行如下操作


QQ截图20170901162602.png

查看一下文件系统


QQ截图20170901163929.png
QQ截图20170901165210.png

用vi编辑/mnt/temp2/etc/fstab文件如下图,其中设备文件最好写uuid


QQ截图20170901170346.png

必须重新启动后才能生效,重启后发现系统将根自动挂载到/mnt/sysimage下


QQ截图20170901171036.png

先进行切根,然后创建一个临时目录,将光盘挂载到这个目录下,重新安装内核,可以生成/boot下的内核文件和initrd文件,也可以像8里面说的那种方法一样,进入光盘拷贝内核文件,用dracut生成initrd文件。然后安装grub目录里面的文件
QQ截图20170901171758.png

最后就是编写一下/boot/grub/grub.conf文件,重新启动就可以了。

11、在逻辑卷环境下删除/boot目录和/etc/fstab文件如何恢复

QQ截图20170901173435.png

上面的是一个逻辑卷的环境,按照上述方法删除后恢复的方法如下
进入救援模式先查看一下文件系统、分区情况


QQ截图20170901174215.png

我们发现逻辑卷没有被激活,并且根在逻辑卷上,只有激活逻辑卷才能挂载逻辑卷,激活卷组就相当于激活逻辑卷

QQ截图20170901174650.png

挂载逻辑卷,并编辑逻辑卷的根上的etc/fstab文件

QQ截图20170901175329.png

编辑文件的内容如下

QQ截图20170901180541.png

重启启动,进入救援模式,发现根自动挂载到/mnt/sysimage目录下
后续的操作过程同10一样就可以了。在这里需要注意的是最后编写grub.conf文件时真正的根是逻辑卷的根,文件名字很长。
用vim编辑器编辑文件时可以用:r!读入命令的输入到vim中,这样可以节省时间,避免自己写的时候出错,比如内核文件和initrd文件都可以通过这种方法读入,:r!ls /boot/内核文件,支持补全。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,671评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,442评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,524评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,623评论 1 275
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,642评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,584评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,953评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,621评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,865评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,608评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,698评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,378评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,958评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,940评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,173评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,419评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,425评论 2 342

推荐阅读更多精彩内容