linux系统运维基础12

1、简述linux操作系统启动流程

Centos 6启动流程

1.加载BIOS的硬件信息,获得第一个启动设备

2.读取第一个启动设备MBR的引导程序(grub)的启动信息

grub启动过程

      1st stage(1阶段):MBR的前446个字节

      1.5 stage(1.5阶段): MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区 上的文件系统

      2nd stage(2阶段),解析分区文件/boot/grub/解析/boot/grub/grub.conf(指明内核和驱动程序)

        /vmlinuz-VERSION-RELEASE;/initramfs-VERSION-RELEASE.img

3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

4.核心执行init程序,并获得默认的运行信息

5.init程序执行/etc/rc.d/rc.sysinit文件,重新关注根文件系统

6.启动核心的外挂模块

7.init执行运行的各个批处理文件(scripts)

8.init执行/etc/rc.d/rc.local

9.执行/bin/login程序,等待用户登录

10.登录后开始以shell控制主机

CentOS 7之后版本启动流程

1. UEFi或BIOS初始化,运行POST开机自检

2. 选择启动设备

3. 引导装载程序, centos7是grub2,加载装载程序的配置文件:

/etc/grub.d/

/etc/default/grub

/boot/grub2/grub.cfg

4. 加载initramfs驱动模块

5. 加载内核选项

6. 内核初始化,centos7使用systemd代替init

7. 执行initrd.target所有单元,包括挂载/etc/fstab

8. 从initramfs根文件系统切换到磁盘根目录

9. systemd执行默认target配置,配置文件/etc/systemd/system/default.target

10. systemd执行sysinit.target初始化系统及basic.target准备操作系统

11. systemd启动multi-user.target下的本机与服务器服务

12. systemd执行multi-user.target下的/etc/rc.d/rc.local

13. Systemd执行multi-user.target下的getty.target及登录服务

14. systemd执行graphical需要的服务

2.制作一个只运行shell的linux系统

1.分区并创建文件系统

#分两个必要的分区,/dev/sdb1对应/boot  /dev/sdb2对应根 /

[root@centos6 ~]#echo -e 'n\np\n1\n\n+1G\nw\n' | fdisk /dev/sdb

[root@centos6 ~]#echo -e 'n\np\n2\n\n\n\nw\n' | fdisk /dev/sdb

[root@centos6 ~]#mkfs.ext4 /dev/sdb1

[root@centos6 ~]#mkfs.ext4 /dev/sdb2

2.挂载boot

#子目录必须为boot

[root@centos6 ~]#mkdir /mnt/boot

[root@centos6 ~]#mount /dev/sdb1 /mnt/boot

3.安装grub

[root@centos6 ~]#grub-install --root-directory=/mnt/ /dev/sdb

4.准备内核和initramfs文件

[root@centos6 ~]#cp /boot/vmlinuz-2.6.32-754.el6.x86_64 /mnt/boot/vmlinuz

[root@centos6 ~]#cp /boot/initramfs-2.6.32-754.el6.x86_64.img /mnt/boot/initramfs.img

5.创建grub.conf

[root@centos6 ~]# cat /mnt/boot/grub/grub.conf

default=0

timeout=6

title tiger linux

root (hd0,0)

kernel /vmlinuz root=/dev/sda2 selinux=0 init=/bin/bash

initrd /initramfs.img

6.准备根下面相关程序和库

#准备根目录下目录

[root@centos6 ~]#mkdir /mnt/sysroot

[root@centos6 ~]#mount /dev/sdb2  /mnt/sysroot

[root@centos6 ~]#mkdir –pv /mnt/sysroot/{boot,dev,sys,proc,etc,lib,lib64,bin,sbin,tmp,var,usr,opt,home,root,mnt,media}

#复制相关程序及相关库文件

[root@centos6 ~]# which bash

/bin/bash

[root@centos6 ~]# cp -a /bin/bash /mnt/sysroot/bin/

[root@centos6 ~]# ldd /bin/bash |sed -nr 's#.*(\/.*/.*) .*#\1#p'

/lib64/libtinfo.so.5

/lib64/libdl.so.2

/lib64/libc.so.6

