您好,登錄后才能下訂單哦!
學習引導過程,排除啟動類故障,服務控制及切換運行級別,優化啟動過程;重點了解修復MBR扇區,gurb菜單,root密碼重置,優化開機啟動
序號 | 步驟 | 解釋 |
---|---|---|
1 | 開機自檢(BIOS) | 1.加電自檢(服務器例外,當服務器通電時,風扇會先轉一圈),自檢硬件設備是否完好無損 2.加載驅動 |
2 | MBR引導 | 去找系統盤內的MBR去啟用 |
3 | GRUB菜單 | 選擇系統去啟用(系統例如雙系統、急救系統等) |
4 | 加載內核(kernel) | 內核就是系統的核心部分,即加載內核去運行系統 |
5 | init進程 初始化 | PID=1,初始化包含把之前的緩存數據全部清空、恢復默認,然后再次加載其他的程序 |
啟動類型(優先級從<到n):自動,自動(延遲啟動,即開機后自啟動),手動,禁用
/sbin/init 中的sbin是一個軟連接,并不是一個目錄
[root@localhost /]# ls -al '查看sbin和bin'
總用量 32
dr-xr-xr-x. 18 root root 249 11月 12 19:02 .
dr-xr-xr-x. 18 root root 249 11月 12 19:02 ..
drwxr-xr-x. 2 root root 6 11月 5 12:17 abc
lrwxrwxrwx. 1 root root 7 10月 23 13:35 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 10月 23 13:41 boot
drwxr-xr-x. 20 root root 3300 11月 13 10:00 dev
drwxr-xr-x. 138 root root 8192 11月 13 13:36 etc
drwxr-xr-x. 5 root root 45 11月 13 08:53 home
lrwxrwxrwx. 1 root root 7 10月 23 13:35 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 10月 23 13:35 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 11月 5 2016 media
drwxr-xr-x. 2 root root 6 11月 5 2016 mnt
drwxr-xr-x. 8 root root 150 11月 12 17:33 opt
dr-xr-xr-x. 203 root root 0 11月 13 10:00 proc
-rw-r--r--. 1 root root 4 11月 13 14:06 ps.txt
dr-xr-x---. 14 root root 4096 11月 13 10:01 root
drwxr-xr-x. 42 root root 1260 11月 13 13:36 run
'lrwxrwxrwx. 1 root root 8 10月 23 13:35 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11月 5 2016 srv
dr-xr-xr-x. 13 root root 0 11月 13 10:00 sys
drwxrwxrwt. 27 root root 4096 11月 13 14:04 tmp
drwxr-xr-x. 13 root root 155 10月 23 13:35 usr
drwxr-xr-x. 22 root root 4096 11月 5 23:09 var
單元類型 | 關鍵信息 |
---|---|
Service | 文件所在位置: /lib/systemd/system/*./service |
Socket | 套接字,即通信協議的一個載體、介質,開發者去寫的,比如在myscl安裝時需要用到 |
Device | 設備文件 塊設備(負責存儲)和字符設備(負責輸入輸出) |
Mount | 掛載點 |
Automount | 自動掛載 |
Swap | 交換空間,必要組件 |
Path | 路徑(PATH是變量,使用時用echo $PATH) |
Timer | 定時器,比如cron設置周期性計劃需要調取定時器 |
Snapshot | 保存狀態,即快照功能 |
Scope | 外部進程 |
Slice | 管理進程 |
Target | 目標服務 |
思路:
修復MBR(另一種是GPT)扇區故障
一個扇區512字節
MBR中存有文件元信息(屬性,位置)還有系統的引導文件;文件數據信息(具體內容)存放在磁盤的別的位置
步驟:
1)加一塊硬盤做備份sdb,分區,格式化,掛載
[root@localhost ~]# init 6 '重啟'
[root@localhost ~]# fdisk /dev/sdb '給sdb備份盤分區'
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。
Device does not contain a recognized partition table
使用磁盤標識符 0x99e92b15 創建新的 DOS 磁盤標簽。
命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):
將使用默認值 41943039
分區 1 已設置為 Linux 類型,大小設為 20 GiB
命令(輸入 m 獲取幫助):p
磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x99e92b15
設備 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 83 Linux
命令(輸入 m 獲取幫助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盤。
[root@localhost ~]# mkfs.xfs /dev/sdb1 '格式化'
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir /beifen '創建掛載點'
[root@localhost ~]# mount /dev/sdb1 /beifen '掛載'
[root@localhost ~]# cd /beifen
[root@localhost beifen]# ls
[root@localhost beifen]#
2)然后備份過去
[root@localhost beifen]# dd if=/dev/sda of=/beifen/MBR.sda.bak bs=512 count=1
'運用dd命令去把/dev/的sda磁盤的MBR備份,注意,不是sba1'
記錄了1+0 的讀入
記錄了1+0 的寫出
512字節(512 B)已復制,0.000550469 秒,930 kB/秒
[root@localhost beifen]# ls '查看'
MBR.sda.bak
[root@localhost beifen]# dd if=/dev/zero of=/dev/sda bs=512 count=1
'依舊運用dd,去把MBR覆蓋'
記錄了1+0 的讀入
記錄了1+0 的寫出
512字節(512 B)已復制,0.000125984 秒,4.1 MB/秒
[root@localhost ~]# init 6 '重啟'
然后出現了報錯
1)先把鏡像放進去
2)在讀條的時候按esc進入boot
選第三個troubleshooting
選擇Rescue a CentOS system
3)加載,加載完畢
選第一個continue,連接
然后就可以回車鍵入命令
1)此時進入的系統是鏡像文件中的系統,并不是電腦中的系統,這里重新創建掛載點,把含有備份文件的磁盤掛載上去,依舊運用dd命令去將備份數據覆蓋上去
然后reboot進行重啟
成功
小結:
1:備份mbr扇區數據
1)加一塊硬盤做備份sdb
分區--》格式化---》掛載/abc
2)dd if=/dev/sda of=/abc/sda.mbr.bak bs=512 count=1
2:模擬故障
dd if=/dev/zero of=/dev/sda bs=512 count=1
3:加載系統鏡像文件中的急救模式
加載系統鏡像文件中的內核界面
4:把備份數據做恢復處理
mkdir /aaa
mount /dev/sdb1 /aaa
dd if=/aaa/sda.mbr.bak of=/dev/sda bs=512 count=1
思路:
1.使用系統急救模式進入命令字符界面
2.加載鏡像中的的系統進入bash環境
3.重新構建grub菜單系統
4.重啟
步驟
1.先查看下grub所在的文件位置
[root@localhost ~]# cd /boot '切換到/boot'
[root@localhost boot]# ls
config-3.10.0-693.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-33c124456fa34c50a98483245dfea58d.img
initramfs-3.10.0-693.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-693.el7.x86_64.gz
System.map-3.10.0-693.el7.x86_64
vmlinuz-0-rescue-33c124456fa34c50a98483245dfea58d
vmlinuz-3.10.0-693.el7.x86_64
[root@localhost boot]# ls grub/
splash.xpm.gz
[root@localhost boot]# ls grub2/
device.map fonts grub.cfg('配置文件') grubenv i386-pc locale
[root@localhost boot]#
可以查看下grub.cfg文件
[root@localhost grub2]# vim grub.cfg
22
23 if [ x"${feature_menuentry_id}" = xy ]; then
24 menuentry_id_option="--id"
25 else
26 menuentry_id_option=""
27 fi
28
29 export menuentry_id_option
30
31 if [ "${prev_saved_entry}" ]; then
32 set saved_entry="${prev_saved_entry}"
33 save_env saved_entry
34 set prev_saved_entry=
35 save_env prev_saved_entry
36 set boot_once=true
37 fi
38
39 function savedefault {
40 if [ -z "${boot_once}" ]; then
41 saved_entry="${chosen}"
42 save_env saved_entry
43 fi
44 }
這個配置文件就是需要手動輸入的,不忙的同學實在想嘗試的話可以背下來手動輸入
把grub.cfg配置文件刪除,然后重啟測試一波
[root@localhost grub2]# rm -rf grub.cfg
[root@localhost grub2]# ls
device.map fonts grubenv i386-pc locale
[root@localhost grub2]# init 6
2.沒有進入系統,出現了手動輸入grub的界面
進入急救模式,依舊是依靠鏡像文件,把鏡像文件掛載好,esc進入(在讀取系統時就要去按,眼疾手快)
選擇第三個CD-ROM Drive
跟MBR一樣,先進入troubleshooting,后進入Rescue a centos system,選擇1)continue
里面讓用戶run the command(運行這個命令):chroot /mnt/sysimage去進入鏡像文件中的系統
輸入chroot /mnt/sysimage 命令就會從sh切換到bash
重新構建grub2
grub2-install /dev/sda 給sda系統盤安裝grub2
grub2-mkconfig -o /boot/grub2/grub.cfg 緊跟的這個指令指創建配置文件,指定位置是/boot/grub2/grub/cfg(也就是最開始刪掉cfg的目錄)
exit 保存
保存完成,reboot重啟
解決問題
小結:
1:使用系統急救模式進入命令字符界面
2:加載鏡像中的系統進入bash環境
chroot /mnt/sysimage
3:重新構建grub菜單系統
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot
步驟:
1.加載鏡像系統
esc 進鏡像,依舊進入急救模式
2.直接改密碼
選擇1
chroot /mnt/sysimage/ 進入系統
直接輸入passwd root 就可以修改密碼
記得exit保存
reboot重啟,測試密碼
小結:
1:加載鏡像系統
chroot /mnt/sysimage
2:直接改密碼
passwd root
輸入密碼
[root@localhost ~]# systemctl 控制類型 服務名稱
[root@localhost ~]# runlevel '查看運行級別'
N 5 'N處的位置代表上一個運行的級別'
[root@localhost ~]# init 3
[root@localhost ~]# init 5
[root@localhost ~]# runlevel
3 5
一般都是在35界別進行相互切換
[root@localhost ~]# ntsysv
帶星號的會開機自啟動
空格可以添加去掉星號
tab鍵可以切換界面
[root@localhost ~]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@localhost ~]# netstat -ntap | grep 80 '查看80端口的網絡狀態'
tcp 0 0 192.168.139.152:59860 117.78.24.34:80 TIME_WAIT -
tcp 0 0 192.168.139.152:59862 117.78.24.34:80 TIME_WAIT -
[root@localhost ~]# systemctl start httpd '開啟httpd'
[root@localhost ~]# netstat -ntap | grep 80
tcp6 0 0 :::80 :::* LISTEN 4863/httpd
設置自啟動不會影響工具目前的運行狀態
[root@localhost ~]# systemctl is-enabled 服務名稱
[root@localhost ~]# systemctl enable/disable 服務名稱
systemctl enable httpd 可以設置自啟動
systemctl is-enabled httpd 可以檢測服務是否開啟自啟動
[root@localhost ~]# systemctl enable httpd '設為開機自啟動'
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# systemctl is-enabled httpd '查看啟動狀態'
enabled
[root@localhost ~]# systemctl disable httpd '禁止自啟動'
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
[root@localhost ~]# systemctl is-enabled httpd '再次查看'
disabled
[root@localhost ~]# chkconfig --add 名稱 '系統中的服務中添加一個工具(名稱)'
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。