亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標——亞洲寵物展覽會深度解析
1081
2025-04-01
目錄
文章目錄
目錄
系統(tǒng)啟動流程
編輯 gurb.cfg
RHEL7 的啟動級別
RHEL7 破密碼步驟
grup2 加密,防止破密碼
initramfs 文件
系統(tǒng)啟動流程
RHEL7 使用了 GRUB2 引導(dǎo)程序。
開啟電源。
加載主板 BIOS
檢測硬件是否有故障 。
找啟動介質(zhì),進入磁盤的 MBR 引導(dǎo)分區(qū)分區(qū)。MBR 大小為 512Byte,由 Bootloader(446B)+ 分區(qū)表(64B)+ 校驗結(jié)束位(2B)組成。一個分區(qū)的標識數(shù)據(jù)占用 16B。
linux 內(nèi)核文件保存在 /boot 目錄下,通過 GRUB2 程序?qū)?nèi)核加載到內(nèi)存。可以通過修改 grub.cfg,來控制系統(tǒng)啟動選項。GRUB2 的本質(zhì)是一個微型的操作系統(tǒng),他可以識別到一些常用的文件系統(tǒng),GRUB 2運行時會讀取自己的配置文件 /boot/grub2/grub.cfg。每個內(nèi)核條目都會以 menuentry 開頭 ,menuentry 包含標題、選項(不建議修改),menuentry 后面有一對大括號,其中都是啟動項,啟動項以 TAB 開頭 ,linux16 這行指定內(nèi)核的位置、根分區(qū)的位置、以只讀方式掛載根分區(qū) 、字符集、鍵盤布局、語言、rhgb(以圖形化方式顯示啟動過程)、quiet(啟動過程出現(xiàn)錯誤提示)。根分區(qū)都是 xfs 格式的,xfs 需要驅(qū)動才能讀取文件,驅(qū)動的位置在 /lib/modules/3.10.0-123.el7.x86_64/kernel/fs/xfs,通過 initrd16 將啟動相關(guān)的驅(qū)動和模塊解壓到內(nèi)存,再讀取根分區(qū)(xfs)的數(shù)據(jù)。
注意:RHEL7 的 grub.cfg 不能直接修改,要通過修改 /etc/default/grub 來間接編輯 grub.cfg。
編輯 gurb.cfg
修改配置文件 /etc/default/grub,修改后用 grub2-mkconfig 指令成 grub2.cfg。在 grub2-mkconfig 生成配置文件時需要加載 /etc/grub.d 目錄,此目錄下有下列文件:
00_header:設(shè)置 grub 的默認參數(shù)。
30_os_prober:設(shè)置其他分區(qū)中的系統(tǒng)(硬盤中有多個操作系統(tǒng)時設(shè)置)。
40_custom、41_custom:用戶自己自定義的配置。
10_linux:系統(tǒng)中存在多個 Linux 版本。
20_ppc_terminfo:設(shè)置 tty 控制臺 。
/boot/grub2/grub.cfg 就是上面文件的組合體。
例如,設(shè)置指定內(nèi)核啟動:
# vim /etc/default/grub grub2-set-default saved|number
1
2
RHEL7 的啟動級別
臨時修改:
進入系統(tǒng)后修改:systemctl isolate TAB
未進入系統(tǒng)前修改:按 e,到 linux16 行尾,加入systemd.unit=xxxx.target。
永久修改:systemctl set-default TAB。
TAB 類型和其特性:
emergency.target:sulogin 提示,grub 啟動完成,同時系統(tǒng)的 root 把/只讀掛載。救援模式(只掛載/而且只讀,不加載 /etc/fstab)。在文件系統(tǒng)出了故障時使用。
graphical.target:支持多用戶,圖形化和文本登錄。
multi-user.target:支持多用戶,文本登錄。
rescue.target:sulogin(單用戶模式)提示,基本的系統(tǒng)初始化完成,單用戶模式需要口令,要輸入密碼。和多用戶區(qū)別在于不啟動任何服務(wù),加載了文件系統(tǒng),適用于某服務(wù)設(shè)置故障,進入此模式修補。
RHEL7 破密碼步驟
rd.break破解:
開啟電腦 systemctl reboot。
在 Grub 選項上按 e 鍵,進入編輯模式。
在 vmlinuz 行后加入 rd.break console=tty0(單用戶模式)。
ctrl+z 保存重啟。
mount -o remount,rw /sysroot 掛載系統(tǒng)臨時根目錄為可寫。
chroot /sysroot 改變系統(tǒng)目錄為臨時掛載目錄。
echo fanguiju | passwd --stdin root 修改密碼。
touch /.autorelabel
exit
exit
注意:若在 VMware 虛擬機上操作不成功,可以嘗試將 rhgb quiet(圖形化啟動)先刪除。
rd.break 一般用于修改 passwd 或者出現(xiàn)重大問題,臨時中斷運行,未加載 FileSystem,比但用戶模式還要精簡。若這樣 rd.break 不能進入,則向 kernel 傳遞 init=/bin.bash 或 init=/bin/sh 參數(shù),使用 init 的方法來破解。
init破解:
開啟電腦 systemctl reboot。
在 Grub 選項上按 e 鍵,進入編輯模式。
在 kernel(linux16/linux/linuxefi)行尾添加 init=/bin/sh。
Ctrl+x 啟動 Shell。
掛載文件系統(tǒng)為可寫模式 mount –o remount,rw / 直接掛載根目錄。
passwd root 修改 root 密碼。
exec /sbin/init 啟動,或者用指令 exec /sbin/reboot 重啟。
NOTE:如過系統(tǒng)啟動了 selinux,必須運行以下命令,否則將無法正常啟動系統(tǒng):touch /.autorelabel。
grup2 加密,防止破密碼
獲取加密密碼:
grub2-mkpasswd-pbkdf2 # 輸入密碼
1
編輯 00_header 文件:此文件配置初始的顯示項目,如默認選項,時間限制等,加入密碼驗證項目,在最后一行添加:
# vim /etc/grub.d/00_header cat << EOF set superusers="jmilk" password jmilk grub.pbkdf2.shaxxxxxxxxxxxxxxx #加密密碼 EOF
1
2
3
4
5
6
更新 grub 配置后并重啟:
grub2-mkconfig -o /boot/grub2/grub.cfg systemctl reboot
1
2
initramfs 文件
存放 kernel 可以 rw fs 的驅(qū)動,當 kernel 加載到內(nèi)存后要以 ro 的方式加載根分區(qū)(xfs),但是因為系統(tǒng)驅(qū)動存放在根分區(qū)中。所以額外將讓 kernel 可以讀取根分區(qū)的驅(qū)動全放入到 initranfs 中,在 Kernel 還沒有讀取根分區(qū)時,initramfs 文件將所有的驅(qū)動解壓到內(nèi)存中供 kerne l使用。
Linux
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。