/lib64/ld-linux-x86-64.so.2

[root@centos6 ~]# cp -ar `ldd /bin/bash |sed -nr 's#.*(\/.*/.*) .*#\1#p'` /mnt/sysroot/lib64/

#准备网卡驱动

[root@centos6 ~]#ethtool -i eth0

[root@centos6 ~]#modinfo -n e1000

/lib/modules/2.6.32-754.el6.x86_64/kernel/drivers/net/e1000/e1000.ko

[root@centos6 ~]#cp /lib/modules/2.6.32-754.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /mnt/sysroot/lib/

[root@centos6 ~]#chroot /mnt/sysroot

3、总结systemctl管理命令及system unit文件格式

systemctl命令:

管理系统服务service unit

格式:

systemctl COMMAND name.service

常用COMMAND:

start:启动服务

restart:重启

stop:停止

status:查看状态

enable:设置开启启动

disable:开机不启动

mask:禁止自动和手动启动服务,将服务mask后start命令就不起作用

unmask:取消mask

is-active:查看服务是否激活状态

is-enabled:查看服务是否开机启动

list-units:查看所有了units

list-dependencies:查看服务依赖关系

system unit文件格式

service unit file文件通常由三部分组成:

[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等

[Service]:与特定类型相关的专用选项;此处为Service类型

[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

Unit段的常用选项:

Description:描述信息

After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活

Wants:依赖到的其它units,弱依赖

Conflicts:定义units间的冲突关系

Service段的常用选项:

Type:定义影响ExecStart及相关参数的功能的unit进程启动类型

simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中

forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止

oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中

dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname= 才行

notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让 Systemd 接收消息

idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务

EnvironmentFile:环境配置文件

ExecStart:指明启动unit要运行命令或脚本的绝对路径

ExecStartPre: ExecStart前运行

ExecStartPost: ExecStart后运行

ExecStop:指明停止unit要运行的命令或脚本

Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务

PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录

Install段的常用选项:

Alias:别名,可使用systemctl command Alias.service

RequiredBy:被哪些units所依赖,强依赖

WantedBy:被哪些units所依赖,弱依赖

Also:安装本服务的时候还要安装别的相关服务

注意:对于新创建的unit文件,或者修改了的unit文件,要通知systemd重载此配置文件,而后可以选择重启:systemctl daemon-reload

4、破解centos7 密码

方法一:

1.启动时任意键暂停启动

2.按e键进入编辑模式

3.将光标移动linux 开始的行,添加内核参数rd.break

4.按ctrl-x启动

5.切根并修改密码

mount –o remount,rw /sysroot

chroot /sysroot

passwd root

#如果SELinux是启用的,才需要执行下面操作,如查没有启动,不需要执行

touch /.autorelabel

exit

reboot

方法二:

1.启动时任意键暂停启动

2.按e键进入编辑模式

3.将光标移动linux 开始的行,改为rw init=/sysroot/bin/sh

4.按ctrl-x启动

5.切根,并修改root密码,

chroot /sysroot

passwd root

#如果SELinux是启用的,才需要执行下面操作,如查没有启动,不需要执行

touch /.autorelabel

exit

reboot

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

推荐阅读更多精彩内容

  • cenos6启动流程 加载BIOS的硬件信息,获取第一个启动设备 读取第一个启动设备MBR的引导加载程序(grub...
    毛利卷卷发阅读 1,061评论 0 1
  • 第十二周 一、简述linux操作系统启动流程 centos7启动流程: 1.POST:通电自检 2.BIOS:BO...
    lorryandy阅读 240评论 1 0
  • 一、简述linux操作系统启动流程 加载BIOS的硬件信息,获取第一个启动设备POST > 初始化硬件设备,检查系...
    亨利阅读 473评论 1 0
  • 1 CentOS6的启动管理 1.1 Linux组成 1.2 CentOS6 启动流程 1.2.1 CentOS6...
    随便写写咯阅读 726评论 0 8
  • CentOS-7.5安装 一.1.创建新的虚拟机 下一步 下一步 下一步 下一步 2.点击浏览(选择安装产生文件所...
    达不到点阅读 189评论 0 0