日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

菜鸟学Linux 第033篇笔记 bootloader,inittab

發(fā)布時(shí)間:2025/7/14 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 菜鸟学Linux 第033篇笔记 bootloader,inittab 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

菜鳥學(xué)Linux 第033篇筆記 bootloader,inittab



Linux 系統(tǒng)自啟動(dòng)流程



PC OS (Linux)


POST-->BIOS(Boot Sequence)-->MBR(bootloader,446byte),GPT-->Kernel

-->initrd-->ROOTFS /sbin/init(/etc/inittab)


運(yùn)行級(jí)別 (啟動(dòng)的服務(wù)不同)

運(yùn)行級(jí)別:0-6

0 halt

1 single user mode 直接以管理員身份切入 s,S,single

2 multi user mode, no NFS

3 multi user mode, text mode

4 reserved

5 multi user mode, graphic mode

6 reboot

詳解啟動(dòng)過程

bootloader(MBR)

LILO LInux LOader(早期,適合嵌入式系統(tǒng))

GRUB GRand Unified Bootloader

stage1 MBR

stage1_5 識(shí)別文件系統(tǒng)

stage2 /boot/grub/

bootloader 有446字節(jié)最多


/etc/grub.conf 文件格式

default=0 默認(rèn)啟動(dòng)title

timeout=5 等待用戶選擇的超時(shí)時(shí)長

splashp_w_picpath= 背景圖片

hiddenmenu 隱藏菜單

password myroot

password --md5 此處為進(jìn)入編輯grub時(shí)輸入密碼

title 內(nèi)核標(biāo)題,或操作系統(tǒng)名稱字符串,可自由修改

root (hd0,0) 內(nèi)核文件所在的設(shè)備:對(duì)grub而言,所有類型硬盤一律hd?

第一個(gè)0 表示第幾個(gè)磁盤,第二個(gè)對(duì)應(yīng)硬盤分區(qū)

kernel 內(nèi)核路徑和傳遞給內(nèi)核的參數(shù) /proc/cmdline

initrd ramdisk文件路徑

password --md5 放在此處則進(jìn)入內(nèi)核需要輸入密碼


內(nèi)核設(shè)計(jì)風(fēng)格


RedHat, SUSE

核心 動(dòng)態(tài)加載 內(nèi)核模塊

內(nèi)核 /lib/modules/"內(nèi)核版本號(hào)命名的目錄"/?

vmlinuz-2.6.32

/lib/modules/2.6.32/

RedHat5 ramdisk-->initrd

RedHat6 ramfs-->initramfs

單內(nèi)核 Linux (LWP)

核心 KO (kernel object)

微內(nèi)核 windows Solaris(多線程)


Jail

chroot (run command or interactive shell with special root directory)

chroot /test/vrroot or /test/vrrot/bin/bash

ldd /path/Binary_file 顯示二進(jìn)制文件所依賴的共享庫



Command

yum install gimp 一個(gè)圖形編輯軟件

使用Xshell遠(yuǎn)程軟件可以啟動(dòng)遠(yuǎn)程的圖形界面gimp &?


grub-md5-crypt 使用md5給生成grub密文


runlevel Print previous and current SysV runlevel

who -r display runlevel

uname ( print system information)

-r, --kernel-release

? ? ? ? ? ? ? print the kernel release

dd if=/dev/zero of=/dev/sda count=1 bs=400 破壞硬盤的bootloader

修復(fù)grub

第一種:

#grub

grub>root (hd0,0)

grub> set (hd0)

第二種:

#grub-install --root-directory=/path/boot's parent /dev/hda


給其它硬盤安裝grub

1.將硬盤格式化好之后,掛載到一個(gè)以/mnt/boot目錄下該硬盤的你目錄必須是boot

2.使用命令grub-install --root-directory=/mnt /dev/sd(a,b,c...) ?

前邊的root-directory 必須選用boot的父目錄

3.完成后會(huì)在該硬盤下生成一個(gè)grub的文件夾,打開后里邊有文件

4.手動(dòng)生成一個(gè)grub.conf配置文件在grub目錄下vim /mnt/boot/grub/grub.conf

編輯該配置文件

default=0

timeout=5

title mylinux(name)

root (hd0,0)

kernel /vmlinuz-2.6.18-308.el5

initrd /initrd-2.6.18-308.el5.img

注意以上兩個(gè)的版本是一樣的,,這樣grub就制作完成了


如果grub.conf配置文件丟失,系統(tǒng)啟動(dòng)時(shí)會(huì)進(jìn)入grub模式,只要知道內(nèi)核在哪里就可以啟動(dòng)

如果硬盤多可以在grub模式下輸入find (hd0,0)/按Tab來查看此硬盤下所有的內(nèi)核文件

查找到后執(zhí)行?

