linux系統:
kernel+rootfs(程式和glibc)
支援模組化 ko 核心物件
cpio -tv 預覽io檔案
mkinitrd /boot/initramfs-`
uname -r`
.img `uname -r
1.加點自檢
2.讀取第乙個啟動裝置的mbr的引導載入grub的啟動資訊
3.載入核心作業系統的核心資訊,解壓縮,嘗試驅動硬體
4.核心執行init程式並獲取預設的執行資訊
5.init程式執行/etc/rc.d/rc.sysinit檔案
6.啟動核心的外掛程式模組
7.init執行的各個批處理檔案
8.init執行/etc/rc.d/rc.local
9.執行/bin/login,等待使用者登入
10.登入後開始以shell控制主機
提供選擇選單載入使用者指定核心,把核心專家記憶體 解壓展開,並把系統控制權交給核心
探測可識別到的所有硬體裝置
載入硬體驅動程式
ramdisk識別根檔案系統
以唯讀方式掛載根檔案系統
執行使用者空間的第乙個應用程式 /sbin/init
initramfs-3.10.0-862.el7.x86_64.img 檔案丟失
- 1.光碟引導
- 2.救援模式
- 3.chroot /mnt/sysimage #切換根檔案系統
- 4.cd /mnt/sysimg/boot
- - 5 生成initramfs
mkinitrd /boot/initramfs-`uname -r`.img `uname -r
exit
exit
sync
reboot
1.光碟引導
2.救援模式
3.cp run/media/repo/vmlinuz-3.10.0-862.el7.x86_64 /mnt/sysimage/vmlinuz-``uanme -r
系統初始化流程
post(開機自檢)---bios--bootloader(mbr)--kernel(ramdisk)----rootfs[掛載根檔案系統(唯讀)]---init(systemd)
執行級別:
為了系統的執行或維護等目的而設定的機制, 0-6:7個級別
0 關機 shutdown
1 單使用者模式–無須認證,維護模式 root使用者
2 多使用者模式 帶網路功能但不會啟動nfs
3 多使用者模式 正常完全模式–只會啟動shell不啟動桌面
4 預留模式
5 多使用者模式 完全功能模式,會啟**形介面
6 重啟模式
1.設定主機名
2.設定歡迎資訊
3.啟用udev和selinux
4.掛載/etc/fstab檔案定義的檔案系統
5.檢查根檔案系統,並以讀寫方式重新掛載
6.設定系統時鐘
7.啟用swap
8.根據/etc/sysctl.comf檔案設定核心引數
9.啟用lvm和raid
10.載入額外的裝置驅動
11.清理
意味著去啟動或關閉/etc/rc.d/rc3.d/目錄下的服務指令碼
k*:要停止的服務 k##* 優先順序 數字越大 被依賴的服務先關閉
s*:要啟動的服務 s##* 優先順序 數字越小 被依賴的服務先啟動
rc指令碼:接受乙個執行級別的引數
[root@localhost ~]# ls /etc/rc.d/
init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
指令碼框架
for srv in /etc/rc.d/rc#.d/k*;do
$srv stop
done
for srv in /etc/rc.d/rc#.d/s*;do
$srv start
done
配置檔案 /etc/inittab
/etc/rc.d/rc.sysinit 初始化
/etc/init.d/* (/etc/rc.d/init.d/*)指令碼執行方式
chkconfig命令
管控/etc/init.d/下的所有服務指令碼在各級別下的啟動或關閉狀態
chkconfig --list
chkconfig --add 新增
chkconfig --del 刪除
chkconfig --level name 預設級別 2345
如果需要開機自動執行的指令碼檔案可直接放置到此檔案中
post----boot(bios)---bootloader(mbr)--kernel(ramdisk)--rootfs--swtichroot--/sbin/init---/etc/inittab(/etc/init/*.config)---設定系統預設級別--系統初始化指令碼rc.sysinit---關閉或啟動對應級別的服務-----啟動終端(shell或圖形終端)
init程式:systemd,配置檔案 /usr/lib/systemd/system/,/etc/systemd/system/
完全相容 sysv指令碼 因此service命令依然可用,建議使用systemctl
配置檔案:/boot/grub/grub.conf <—/etc/grub.conf
stage2及核心等通常放置於乙個基本磁碟分割槽
#dd if=/dev/zero of=/dev/sda bs=1 count=446 破壞
hexdump -c /dev/sda -n512 -v
互動式修復,依賴/etc/grub 裡面的檔案
grub
root (hd0,0)
setup(hd0)
grub> kernel /vmlinuz-3.10.0-862.el7.x86_64
grub> initrd /initramfs-3.10.0-862.el7.x86_64.img
如何識別磁碟檔案
hd#,#
hd# 磁碟編號
# 磁碟分割槽編號
help 獲取幫助命令
find
root (hd#,#)設定根裝置
kernel 設定本次啟動時用到的核心檔案
initrd 設定為選定的核心提供額外檔案的ramdisk
boot 引導啟動選定的核心
如果/boot/下檔案全部沒有,可以在救援模式下安裝kernel
rpm -ivh /mnt/cdrom/packages/kernel-x --root=/mnt/sysimage --force
grub2-install /dev/sda
配置項 default 預設項啟動
timeout 超時時間
splashimage
hiddenmenu 隱藏選單
password 選單編輯認證
title 定義選單標題
root (hd#,#) grub查詢stage2級kernel檔案所在的裝置分割槽,為grub的根
kernel /vmlinux-x.x. 啟動的核心
initrd /initramfs-x.x 核心匹配的ramfs
1.編輯grub選單(選定,然後使用e編輯)
2.在選定的kernel後面附加 1,s,s或single都可以
3.在kernel所在行,輸入b命令
fstab 修復 (df -th)
1.掛載 / 到/dev/sda2
2.swap
3.重新啟用救援模式
centos 流程
post---->bios---->bootloader-mbr(grub)---->kernel(ramdisk)---->rootfs(switch root)---->/sbin/init(/etc/inittab)---->預設執行級別---->系統初始化(rc.sysinit)---->關閉啟動服務---->啟動終端(影象介面)
2 6linux核心的啟動
計算機在啟動時都是先加電,然後進行硬體檢測並引導作業系統的初始化程式,然後作業系統的初始化程式程負責讀入系統核心並建產系統的執行環境.一這過程相對來說比較復而且與cpu體系結構相關,這裡我們通過linux並以i386的體系結構對這一過程進行較為詳細的說明.一 硬體檢測 當機器加電後它首先執行bios...
linux2 6核心啟動流程
計算機在啟動時都是先加電,然後進行硬體檢測並引導作業系統的初始化程式,然後作業系統的初始化程式程負責讀入系統核心並建產系統的執行環境.一這過程相對來說比較復而且與cpu體系結構相關,這裡我們通過linux並以i386的體系結構對這一過程進行較為詳細的說明.一 硬體檢測 當 機器加電後它首先執行bio...
天天學Linux命令26 linux檔案屬性詳解
linux 檔案或目錄的屬性主要包括 檔案或目錄的節點 種類 許可權模式 鏈結數量 所歸屬的使用者和使用者組 最近訪問或修改的時間等內容 具體情況如下 命令 ls lih 輸出 root localhost test ls lih 總計 316k 2095120 lrwxrwxrwx 1 root ...