- CentOS 7引導(dǎo)順序
- unit文件格式
- CentOS 7啟動(dòng)問(wèn)題修復(fù)
一跟磨、CentOS 7引導(dǎo)順序
- UEFi或BIOS初始化,運(yùn)行POST開機(jī)自檢
- 選擇啟動(dòng)設(shè)備都哭,引導(dǎo)bootloader程序grub2
- 加載bootloader程序的配置文件:/boot/grub2/grub.cfg
- 加載initramfs驅(qū)動(dòng)模塊
- 加載內(nèi)核選項(xiàng)
- 內(nèi)核初始化,centos7使用systemd代替init
- 執(zhí)行initrd.target所有單元,包括掛載/etc/fstab
- 從initramfs根文件系統(tǒng)切換到磁盤根目錄
- systemd執(zhí)行默認(rèn)target配置涛目,配置文件/etc/systemd/system/default.target
- systemd執(zhí)行sysinit.target初始化系統(tǒng)及basic.target準(zhǔn)備操作系統(tǒng)
- systemd啟動(dòng)multi-user.target下的本機(jī)與服務(wù)器服務(wù)
- systemd執(zhí)行multi-user.target下的/etc/rc.d/rc.local
- systemd執(zhí)行multi-user.target下的getty.target及登錄服務(wù)
- systemd執(zhí)行g(shù)raphical需要的服務(wù)
二秸谢、unit文件格式
-
unit文件路徑:
- /usr/lib/systemd/system:發(fā)行版打包者使用
- /etc/systemd/system:系統(tǒng)管理員和用戶使用,一般是指向/usr/lib/systemd/system的軟鏈接
- 注意:對(duì)于新創(chuàng)建的unit文件霹肝,或者修改了的unit文件估蹄,要通知systemd重載此配置文件systemctl daemon-reload
-
unit文件內(nèi)容通常由三部分組成:
- [Unit]:定義與Unit類型無(wú)關(guān)的通用選項(xiàng);用于提供unit的描述信息沫换、unit行為及依賴關(guān)系等
- [Service]:與特定類型相關(guān)的專用選項(xiàng)臭蚁;此處為Service類型
- [Install]:定義由“systemctl enable”以及"systemctl disable“命令在實(shí)現(xiàn)服務(wù)啟用或禁用時(shí)用到的一些選項(xiàng)
-
Unit段的常用選項(xiàng):
- Description:描述信息
- After:定義unit的啟動(dòng)次序,表示當(dāng)前unit應(yīng)該晚于哪些unit啟動(dòng)讯赏,其功能與Before相反
- Requires:依賴到的其它units垮兑,強(qiáng)依賴,被依賴的units無(wú)法激活時(shí)漱挎,當(dāng)前unit也無(wú)法激活
- Wants:依賴到的其它units系枪,弱依賴
- Conflicts:定義units間的沖突關(guān)系
-
Service段的常用選項(xiàng):
- Type:定義影響ExecStart及相關(guān)參數(shù)的功能的unit進(jìn)程啟動(dòng)類型,包括:simple,
forking, oneshot, dbus, notify, idle磕谅。默認(rèn)為simple - EnvironmentFile:環(huán)境配置文件
- ExecStart:指明啟動(dòng)unit要運(yùn)行命令或腳本的絕對(duì)路徑
- ExecStartPre:ExecStart前運(yùn)行
- ExecStartPost:ExecStart后運(yùn)行
- ExecStop:指明停止unit要運(yùn)行的命令或腳本
- Restart:當(dāng)設(shè)定Restart=1 時(shí)私爷,則當(dāng)此daemon服務(wù)意外終止后,會(huì)再次自動(dòng)啟動(dòng)此服務(wù)
- Type:定義影響ExecStart及相關(guān)參數(shù)的功能的unit進(jìn)程啟動(dòng)類型,包括:simple,
-
Install段的常用選項(xiàng):
- Alias:別名膊夹,可使用systemctl command Alias.service
- RequiredBy:被哪些units所依賴衬浑,強(qiáng)依賴
- WantedBy:被哪些units所依賴,弱依賴
- Also:安裝本服務(wù)的時(shí)候還要安裝別的相關(guān)服務(wù)
三放刨、CentOS 7啟動(dòng)問(wèn)題修復(fù)
(一)CentOS 7內(nèi)核啟動(dòng)參數(shù)設(shè)置
- 啟動(dòng)時(shí)工秩,在linux16行后添加systemd.unit=desired.target
- systemd.unit=emergency.target
- systemd.unit=rescue.target
- rescue比emergency 支持更多的功能,例如日志等
- 設(shè)置只生效一次进统,永久生效需要在/boot/grub2/grub.cfg設(shè)置
(二)破解CentOS 7的root口令
-
方法一:
- 啟動(dòng)時(shí)任意鍵暫停啟動(dòng)
- 按e鍵進(jìn)入編輯模式
- 將光標(biāo)移動(dòng)linux16開始的行拓诸,添加內(nèi)核參數(shù)rd.break
- 按ctrl-x啟動(dòng)
- mount -o remount,rw /sysroot
- chroot /sysroot
- passwd root
- touch /.autorelabel
- exit
- reboot
-
方法二:
- 啟動(dòng)時(shí)任意鍵暫停啟動(dòng)
- 按e鍵進(jìn)入編輯模式
- 將光標(biāo)移動(dòng)linux16開始的行,改為rw init=/sysroot/bin/sh
- 按ctrl-x啟動(dòng)
- chroot /sysroot
- passwd root
- touch /.autorelabel
- exit
- reboot
(三)修復(fù)grub2
-
配置文件:
- 主要配置文件:/boot/grub2/grub.cfg
- 修復(fù)配置文件
grub2-mkconfig > /boot/grub2/grub.cfg 或
grub-mkconfig -o /boot/grub2/grub.cfg
修復(fù)grub
grub2-install /dev/sda BIOS環(huán)境
grub2-install UEFI環(huán)境調(diào)整默認(rèn)啟動(dòng)內(nèi)核
編輯文件/etc/default/grub的GRUB_DEFAULT值麻昼,從0開始算起實(shí)驗(yàn):修復(fù)CentOS 7啟動(dòng)問(wèn)題
實(shí)驗(yàn)1:刪除grub2所有內(nèi)容奠支,修復(fù)系統(tǒng)
dd if=/dev/zero of=/dev/sda bs=1 count=446
刪除bootloader
rm -rf /boot/grub*
刪除所有g(shù)rub2的stage2內(nèi)容
(1)重啟進(jìn)入救援模式,先切根抚芦,執(zhí)行grub2-install /dev/sda
恢復(fù)grub2的文件
(2)執(zhí)行grub-mkconfig
恢復(fù)/boot/grub2/grub.cfg文件倍谜,重啟成功進(jìn)入系統(tǒng)
實(shí)驗(yàn)2:刪除/boot目錄下所有內(nèi)容,修復(fù)系統(tǒng)
rm -rf /boot/*
刪除/boot目錄下的所有內(nèi)容
(1)重啟進(jìn)入救援模式叉抡,先切根尔崔,掛載光盤,安裝內(nèi)核軟件包
(2)之后內(nèi)容與實(shí)驗(yàn)1類似褥民,包括修復(fù)grub2文件季春,修復(fù)/boot/grub2/grub.cfg文件,重啟成功進(jìn)入系統(tǒng)
實(shí)驗(yàn)3:刪除/boot/grub2/grub.cfg消返,重啟
rm -f /boot/grub2/grub.cfg
载弄,重啟后雖然grub2的stage2階段能夠進(jìn)入耘拇,但由于缺失啟動(dòng)信息配置文件,grub2會(huì)提示輸入啟動(dòng)信息宇攻,輸入以下啟動(dòng)信息惫叛,boot回車后成功進(jìn)入系統(tǒng)
grub> insmod xfs
grub> set root=(hd0,1)
grub> linux16 /vmlinuz-3.10.0-514.el7.x86_64 root=/dev/sda2 selinux=0
grub> inintrd16 /initramfs-3.10.0-514.el7.x86_64.img
grub> boot