grub> root (hd#,#)

grub> kernel /vmlinuz-2.6.18-308.el5

grub> initrd /initrd-2.6.18-308.el5.img

grub> boot

即可啟動(dòng)該Linux系統(tǒng)#號(hào)表示要對(duì)應(yīng)具體的第幾塊硬盤,第幾個(gè)分區(qū)




Kernel初始化的過程:

1、設(shè)備探測

2、驅(qū)動(dòng)初始化(可能會(huì)從initrd (initramfs)文件中裝載驅(qū)動(dòng)模塊)

3、以只讀掛載根文件系統(tǒng)

4、裝載第一個(gè)進(jìn)程init (PID:1)


/sbin/init: (/etc/inittab) (古老)

RedHat6 upstart ubuntu, d-bus, event-driven

systemd 并行


/etc/inittab文件下的定義

# Default runlevel. The runlevels used by RHS are:

id:5:initdefault: 格式含義

id 標(biāo)識(shí)符

runlevels 在哪個(gè)級(jí)別運(yùn)行此行

action 在什么情況下執(zhí)行此行

initdefault 設(shè)定默認(rèn)運(yùn)行級(jí)別

sysinit 系統(tǒng)初始化

wait 等待級(jí)別切換至此級(jí)別時(shí)執(zhí)行

respawn 一旦程序終止,會(huì)重新啟動(dòng)該程序

process 要運(yùn)行程序


# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

/etc/rc.d/rc.sysinit完成的任務(wù)

1、激活udev和selinux

2、根據(jù)/etc/sysctl.conf文件,來設(shè)定內(nèi)核參數(shù)

3、設(shè)定時(shí)鐘

4、裝載鍵盤映射

5、啟用交換分區(qū)

6、設(shè)置主機(jī)名

7、根文件系統(tǒng)檢測,并在沒有錯(cuò)誤之后,以讀寫方式重新掛載

8、激活RAID和LVM設(shè)備

9、啟用磁盤配額

10、根據(jù)/etc/fstab,檢查并其它文件系統(tǒng)

11、清理過期的鎖和PID文件


/etc/rc.d/init.d /etc/init.d

服務(wù)類腳本

start

stop

SysV: /etc/rc.d/init.d

start|stop|restart|status

reload|configtest

腳本中的

# chkconfig: 345 26 74

第一組 runlevels?

第二SS ? start 優(yōu)先次序

第三KK kill 次序

當(dāng)chkconfig命令來為此腳本在rc#.d目錄創(chuàng)建鏈接時(shí),

runlevels表示默認(rèn)創(chuàng)建為S*開頭的鏈接如果為-則表示所有級(jí)別,

除此之外的級(jí)別默認(rèn)創(chuàng)建為K*開關(guān)的鏈接

S后面的啟動(dòng)優(yōu)先級(jí)為SS所表示的數(shù)字,K后面的優(yōu)級(jí)為KK所表示的數(shù)字

# description:

用于說明此腳本的簡單功能\,續(xù)行


chkconfig命令 updates and queries runlevel information for system services

--list 列出所有獨(dú)立守護(hù)服務(wù)的啟動(dòng)設(shè)定

先將服務(wù)腳本cp到/etc/rc.d/init.d/目錄下

chkconfig --add SERVICE_NAME 添加服務(wù)鏈接到/etc/rc.d/rc#.d目錄下

chkconfig --add SERVICE_NAME 刪除/etc/rc.d/rc#.d目錄下的服務(wù)鏈接

chkconfig --level RUNLEVEL SERVICE_NAME {on|off}

如果省略級(jí)別指定,默認(rèn)為2345級(jí)別


/etc/rc.local /etc/rc.d/rc.local?

系統(tǒng)最后啟動(dòng)的一個(gè)服務(wù),準(zhǔn)確說,應(yīng)該執(zhí)行的最后一個(gè)腳本


# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

啟動(dòng)終端

/etc/inittab的任務(wù)

1.設(shè)定默認(rèn)運(yùn)行級(jí)別

2.運(yùn)行系統(tǒng)初始化腳本

3.運(yùn)行指定運(yùn)行級(jí)別對(duì)應(yīng)的目錄下的腳本

4.設(shè)定Ctrl+Alt+Del組合鍵的操作

5.定義UPS電源在電源故障、恢復(fù)時(shí)執(zhí)行的操作

6.啟動(dòng)虛擬終端(2345)

7.啟動(dòng)圖形終端(5)

守護(hù)進(jìn)程的類型

獨(dú)立守護(hù)進(jìn)程xinetd默認(rèn)可能未安裝,需自行安裝 yum install xinetd

xinetd 超級(jí)守護(hù)進(jìn)程代理人 需要關(guān)聯(lián)至運(yùn)行級(jí)別

瞬時(shí)守護(hù)進(jìn)程:不需要關(guān)聯(lián)至運(yùn)行級(jí)別


轉(zhuǎn)載于:https://blog.51cto.com/winthcloud/1877226

總結(jié)

以上是生活随笔為你收集整理的菜鸟学Linux 第033篇笔记 bootloader,inittab的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。